VuePress 站点
首页
数学
计算机基础
Java后端
AI大模型
UI设计
首页
数学
计算机基础
Java后端
AI大模型
UI设计
  • 计算机基础
  • 计算机网络应用

    • 课程笔记:TCP三次握手建立连接
    • 课程笔记:TCP三次握手的必要性
    • 课程笔记:TCP协议缺陷与SYN Flood攻击
    • 课程笔记:TCP四次挥手释放连接
    • 课程笔记:TCP四次挥手释放连接的必要性
    • 课程笔记:TCP 报文段格式与 IP 分组
    • 课程笔记:HTTP/2 新特性——二进制分帧
    • 课程笔记:HTTP/2 新特性——多路复用
    • 课程笔记:HTTP/2 新特性——服务器推送(Server Push)
    • 课程笔记:HTTPS 简介与架构图
    • 课程笔记:HTTPS原理与传输层安全协议(TLS)
    • 课程笔记:HTTPS原理——对称加密算法
    • 课程笔记:HTTPS原理——非对称加密算法
    • 课程笔记:HTTPS 原理 —— 数字签名
    • 课程笔记:HTTPS 原理——证书与 CA
    • 课程笔记:完整的HTTPS协议通信流程
    • 课程笔记:HTTPS 协议的性能损耗
    • 课程笔记:TLS False Start 加速 HTTPS
    • 课程笔记:升级 HTTP 协议到 HTTP/2
    • 课程笔记:通过会话恢复加速 HTTPS
    • 课程笔记:OWASP 组织与十大 Web 安全漏洞
    • 课程笔记:XSS 跨站脚本攻击
    • 课程笔记:存储型XSS跨站脚本攻击
    • 课程笔记:XSS攻击窃取Cookie
    • 课程笔记:反射型XSS跨站脚本攻击
    • 课程笔记:DOM型XSS跨站脚本攻击
    • 课程笔记:植入 JS、HTML 代码攻击
    • 课程笔记:XSS攻击的防护策略
    • 课程笔记:XSS攻击的输入环节防护
    • 课程笔记:XSS 劫持 Cookie 的防护策略
    • 课程笔记:XSS 内容输出防护方案
    • 课程笔记:CSP 内容安全策略
    • 课程笔记:CSP 内容安全策略的应用方式
    • 课程笔记:CSRF 跨站请求伪造攻击原理
    • 课程笔记:CSRF 跨站点请求伪造攻击案例
    • 课程笔记:CSRF 跨站请求伪造防护方案
    • 课程笔记:OWASP CSRFTester 工具的原理与使用
    • 课程笔记:点击劫持攻击原理
    • 课程笔记:点击劫持防护方案
    • 课程笔记:URL 跳转漏洞原理与防护
    • 课程笔记:Session 认证与会话劫持
    • 课程笔记:Session固定与Session保持攻击
    • 课程笔记:注入攻击与 OWASP 靶机平台
    • 课程笔记:SQL盲注与ORM注入攻击及防护
    • 课程笔记:XML注入、代码注入、OS命令注入攻击
    • 课程笔记:文件上传漏洞与文件下载/目录浏览漏洞
    • 课程笔记:访问控制与权限访问漏洞
    • 课程笔记:DDoS 分布式拒绝服务攻击原理与防护
    • 课程笔记:CC(Challenge Collapsar)攻击与防护
    • 课程笔记:CDN 的工作原理
    • 课程笔记:CDN的网络架构和术语说明
    • 课程笔记:CDN应用场景与阿里云CDN
    • 课程笔记:如何使用阿里云CDN服务
    • 课程笔记:CDN 刷新与预热
    • 课程笔记:阿里云 CDN 回源配置
    • 课程笔记:CDN 缓存配置
    • 课程笔记:CDN 访问控制与性能优化
  • 计算机网网络

    • 📖 教材介绍与课程导言
    • 📖 1.1 信息时代的计算机网络
    • 📖 1.2 因特网概述
    • 📖 1.3 电路交换、分组交换和报文交换
    • 📖 1.4 计算机网络的定义和分类
    • 📖 1.5 计算机网络的性能指标(1)
    • 📖 1.5 计算机网络的性能指标(2)
    • 📖 1.6.1 常见的三种计算机网络体系结构
    • 📖 1.6.2 计算机网络体系结构分层的必要性
    • 📖 1.6.3 计算机网络体系结构分层思想举例
    • 📖 计算机网络体系结构中的专用术语
    • 📖 物理层概述
    • 📖 物理层下面的传输媒体
    • 📖 传输方式
    • 📖 编码与调制
    • 📖 2.5 信道的极限容量
    • 📖 2.6 信道复用技术
    • 📖 3.1 数据链路层概述
    • 📖 3.2 数据链路层的三个重要问题
    • 📖 3.2.1 封装成帧和透明传输
    • 📖 3.2.2 差错检测
    • 📖 3.2.3 (1) 可靠传输的相关基本概念
    • 📖 3.2.3 (2) 可靠传输的实现机制 - 停止-等待协议(SW)
    • 📖 3.2.3 (3) 可靠传输的实现机制 - 回退N帧协议(GBN)
    • 📖 3.2.3 (4) 可靠传输的实现机制 - 选择重传协议(SR)
    • 📖 3.3 点对点协议 PPP
    • 📖 3.4 共享式以太网
    • 📖 3.4.1 网络适配器和 MAC 地址
    • 📖 3.4.2 (1) CSMA/CD 协议的基本原理
    • 📖 3.4.2 (2) 共享式以太网的争用期、最小帧长和最大帧长
    • 📖 3.4.2 (3) 共享式以太网的退避算法和信道利用率
    • 📖 3.4.3 使用集线器的共享式以太网
    • 📖 3.4.4 在物理层扩展以太网
    • 📖 3.4.5 (1) 网桥的主要结构和基本工作原理
    • 📖 3.4.5 (2) 透明网桥的自学习和转发帧的过程以及生成树协议STP
    • 📖 3.5 交换式以太网
    • 📖 3.5.1 以太网交换机
    • 📖 3.5.2 共享式以太网和交换式以太网的对比
    • 📖 3.6 以太网的MAC帧格式
    • 📖 3.7.1 虚拟局域网 VLAN 概述
    • 📖 3.7.2 虚拟局域网 VLAN 的实现机制
    • 📖 3.8 以太网的发展
    • 📖 3.9.1 802.11 无线局域网的组成
    • 📖 3.9.2 802.11 无线局域网的物理层
    • 📖 3.9.3 (1) 802.11 无线局域网的数据链路层 —— 使用 CSMA/CA 协议(而不使用 CSMA/CD 协议)
    • 📖 CSMA/CA(载波监听多址接入/碰撞避免)协议的基本工作原理
    • 📖 802.11 无线局域网的 MAC 帧格式
    • 📖 网络层概述
    • 📖 网际协议 IP(网际协议)与异构网络互连
    • 📖 IPv4 地址及其编址方法——概述
    • 📖 IPv4 地址的分类编址方法
    • 📖 IPv4 地址的划分子网编址方法
    • 📖 IPv4 地址的无分类编址方法(CIDR)
    • 📖 IPv4 地址的应用规划
    • 📖 IPv4 地址与 MAC 地址
    • 📖 地址解析协议 ARP
    • 📖 IP 数据报的发送和转发流程
    • 📖 IPv4 数据报的首部格式
    • 📖 静态路由配置
    • 📖 因特网的路由选择协议概述
    • 📖 路由信息协议 RIP(路由信息协议)
    • 📖 开放最短路径优先 OSPF(开放最短路径优先)
    • 📖 边界网关协议 BGP(边界网关协议)
    • 📖 路由器的基本工作原理
    • 📖 网际控制报文协议 ICMP(网际控制报文协议)
    • 📖 虚拟专用网 VPN 和网络地址转换 NAT
    • 📖 IP 多播技术的相关基本概念
    • 📖 在局域网上进行硬件多播
    • 📖 在因特网上进行 IP 多播需要的两种协议
    • 📖 网际组管理协议 IGMP
    • 📖 多播路由选择协议
    • 📖 移动 IP 技术概述
    • 📖 IPv6 引进的主要变化
    • 📖 IPv6 数据报的基本首部和扩展首部
    • 📖 IPv6 地址
    • 📖 从 IPv4 向 IPv6 过渡
    • 📖 网际控制报文协议 ICMPv6
    • 📖 软件定义网络 SDN
    • 📖 运输层概述 — 进程间基于网络的通信
    • 📖 TCP/IP 体系结构运输层中的两个重要协议
    • 📖 运输层端口号、复用与分用的概念
    • 📖 UDP 和 TCP 的对比
    • 📖 TCP 报文段的首部格式
    • 📖 "三报文握手"建立 TCP 连接
    • 📖 "四报文挥手"释放 TCP 连接
    • 📖 TCP 的流量控制 (Flow Control)
    • 📖 TCP 的拥塞控制 (Congestion Control) 及与网际层拥塞控制的关系
    • 📖 TCP 可靠传输的实现
    • 📖 TCP 超时重传时间 (RTO) 的选择
    • 📖 TCP 的选择确认 (SACK)
    • 📖 6.1 应用层概述
    • 📖 6.2 客户—服务器方式和对等方式
    • 📖 6.3 动态主机配置协议 DHCP
    • 📖 6.4 域名系统 DNS
    • 📖 6.5 文件传送协议 FTP
    • 📖 电子邮件
    • 📖 万维网 WWW
    • 📖 网络安全概述
    • 📖 密码学相关基本概念
    • 📖 对称密钥密码体制
    • 📖 公钥密码体制
    • 📖 报文摘要和报文鉴别码
    • 📖 数字签名(digital signature)
    • 📖 实体鉴别
    • 📖 密钥分发
    • 📖 访问控制
    • 📖 网络体系结构各层采取的安全措施—物理层和数据链路层
    • 📖 网络体系结构各层采取的安全措施—网络层
    • 📖 网络体系结构各层采取的安全措施—运输层
    • 📖 网络体系结构各层采取的安全措施—应用层
    • 📖 防火墙访问控制与入侵检测系统
    • 📖 常见的网络攻击及其防范
    • 📖 定长子网划分和变长子网划分的二叉树解法

