新之助
- 关注

首先我们先来了解一下CSRF攻击条件:
攻击条件:
1.用户处于登录状态
2.伪造的链接与正常应用请求的链接一致
3.后台未对用户业务开展合法性做校验
只有三个要素同时存在,则漏洞方可利用成功,尤其需要注意的是,用户必须在登录状态时点击伪造的页面
Low级别:
1.来到CSRF模块,输入两次密码123可以看见修改成功
2.接着我们点击Test Credentials模块,来测试一下是否修改成功,可以看到登录成功了
此时我们就拿到了一个修改密码的请求,
http://192.168.163.214/security/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change#
3.下面我将进一步演示CSRF的效果
本机地址为: 192.168.163.214
我们先登录到这个站点上,此时账户为admin,密码为123
可以看到此时我们还是登陆状态的
4.接着我们将拿到的URL构造一个恶意站点
恶意站点的URL为: http://192.168.107.128/csrf/a.php
使用a标签对192.168.163.214的站点发起修改密码的请求,并将密码修改为admin
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> body{ background: url('1.jpg'); } </style> </head> <body> <a href="http://192.168.163.214/security/DVWA/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change#">看美女</a> </body> </html>
9.接着我们在未退出账户的情况下去访问这个恶意站点,此时看见可以看美女
10.当我们点击看美女后,发现页面跳到了dvwa修改密码的地方,并且提示密码修改成功
11.接着我们输入账户密码测试发现原先的账户admin和密码123已经无法登陆了
12.而我们测试攻击者修改的账户admin和密码admin时登陆成功
Medium级别:
1.还是一样的先修改密码,接着拿到了修改密码的链接:
http://192.168.227.214/security/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change#
2.我们在http://192.168.107.138/csrf/bocai.php下构造了一个恶意网站在我们点击时会发起上面修改密码的请求
当我们点击"看美女"时,此时恶意站点对我们登陆的网站发起了修改密码的请求,请求的URL为:
http://192.168.227.214/security/DVWA/vulnerabilities/csrf/?password_new=1024&password_conf=1024&Change=Change#
可以看到此时提示该请求不正确,猜测可能做了什么验证
3.此时我们再次点击"看美女"然后通过BurpSuite截包看看是什么情况
可以看到,在跨域发送请求时做了一个Referer值的验证请,求主机位192.168.227.214而Referer值为http://192.168.107.138
Referer代表请求的来源
4.接着我们尝试修改Referer值和请求主机为统一域,修改完后放包
5.可以看到此时就修改成功了
High级别:
1.我们还是先修改一下密码,修改为123
修改成功后我们可以在URL中看到此时的GET参数多了一个请求为user_token
URL为:
http://192.168.227.214/security/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123
&Change=Change&user_token=ead587d27cc33bb646eb702ef14fae9e#
2.此时就需要我们利用某中方法获取到它的Token值,刚好在Bp当中有一款插件CSRF Token Tracker
可以自动抓取页面中的Token值,打开Bp来到Extensions模块下的BApp Store选项卡,找到该差距后在右边框中安装即可,安装成功后会像我这样打一个√
3.安装好后,我们来到CSRF Token Tracker模块,添加目标站点,以及产生token的参数名
设置好Token工具后,我们先开启Bp的拦截,在新标签页中直接访问刚才拿到的URL
http://192.168.227.214/security/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123
&Change=Change&user_token=ead587d27cc33bb646eb702ef14fae9e#
将带有token的数据包发送到Repeater模块
4.接着我们直接先发送一个请求可以看到修改成功
然后我们将密码修改为admin后,继续点击Send发送,可以看到响应页面依然是修改成功
接着我们回到dvwa测试,输入账号admin,密码admin可以看到登陆成功了
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
