DVWA亲测CSRF漏洞

CSRF是一种跨站点请求伪造,即用户在A站点登录后,处于同一客户端的B站点利用漏洞获得了A站点的Cookie等身份验证信息,并伪造成合法身份请求A站点。

本文将在本地环境下,开展ping输入框的命令行注入实验,涉及的软件包括:DVWA、phpStudy、FireFox、BurpSuite Pro。

1、Low级别的CSRF漏洞利用。将安全级别设置为Low,并提交一次修改密码,通过抓包得到相应的GET请求报文。在另一台服务器上构造一个网页,图片标签源配置为上述修改密码的URL。在保持DVWA登录的情况下,在同一浏览器下点击链接即可实现修改DVWA网站密码。

2、Medium级别的CSRF漏洞利用。该安全级别情况下,服务端通过stripos()函数校验HTTP_REFERER是否包含HOST地址。该校验不严谨,可以伪造HTTP_REFERER,只需在地址栏中构造一个DVWA站点的URL参数即可绕过检查。

3、High级别的CSRF漏洞利用。该安全级别情况下,服务端首先校验token成功后再进行密码更改,因此漏洞利用的关键是获取有效的token。每次访问修改密码页面时,服务端都会生成并返回一个token给客户端。可以通过在攻击页面,请求一次DVWA的修改密码页面,以此获得token,并携带token再发起密码修改的请求。理论上可行,但在实验过程受浏览器同源策略的限制,未成功,还需解决跨域传值问题。

4、Impossible级别,除校验token外,同时还需用户输入旧密码并校验。如果校验通过则更新密码。