课程笔记:OWASP CSRFTester 工具的原理与使用

课程名称:计算机网络应用 核心摘要:本讲介绍 OWASP 组织推出的 CSRFTester 漏洞扫描工具,讲解其基于代理抓包、生成伪造请求代码并验证漏洞的工作原理,并演示从工具启动、浏览器代理配置(127.0.0.1:8008)到抓取请求、生成多种类型(Form/IFrame/Image/XHR/Link)攻击 HTML、验证漏洞的完整实操流程。

一、 核心概念与原理

1.1 工具背景

  • CSRFTester 由 OWASP 组织推出,是官方推荐的 CSRF(跨站请求伪造) 漏洞扫描工具。
  • 市场同类工具:CSRFScanner、AppScan、CSRF Scar 等,均可用于 CSRF 漏洞检测。
  • 该工具已 停更(项目维护停止),有条件可采购第三方商业扫描工具,功能更健全。
  • 工具基于 Java 编写,界面较为简陋,但功能完整。

1.2 工作原理

  1. 记录请求:通过本地代理记录用户浏览器访问的所有 HTTP 请求(方法、URL、参数、表单信息)。
  2. 生成攻击代码:针对指定请求生成 CSRF 攻击(伪造请求)的 HTML 代码。
  3. 验证漏洞:用生成的代码进行测试:
    • 服务器接受该伪造请求 → 存在 CSRF 漏洞;
    • 服务器拒绝/不能成功访问 → 不存在漏洞。
  4. 双重用途:既可模拟攻击,也可生成针对某网站的攻击代码(后者仅限授权测试,禁止非法使用)。

