简介:
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack或者 session riding,通常缩写为 CSRF或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
漏洞举例:
假如一家银行用以运行转账操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一个恶意攻击者可以在另一个网站上放置如下代码:
<img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">
如果有账户名为Alice的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失1000资金。
这种恶意的网址可以有很多种形式,藏身于网页中的许多地方。此外,攻击者也不需要控制放置恶意网址的网站。例如他可以将这种地址藏在论坛,博客等任何用户生成内容的网站中。这意味着如果服务端没有合适的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。
透过例子能够看出,攻击者并不能通过CSRF攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义运行操作。
漏洞检测:
数据包无token和referer验证:
无token验证并且无referer验证时,就基本存在跨站请求伪造,但基于功能点不同,一些为无意义无危害的跨站请求伪造。
提交数据包时抓包删除referer字段,如果不报错,则基本存在跨域请求伪造,GET型构造链接,POST型写一个提交表单,测试有跨域情况下提交的数据包是否生效。
数据包无token有referer验证:
只有referer验证时,可尝试空referer,或者尝试域名伪造。
例如只验证referer是否存在bylibrary.cn时:
伪造三级域名为bylibrary.cn.baidu.com来绕过referer字段验证;
在bylibrary.cn网站下发帖引导别人点击我们构造的CSRF链接或者在此网站下发布我们构造的CSRF表单地址来绕过referer的检测。
漏洞利用:
自动提交表单POC:
<html> <head></head> <body οnlοad="form1.submit()"> <form id="form1" method="post" action="http://example.com"> <input type="hidden" name="sex" value="2" /> </form> </body> </html>
漏洞示例:
这里就用一个我测试中发现的csrf来作为示例吧,但这个并不能称之为漏洞,厂商也忽略了,因为几乎没有危害,那么就演示一下大概的利用流程
首先出现csrf的地方为途虎养车个人中心:https://my.tuhu.cn/Account/UserInfo.html
1.修改个人信息用户名和真实姓名时抓包
2.利用burp的CSRF测试插件生成html文件进行测试
3.生成的POC修改用户名为CSRFtest并保存为HTML文件
4.打开生成的html页面点击按钮
5.查看用户中心是否已经修改成功
已经修改成功了,但是没有任何危害,只能修改用户姓名和昵称,SRC给忽略了。
漏洞防御:
检测referer字段:
严格检测referer字段,防止可以被绕过。
添加token校验:
添加token伪随机参数,后端校验token有效性。
附上一张我觉得对token原理表述的比较明白的图:
签名是关键,用户提交的数据后台先根据算法和密钥对数据加密后和用户提交时附带的token校验,相同则校验通过,反之则校验失败,返回错误。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
同时每个成长路线对应的板块都有配套的视频提供:
大厂面试题
视频配套资料&国内外网安书籍、文档
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。