当前位置: 首页 > news >正文

网站测试报告:WEB应用反CSRF的本质与防御机制

CSRF (跨站请求伪造) 本质
攻击者诱骗已登录目标站点的用户,在不知情的情况下提交一个恶意请求。该请求利用用户浏览器中已存储的认证信息(如Cookie、Session),以该用户的身份执行未授权的操作(如修改密码、转账)。


主流防御机制
安全测试的核心在于验证这些机制是否被正确实现及其强度。
CSRF Tokens:最常用机制。服务器为每个会话或表单生成一个不可预测的令牌(Token),嵌入表单(通常为隐藏域)或HTTP头。处理请求时,服务器验证该令牌的有效性。
SameSite Cookie属性:通过设置Cookie的SameSite属性(Strict或Lax),限制第三方网站在发起跨站请求时携带认证Cookie。
自定义HTTP头:通常用于AJAX请求,检查是否存在预期的自定义头(如X-Requested-With)。由于浏览器同源策略限制,第三方站点通常无法发送自定义头。
验证Referer/Origin头:服务器检查HTTP请求头中的Origin或Referer字段,判断请求是否来源于可信的本站域名。

对捕获到的CSRF请求进行仔细检查,识别应用采用了哪种或哪几种混合防御机制

1.寻找CSRF Token:
位置:在HTTP请求中,Token可能出现在:
POST请求的Body中(如csrf_token=abc123)。
GET请求的URL参数中(如?action=change&csrf_token=abc123)。
HTTP自定义头中(如X-CSRF-Token: abc123)。

手动提交两次相同请求,观察Token是否变化?Token是否与当前用户会话(Session)绑定?Token是否一次性使用?

2.检查Cookie的SameSite属性:
在开发者工具的“Application”或“存储”选项卡中,检查与认证相关的Cookie是否设置了SameSite属性。值是Strict, Lax, 还是 None?
3.检查自定义头
观察请求是否包含了如X-Requested-With: XMLHttpRequest或其他非标准头部。移除该头后服务器是否仍然处理请求?
4.验证Referer/Origin依赖
尝试手动修改或完全移除请求中的Referer和Origin头,观察服务器的响应。如果请求被拒绝,说明服务器可能依赖此头进行校验。

http://www.dtcms.com/a/352182.html

相关文章:

  • 解决 pdf.mjs 因 MIME 类型错误导致的模块加载失败问题
  • day1_线性回归的实现 李沐动手学深度学习pytorch记录
  • 吱吱企业通讯软件保障企业办公安全与效率,助力企业高效发展
  • (LeetCode 每日一题) 3000. 对角线最长的矩形的面积(数组)
  • Jmeter基础:Jmeter聚合报告
  • 6pen Art
  • 校园勤工俭学微信小程序的设计与实现:基于数字化服务生态的赋能体系构建
  • Vue2(七):配置脚手架、render函数、ref属性、props配置项、mixin(混入)、插件、scoped样式
  • C/C++ 数据结构 —— 树(2)
  • Leetcode 1049. 最后一块石头的重量 II 动态规划-01背包
  • LeetCode-22day:多维动态规划
  • Docker详细学习
  • 税务岗位职场能力解析与提升路径规划
  • 固定资产管理系统核心模块拆解:全流程管理逻辑
  • 如何利用ArcGIS探究环境与生态因子对水体、土壤、大气污染物等影响
  • 【服务器】Apache Superset MCP接入与使用
  • postman使用
  • golang 8函数
  • pytorch_grad_cam 库学习笔记——基类BaseCAM
  • 使用 Docker、Jenkins、Harbor 和 GitLab 构建 CI/CD 流水线
  • Unity:游戏性能优化!之把分散在各个游戏角色GameObject上的脚本修改为在一个脚本中运行。这样做会让游戏运行更高效?
  • Caddy + CoreDNS 深度解析:从功能架构到性能优化实践(下)
  • 【BurpSuite 插件开发】实战篇(十六-终章)性能优化实践:线程管理到正则匹配的全方位提升
  • Python爬虫实战:研究开源的高性能代理池,构建电商数据采集和分析系统
  • STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---云平台篇(一)
  • 深度学习——神经网络(PyTorch 实现 MNIST 手写数字识别案例)
  • 数据集数量与神经网络参数关系分析
  • Vibe 编程:下一代开发者范式的深度解析
  • 扩展现有的多模块 Starter
  • 2025本地部署overleaf