1.3 支持的攻击类型(Report Type)

类型说明
Form构造 POST 表单提交攻击(最常用)
IFrame通过隐藏 iframe 加载触发请求
Image利用 <img> 标签 src 触发 GET 请求
XHR通过 AJAX(XMLHttpRequest)发起请求
Link通过链接触发请求

二、 技术细节与协议分析

2.1 代理抓包机制

  • 工具启动后控制台输出:Proxy listening on 127.0.0.1:8008
  • 监听地址:127.0.0.1(本机回环)
  • 监听端口:8008
  • 原理:浏览器所有流量经本机 8008 端口转发,工具据此捕获请求方法、URL、参数等。

2.2 工具目录结构

CSRFTester/
├── lib/          # Java 依赖包
├── run.bat       # 启动脚本(双击运行)
└── ...

2.3 主界面元素

  • 表格区:展示已记录请求的「请求方法 / 请求 URL / 请求参数」。
  • Clear 按钮:清空所有访问记录。
  • Start 按钮:开始记录浏览器请求。
  • Report Type:左下角选择生成攻击代码的类型。

三、 实践应用与配置命令

3.1 启动 CSRFTester

  1. 解压工具压缩包。
  2. 双击 run.bat 启动程序。
  3. 查看控制台,确认提示 Proxy listening on 127.0.0.1:8008。

