CSRF(Cross-SiteRequestForgery,跨站请求伪造)是Web应用中常见的攻击方式,攻击者诱导受害用户在已登录状态下向目标站点发送伪造请求,从而执行非授权操作。随着开发框架逐渐完善,很多系统引入了CSRFToken、Referer校验、SameSiteCookie等机制防护。本文将从攻击者角度出发,讲解如何通过BurpSuite绕过CSRF保护机制,以及如何构造完整的CSRF攻击请求,并辅以实战技巧与防御建议。
一、BurpSuite怎么绕过CSRF保护机制
绕过CSRF保护的前提是识别应用采用了哪种防护手段。常见的防护方式包括:
CSRFToken:请求中包含的不可预测参数(通常为隐藏字段)
Referer检查:服务器验证请求来源是否来自自身域名
SameSite Cookie:浏览器层面的跨站Cookie发送限制
BurpSuite提供强大的代理拦截与复放功能,可用于模拟或尝试绕过这些机制。
1.绕过CSRFToken的常见方式
1.1获取CSRFToken参数位置
在Burp的Proxy>HTTP history中找到目标表单提交请求(如POST请求),查看是否包含类似以下字段:
POST/profile/updatecsrf_token=ae76f1a0...
或隐藏字段:
1.2使用宏动态抓取并插入Token
CSRFToken往往每次请求页面都会变化,若要复现或爆破,需先请求一次获取Token,再带入请求。
在Burp中操作:
进入Project Options>Sessions>Macros,添加一个宏用于预请求Token页面
提取token值(使用Response参数提取器)
将token自动写入下一个请求(如POST请求中对应字段)
这样即使Token动态变化,也能模拟“合法用户行为”,实现伪造。
1.3针对弱Token实现猜测或复用
某些系统Token为固定值、时间戳、可预测序列等,尝试:
多次请求页面,比较Token是否变化
Token是10位时间戳?使用Intruder字典尝试覆盖测试
如Token绑定到session,但session固定,则可暴力测试Token是否可用
2.绕过Referer校验
Referer校验是判断请求来源是否可信的方式。绕过方法包括:
2.1修改Referer头字段**
在Burp Repeater中发送请求时,手动修改为目标域名:
Referer:https://target.com/form
有些系统只是检查包含指定关键字,如target.com,则可以构造:
Referer:https://attacker.com/target.com/
2.2利用Open Redirect
如目标存在开放重定向漏洞,可借此构造伪Referer,例如:
https://target.com/redirect?url=https://attacker.com/csrf.html
用户点击后跳转,服务端日志中的Referer看似来自目标站,实为攻击页面。
3.绕过SameSiteCookie限制
若服务端设置Cookie为SameSite=Strict,跨站点请求将不携带Cookie,即使CSRF请求成功也不会生效。
绕过技巧包括:
在同域iframe+GET请求下尝试绕过(对SameSite=Strict无效)
利用浏览器漏洞或历史兼容模式(旧版本IE、早期Chrome)
不过,针对SameSite的绕过已越来越困难,是最有效的防御手段之一。
二、BurpSuite怎么构造跨站请求伪造攻击
构造CSRF攻击的核心是无需用户交互地完成敏感请求发起。常用方式是构造一个恶意HTML页面,并诱导受害者访问。
1.构造HTML表单自动提交攻击
适用于POST类型请求:
="https://target.com/profile/update"method="POST">
复制上述代码,在本地HTML页面打开,如果受害者已登录目标站,即可能自动完成伪造请求。
可在Burp中构造请求后,点击右键“Engagement tools>GenerateCSRFPoC”自动生成该HTML模板。
2.使用img标签构造GET请求
适用于GET类型接口:
页面加载时浏览器自动发起请求,模拟点击行为。
3.利用JavaScript发起AJAX请求
对抗需要JSON数据结构、复杂Header的接口时(浏览器同源策略可能阻止):
fetch("https://target.com/api",{method:"POST",credentials:"include",body
JSON.stringify({username:"admin"}),headers:{"Content-Type":"application/json"}});
此类方式较新,但在现代浏览器中跨域限制较强,容易失败,除非目标站未正确设置CORS。
三、评估目标是否存在CSRF风险
1.使用Burp的CSRFScanner插件
安装[CSRFScannerBApp]插件后自动分析所有可疑表单提交点:
检查是否缺少Token
检查是否没有Referer验证
给出高风险标记字段(如password、email、admin)
2.利用Repeater复放敏感请求,去除Token测试响应行为
若请求去掉Token或伪造Referer仍能生效→存在CSRF漏洞
若请求失效,观察403、重定向、验证失败信息,推测防护机制
总结
BurpSuite怎么绕过CSRF保护机制BurpSuite怎么构造跨站请求伪造攻击是Web渗透测试中绕过权限与模拟攻击的重要技能。通过Burp的宏提取、Token替换、Header伪造和PoC生成工具,测试者可以系统性验证目标系统的CSRF防护是否到位。CSRF漏洞看似简单,但在实际攻击中极具危害性,可能导致越权操作、数据修改甚至账号劫持。因此,不仅要会构造,还需了解其背后的防御原理,才能在红蓝对抗或审计中发挥最大价值。