csrf(跨站请求伪造)攻击解析

CSRF,全称Cross-site request forgery,中文翻译成跨站请求伪造,现在很多站点存在csrf漏洞,利用这个漏洞,攻击者假冒正常的用户,以用户的名义发送恶意请求。这些请求可能是发送邮件,发帖留言,盗账号,电子商城购买物品,甚至网银转账等一系列操作。
CSRF的攻击步骤:
①用户A正常登陆访问站点B,站点B在A的浏览器中设置cookie。
②黑客C给A发送了一个链接,用户A在没有退出站点B的情况下就点击了该链接;或者黑客C在站点B上留下了一个链接,等待着A自己去点击。
③用户A点击链接,进入黑客C控制的站点,该站点要求向站点B发起一个连接。
④A的浏览器就会带着①步中的cookie去向B发起连接,如果站点B没有对该连接的源头做严格验证,就会连接成功。
⑤站点B对用户A发来的请求进行解析,作出相应的动作,攻击完成,但是用户A根本不知道发生了什么。
下面是一个例子:本例冒充用户A在网站B上发帖。
首先我们自己先分析网站B的发帖代码,也可以直接抓包,我这里用burp suite 代理工具实现(关于burp suite的一些使用方法见https://www.yeetrack.com/?p=173),在IE中设置好代理,然后去网站B上正常留言,burp suite截取到post数据包,查看具体信息,截图:

有了post的参数我们就可以手动构造form表单了,我构造的表单如图:

这样图片加载失败,就是自动提交form表单。将这个html上传到我们自己的服务器上,将html链接发送给A、或者发布在网站B上,等待A来点击。A点击后,载入页面img载入失败,就会触发form表单的提交操作,并且附带上用户A在网站B的cookie,这样就冒充A在网站B上发布了帖子。
本文由youthflies发表在易踪网上,原文地址:https://www.yeetrack.com/?p=220,PS:只为学习讨论之用,禁止做破坏性动作。

发表评论

邮箱地址不会被公开。 必填项已用*标注

(Spamcheck Enabled)