## CSRF 漏洞简介
CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的 情况下执行在权限保护之下的操作,具有很大的危害性。
### CSRF攻击原理及实例
当我们打开登陆某个网站后,就会产生一个会话,这个会话可能是SESSION、Cookie,但无关紧要的。唯一的重点是浏览器与服务器之间是在会话之中
1. 在这个会话没有结束时候,你可以利用你的权限对网站进行操作,如进行发表文章,发邮件,删除文章等操作。
2. 当这个会话结束后,你在进行某些操作时候 Web 应用程序通常会来提醒你,您的会话已过期,或者是请重新登陆等提示。
3. 而 CSRF 攻击则是建立会话之上的攻击。
比如当你登陆了网上银行,正在进行转账业务,这时你的某个 QQ 好友(攻击者)发来一条消息(URL),这条消息是攻击者精心构造的转账业务代码。而且与你所登录的网站是同一个银行,你可能认为这个网站是安全的,并不是什么钓鱼网站之类的,然后打开了这条URL,那么你的账户的钱可能就在你的这一次小小点击上全部丢失。
4. 攻击成功主要是因为你的浏览器正处于与此网站的会话之中,那么一切正常操作都是合法的,而入侵者构造的这段代码只不过是正常的转账操作代码而已
* 案例
比如说你想给用户 spisec 转账 1000元,那么点击提交按钮之后,可能会发送以下请求:
http://www.taobao.com/pay.jsp?user=spisec&money=1000
而攻击者仅仅是改变一下 user 参数与 money 参数即可完成一次“合法”的攻击,如:
http://www.taobao.com/pay.jsp?user=hack&money=10000
当你访问了这条URL之后,就会自动向 hack 这个账户里面转入10000元。而这是你亲手造成的,并没有人破解你的密码或入侵Web服务器
### 流程总览
1. 用户 C 打开浏览器,访问受信任网站 A,输入用户名和密码请求登录网站 A;
2. 在用户信息通过验证后,网站 A 产生 Cookie 信息并返回给浏览器
此时用户登录网站 A 成功,可以正常发送请求到网站 A;
3. 用户未退出网站 A 之前,在同一浏览器中,打开一个 TAB 页访问网站 B;
可能是点击的邮件、qq会话中的链接地址
4. 网站 B 接收到用户请求后,返回一些攻击性代码
攻击代码中要求用户浏览器去访问站点 A;
5. 浏览器在接收到这些网站B的返回数据后,根据网站 B 的请求,访问站点A
浏览器在用户不知情的情况下携带Cookie信息,向网站 A 发出请求。
网站 A 并不知道该请求其实是由 B 发起的,所以会根据用户C的Cookie信息和权限处理该请求
导致来自网站 B 的恶意代码被执行。
总结 CSRF 两个侧重点
1. CSRF 的攻击建立在浏览器与 Web 服务器的会话之中。
或者是有用户信息,用户登录不用密码)
2. 欺骗用户访问 URL
也就是说攻击者盗用了用户的身份,用用户合法手段进行自己的操作
## CSRF 攻击分类和检测
CSRF 漏洞一般分为站外和站内两种类型
### CSRF 站外类型
本质上就是传统意义上的外部提交数据问题。
通常程序员会考虑给一些留言或者评论的表单加上水印以防止 SPAM 问题,
但是有时为了提高用户的体验性,可能没有对一些操作做任何限制,所以攻击者可以事先预测并设置请求的参数,在站外的 Web页面里编写脚本伪造文件请求,或者和自动提交的表单一起使用来实现 GET、POST 请求
当用户在会话状态下点击链接访问站外 Web 页面,客户端就被强迫发起请求。
>SPAM 可以简单的理解为垃圾留言、垃圾评论,或者是带有站外链接的恶意回复
### CSRF 站内类型
在一定程度上是由于程序员滥用$_REQUEST 类变量造成的。
在一些敏感的操作中,本来要求用户从表单提交发起 POST 请求传递参数给程序,
但是由于使用了$_REQUEST 等变量,程序也支持接收 GET 请求传递的参数,这就为攻击者使用CSRF创造条件。
一般攻击者只要把预测的请求参数放在站内一个贴子或者留言的图片链接里,受害者浏览了这样的页面就会被强迫发起这些请求。
### CSRF漏洞检测:
检测CSRF漏洞是一项比较繁琐的工作,以下是一个最简单的流程:
1. 抓取一个正常请求的数据包,
2. 观察数据包里是否存在用户信息或者token相关的字段
如果有那么删除一下看看数据包是否正常,看看响应包是否正常,如果不正常则尝试放弃(绕过几率极小)
3. 然后删除origin字段重新提交
看看响应包是否正常,如果不正常则尝试放弃(绕过几率极小)
4. 最后去掉Referer字段后再重新提交
看看响应包是否正常,如果不正常那也可以尝试绕过
5. 如果以上都正常,则生成POC,另一个浏览器登录验证。
### CSRF漏洞容易出现的地方:
1. 修改密码的地方
2. 添加用户的地方
3. 数据库备份的地方数据交易、支付等
4. 等其它一些对话框钓鱼页面
5. CSRF一般与XSS结合使用
- src导航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查询
- 备案信息查询
- 信用信息查询
- IP反查站点的站
- 浏览器插件
- 收集子域名信息
- 在线平台
- 工具枚举
- ssl与证书透明度
- DNS历史解析
- DNS域传送漏洞
- C段探测
- JS文件域名&ip探测
- 搜索引擎&情报社区
- google黑客
- 威胁情报
- 钟馗之眼
- 收集相关应用信息
- 微信公众号&微博
- APP收集&反编译
- 收集常用端口信息
- 常见端口&解析&总结
- 扫描工具
- 网络空间引擎搜索
- 浏览器插件
- nmap扫描
- 收集敏感信息
- 源码泄露
- 邮箱信息收集
- 备份文件泄露
- 目录&后台扫描
- 公网网盘
- 历史资产
- 指纹&WAF&CDN识别
- 指纹识别
- CDN识别
- 绕过CDN查找真实IP
- WAF识别
- 漏洞资源和社工
- 漏洞公共资源库
- 社会工程
- 资产梳理
- 各种对渗透有帮助的平台
- 扫描器
- 扫描器对比
- AppScan(IBM)_web和系统
- AWVS_web扫描
- X-Scan_系统扫描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_绿盟_web
- 安恒明鉴
- Nessus_系统
- nexpose_系统
- 启明天镜_web_系统
- SQL注入
- 常用函数
- sql注入步骤
- union注入和information_schema库
- 函数和报错注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解决方案
- Access数据库注入
- MSSQL数据库注入
- MYSQL数据库注入
- 神器SQLmap
- xss跨站脚本攻击
- xss原理和分类
- xss案例和修复
- xss绕过技巧
- xss案例
- 文件上传下载包含
- 常有用文件路径
- 文件上传漏洞
- 文件下载漏洞
- 文件包含漏洞
- upload-labs上传漏洞练习
- XXE、SSRF、CSRF
- SSRF原理基础
- SSRF案例实战
- CSRF原理基础
- CSRF案例及防范
- XXE之XML_DTD基础
- XXE之payload与修复
- XXE结合SSRF
- 远程命令执行与反序列化
- 远程命令和代码执行漏洞
- 反序列化漏洞
- 验证码与暴力破解
- 爆破与验证码原理
- CS架构暴力破解
- BS架构暴力破解
- WEB编辑器漏洞
- 编辑器漏洞基础
- Ewebeditor编辑器
- FCKeditor编辑器
- 其他编辑器
- web中间件漏洞
- 中间件解析漏洞
- Tomcat常见的漏洞总结
- Jboss漏洞利用总结
- Weblogic漏洞利用总结
- WEB具体步骤
- 旁注和越权
- CDN绕过
- 越权与逻辑漏洞
- WEB应用常见其他漏洞
- WEB登陆页面渗透思路
- 获取WEBshell思路
- 社工、钓鱼、apt
- 社工和信息收集
- 域名欺骗
- 钓鱼邮件
- 一些钓鱼用的挂马工具
- 代码审计
- 代码审计工具
- WAF绕过
- WAF基础及云WAF
- 各种WAF绕过方法
- 绕过WAF上传文件
- 系统提权
- windows系统提权
- linux系统提权
- 数据库提权操作系统
- 内网横向渗透
- 内网穿透方式
- 一些内网第三方应用提权
- ARP与DOS
- ARP欺骗
- DOS与DDOS
- 一些DOS工具