简介:
跨站请求伪造(英语: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 onload="form1.submit()">
<form id="form1" method="post" action="http://example.com">
<input type="hidden" name="sex" value="2" />
</form>
</body>
</html>
<<<<<<< HEAD
常见场景:¶
在需要验证用户身份的post表单或者get请求处理时,例如修改密码,修改个人信息,删除文件,添加用户等
漏洞实例:¶
这里就用一个我测试中发现的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校验,相同则校验通过,反之则校验失败,返回错误。
猜你还喜欢
- 07-08八年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 01-12批量检测SQL注入
- 01-22Apache Solr远程代码执行漏洞(CVE-2017-12629)从利用到入侵检测
- 最新文章
- 随机文章
-
- 浅谈大型互联网企业入侵检测及防护策略
- CaptfEncoder:一款跨平台网络安全工具套件
- 一次编码WebShell bypass D盾的分析尝试
- Microsoft SQL Server漏洞浅析
- Linux Restricted Shell绕过技巧总结
- 利用Drupal漏洞进行传播的挖矿僵尸病毒分析
- 构造优质上传漏洞Fuzz字典
- BlobRunner:一款功能强大的恶意软件Shellcode调试与分析工具
- BurpSuite_v2.0下载
- 某挖矿系统(各类币)一些通用漏洞
- StackOverFlow之Ret2libc详解
- SniffAir:无线渗透测试框架
- 某行小程序投标测试的思路和坑
- 勒索软件最喜欢的接入点:远程桌面协议
- 如何通过Nmap Xml文件进行自动化渗透测试
- 从某电商钓鱼事件探索黑客“一站式服务”
- WordPress Plugin Quizlord 2.0 XSS漏洞复现与分析
- 技术分享 | 如何通过PowerShell DSC进行横向渗透
- Cynet:全方位一体化安全防护工具
- Look Mom, I dont use Shellcode议题Exploit复现
- 热门文章
-
- 八年专业安全团队承接渗透入侵维护服务
- Emlog黑客站模板“Milw0rm”发布
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
- 利用Thinkphp 5缓存漏洞实现前台Getshell
- 文章标签
-