3.2 配置浏览器代理(以 Edge 为例)

  1. 单击浏览器右上角「三个点」→ 选择 工具 → 设置。
  2. 选择 高级 → 系统。
  3. 单击「打开您计算机的代理设置」。
  4. 在代理设置窗口中:
    • 将「手动设置代理」由 关 改为 开。
    • IP 地址:127.0.0.1
    • 端口号:8008
  5. 单击 保存。

注:只需设置「地址、端口、启用」三项即可,无需多余配置。

3.3 抓取请求流程

  1. 在 CSRFTester 主界面单击 Start 开始记录。
  2. 在浏览器中访问目标站点(如 edu.com/admin/admin.php)。
  3. 完成登录(如 admin / 123456)及关键业务操作(留言管理、删除、系统管理、重置密码 等)。
  4. 返回工具,表格中将列出所有捕获的请求记录。

3.4 生成攻击 HTML 并验证漏洞

  1. 在请求列表中 选中 需要检测 CSRF 漏洞的链接(如 reset password)。
  2. 在左下角 Report Type 中选择攻击类型(如 Form)。
  3. 单击 生成 HTML(Generate HTML)。
  4. 选择保存位置(如桌面)并保存。
  5. 打开生成的 HTML 攻击脚本:
    • 查看其中包含的攻击表单(如 reset_password、admin_login、admin_main、delete 等多个模拟攻击)。
    • 表单结构示例:GET 请求 + 表单名称 + 隐藏字段(hidden)。
  6. 触发攻击代码:
    • 攻击成功(服务器接受伪造请求)→ 该接口 存在 CSRF 漏洞;
    • 攻击失败(请求被拒绝)→ 不存在漏洞。

四、 重点与难点提示

  • 监听端口必须记牢:CSRFTester 默认监听 127.0.0.1:8008,浏览器代理端口须与之一致,否则无法抓包。
  • 代理配置是前置条件:未配置浏览器代理 → 工具捕获不到任何请求 → 测试无法进行。
  • Report Type 选择:GET 类请求常用 Image/Link;POST 类请求常用 Form;异步接口用 XHR。
  • 漏洞判定标准:伪造请求被服务器成功接受即判定存在 CSRF 漏洞,反之不存在。
  • 工具已停更:CSRFTester 仅适用于教学与基本测试,生产环境建议使用商业扫描工具。
  • 使用边界:工具仅限对自有/授权系统进行安全测试,禁止用于非法攻击。
  • 易错点:生成 HTML 时若未先选中具体请求,工具可能为所有记录生成攻击代码(需先删除多余项再重新选择)。

五、 课后疑问/遗留问题

  1. 针对存在 CSRF 漏洞的接口,应如何修复?(提示:Token 校验、Referer 校验、SameSite Cookie 等防御机制)
  2. CSRFTester 已停更,当前主流的开源/商业 CSRF 检测方案有哪些?后续课程是否介绍 Burp Suite 的 CSRF 检测插件?
  3. 不同 Report Type(Form/IFrame/Image/XHR/Link)的攻击成功率与适用场景差异如何?
  4. 现代浏览器 SameSite Cookie 默认策略对 CSRF 攻击的影响有多大?
最近更新: 2026/6/23 17:18
Contributors: yangwenguang
Prev
课程笔记:CSRF 跨站请求伪造防护方案
Next
课程笔记:点击劫持攻击原理