一、CSRF漏洞
1. CSRF漏洞概述
- 定义: CSRF(Cross-Site Request Forgery)跨站请求伪造,是一种利用用户已登录的身份,在用户不知情的情况下,执行非法操作的安全漏洞。
- 与XSS区别: 与XSS(跨站脚本攻击)不同,CSRF不需要获取用户的明文cookie,即可利用用户身份进行操作。
2. CSRF漏洞案例演示
- 部署环境: 案例代码部署在PHP study环境中,包含bank和porn两个站点。
- 浏览器要求: 演示需使用火狐浏览器,因特定浏览器机制影响演示效果。
- 域名配置: 通过修改本地hosts文件,将域名指向本地服务器,增加案例真实感。
- 银行系统: 模拟银行登录及转账功能,数据库表存储用户账户及余额信息。
- 转账功能: 用户可给其他用户转账,操作成功后账户余额相应变化。
- 恶意网站: 用户在浏览网银时,弹出恶意网站窗口,诱导点击。
- 隐藏请求: 恶意网站包含隐藏图片,其src属性指向银行转账接口,利用用户cookie发起请求。
- 攻击效果: 用户点击恶意链接后,账户余额减少,资金被转至其他用户。
3. CSRF漏洞原理
- Cookie作用范围: 浏览器在访问恶意网站时,若该网站请求包含用户已登录站点的接口,且域名和路径匹配,浏览器会自动发送有效cookie。
- 服务器响应: 服务器接收到包含有效cookie的请求,视为正常请求,执行相应操作。
4. CSRF实现流程
- 用户登录: 用户登录正常系统(如银行),服务器生成cookie保存于浏览器。
- 访问恶意网站: 用户未退出登录状态下,访问包含恶意代码的第三方网站。
- 恶意代码执行: 浏览器执行恶意代码,发起对目标服务器接口的请求。
- 服务器响应: 服务器验证cookie有效,执行请求操作(如转账)。
5. CSRF漏洞危害
- 敏感操作风险: CSRF漏洞可导致未经用户同意执行敏感操作,如转账、修改密码等。
- 资产安全威胁: 攻击者利用漏洞转移用户资金或篡改账户信息,严重威胁用户资产安全。
6. 防御措施(提及)
- 后续内容: 课程后续将讲解CSRF漏洞的防御和修复措施。
二、知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
CSRF漏洞定义 | 可在不获取用户明文cookie情况下,直接利用用户身份操作 | 与XSS区别:不需注入脚本,直接利用cookie | ★★★ |
CSRF漏洞案例演示 | 通过银行转账案例展示CSRF攻击过程 | 攻击过程:用户登录->访问恶意网站->触发转账 | ★★★★ |
CSRF漏洞原理 | 利用用户已登录状态,第三方网站发起跨站请求 | 关键点:cookie作用范围、自动发送cookie | ★★★★★ |
CSRF漏洞确定与挖掘 | 分析网站接口,检查是否验证用户身份 | 易混淆:与合法请求难以区分 | ★★★ |
CSRF漏洞防御与修复 | 未详细展开,但提及重要性 | 防御策略:如验证码、双重认证等 | ★★ |
CSRF与XSS对比 | CSRF不需获取cookie明文,XSS需注入脚本 | 区别:攻击方式、利用条件不同 | ★★★ |
CSRF漏洞危害 | 可导致资金转移、密码修改等敏感操作 | 危害大,易被忽略 | ★★★★★ |
一、跨站请求伪造漏洞典型案例
1. 谷歌邮箱Gmail
- 漏洞接口: 设置邮件转发规则接口
- 漏洞危害:
- 泄露邮箱内容,相当于短信验证码泄露
- 如果邮箱注册了重要网站或绑定了重要资产,如域名,攻击者可通过接收验证邮件转移资产
- 案例说明: 攻击者利用CSR漏洞,将用户的邮箱账号改为自己的,从而接收用户所有邮箱的邮件,进而可能盗取或转移用户的重要资产
2. 微博
- 漏洞接口: 关注账号的接口
- 漏洞原理: 第三方网站可直接调用接口,使某账号关注其他账号,无需登录
- 攻击方式:
- 攻击者在自己的网站嵌入恶意代码
- 当用户登录微博且未退出,访问该网站时,会自动关注一些账号(如僵尸账号、黑产账号)
- 修复情况: 微博已修复该漏洞
- 提醒: 可通过搜索公开漏洞平台(如CNVD)或相关镜像站,了解更多CSR漏洞案例及后果
二、跨站请求伪造漏洞危害
1. CSRF漏洞的典型案例
- Gmail CSRF漏洞: 通过设置邮件转发,攻击者可以未经授权地操作用户的Gmail账户。
- 微博Weibo CSRF漏洞: 攻击者可以自动关注账号,利用用户的身份进行恶意操作。
2. CSRF漏洞的具体危害
- 修改账户信息: 无需密码即可直接调用接口,修改用户的绑定手机号、密码、昵称、头像等。
- 上传木马文件: 利用管理员账号的权限,通过存在CSRF漏洞的接口上传木马文件。
- 传播蠕虫病毒: CSRF漏洞可以被用来传播蠕虫病毒,实现点击扩散的效应。
- 与其他攻击手段配合: CSRF漏洞可以与其他外部漏洞或攻击手段(如XSS、SQL注入)结合,实现对网站的提权。
3. CSRF与XSS漏洞的危害对比
- XSS漏洞危害:
- 获取cookie,实现冒充身份的后续操作。
- 刷点击、弹广告,影响用户体验。
- 传播蠕虫病毒。
- 区别与联系:
- CSRF和XSS都是利用漏洞冒充用户身份进行操作,但它们的根本区别在于攻击方式和目的不同。
- CSRF主要关注于在用户不知情的情况下发送恶意请求,而XSS则更侧重于获取用户的敏感信息(如cookie)或执行恶意脚本。
三、跨站请求伪造漏洞与XSS区别
- CSRF攻击流程: 用户在登录后访问第三方网站,第三方网站调用被攻击服务器的接口,利用用户的cookie请求成功。
- XSS攻击流程: 用户将恶意代码发送到服务器,服务器可能存储也可能直接反射回浏览器,导致恶意代码执行。
- 关键点对比:
- 第三方网站: CSRF攻击涉及第三方网站调用接口;XSS攻击不涉及。
- 获取cookie: XSS攻击可能获取到明文的cookie;CSRF攻击不需要。
- 代码注入: XSS攻击需要将恶意代码注入到目标网站;CSRF攻击不需要,只需接口没有校验。
1. 跨站请求伪造漏洞payload
1)通过图片属性自动加载
- 方法: 利用图片的
srcsrcsrc
属性,自动发起GET请求。 - 示例: <img src="http:/superbank.com/bank/transfer.php?nameid=2002&amount=1000" width="0" height="0">
2)构建超链接
- 方法: 构建一个超链接,用户点击后发起GET请求。
- 示例: <a href="http:/superbank.com/transfer.php?amount=1000&to=jiangang" target="_blank">小姐姐在线视频聊天!!<a/>
3)构建隐藏表单,自动提交
- 方法: 在第三方网页中设计一个自动提交的表单,用户访问时表单自动提交,发起POST请求。
- 示例:
<form action="http:/superbank.com/withdraw" method="POST"> <input type="hidden" name="account" value="xiaoming" /> <input type="hidden" name="amount" value="1000" /> <input type="hidden" name="to" value="jiangang" /> </form> <script> document.forms[0].submit(); </script>
四、知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
CSR漏洞概念 | 跨站请求伪造(CSR)漏洞的基本概念 | CSR与XSS的区别 | 🌟 |
谷歌邮箱CSR漏洞案例 | 设置邮件转发规则的接口存在CSR漏洞,可导致邮箱账号被篡改,进而造成资产损失 | 邮箱作为身份认证方式的重要性,以及CSR漏洞对资产安全的影响 | 🌟🌟 |
微博CSR漏洞案例 | 关注账号的接口存在CSR漏洞,第三方网站可调用接口让用户关注指定账号 | 第三方网站如何利用用户登录状态进行恶意操作 | 🌟 |
CSR漏洞的危害 | 修改账户信息、上传木马文件、传播蠕虫病毒、结合其他漏洞提权等 | 识别并防范CSR漏洞的重要性 | 🌟🌟🌟 |
CSR与XSS的区别 | CSR需要第三方网站调用接口,不需要获取明文cookie;XSS是恶意代码直接执行或反射回浏览器 | 攻击流程、获取cookie方式、代码注入目标的差异 | 🌟🌟🌟 |
CSR漏洞的挖掘与确定 | 识别网站敏感接口,检查接口是否存在校验不足的问题 | 如何有效挖掘和确定CSR漏洞 | 🌟🌟🌟🌟 |
配漏的编写方式 | 利用图片src属性发起GET请求、构建超链接诱导用户点击、设计自动提交的表单等 | 多种配漏编写方式的理解与应用 | 🌟🌟 |