用途
本技能用于在获得书面授权的Web应用渗透测试中,模拟跨站请求伪造(CSRF)攻击,以识别状态变更操作是否容易受到CSRF攻击,并评估现有防护措施的有效性。它适用于安全审计、自定义认证与会话管理机制评估,以及验证敏感操作(如修改密码、转账、修改设置)的防护强度。
主要能力
- 识别应用中的状态变更请求(POST/PUT/DELETE),重点关注密码/邮箱修改、资金转账、账户设置变更、用户权限增删、资源创建删除、安全功能开关(如禁用2FA)等操作。
- 分析反CSRF令牌的实现强度,包括测试移除令牌、空令牌、随机/无效令牌、过期令牌复用、跨用户令牌使用等场景。
- 检查SameSite Cookie属性(Strict、Lax、None)以及Origin/Referer头验证等浏览器级和头部级防护。
- 使用Burp Suite Professional内置的CSRF PoC生成器快速生成概念验证页面。
- 构造高级CSRF载荷,覆盖JSON API(通过enctype="text/plain")、XMLHttpRequest(需宽松CORS)、fetch API、图片标签(GET型状态变更)、iframe多步攻击等。
- 托管PoC页面并验证攻击是否成功,包括SameSite=Lax绕过(利用顶层GET导航)。
使用方式
- 识别状态变更请求:在Burp Suite的Proxy > HTTP History中筛选POST/PUT/DELETE请求,检查是否存在反CSRF保护(令牌、自定义头、SameSite、Referer/Origin验证)。
- 分析反CSRF令牌:使用curl测试移除令牌、空令牌、无效令牌、过期令牌、跨用户令牌等场景,观察服务器响应。
- 检查SameSite与头部防护:通过curl -I查看Set-Cookie中的SameSite属性,并测试无Referer、恶意Referer、伪造Origin等请求。
- 生成CSRF PoC:在Burp中右键目标请求,选择Engagement tools > Generate CSRF PoC,并可在浏览器中测试。
- 构造高级载荷:针对JSON API、XMLHttpRequest、fetch、图片标签、iframe等场景编写自定义HTML/JavaScript。
- 测试与验证:将PoC文件放入本地目录,使用python3 -m http.server 8888托管;在已认证的浏览器中访问PoC页面,检查状态是否被非预期修改。
适用场景
- 授权Web应用渗透测试中识别易受CSRF影响的状态变更操作。
- 测试反CSRF令牌实现的有效性。
- 验证SameSite Cookie属性在不同浏览器中的执行情况。
- 评估执行敏感操作(密码修改、资金转账、设置修改)的应用。
- 对自定义认证和会话管理机制进行安全审计。
限制与前提
- 授权:必须拥有针对目标的书面渗透测试协议。
- 工具:需要Burp Suite Professional(含CSRF PoC生成功能)、本地HTTP服务器(如Python http.server)、两个浏览器(一个作为受害者认证,一个作为攻击者)、具有有效测试凭据的已认证会话,以及HTML/JavaScript知识。
- 法律声明:本技能仅用于授权安全测试和教育目的。未经授权对不拥有或未获书面许可的系统使用属于违法行为,可能违反计算机欺诈相关法律。
- 部分高级技术(如XMLHttpRequest)需要目标具有宽松的CORS配置。
- 具体工具版本、平台兼容性、收费情况等未在资料中提供。