摘要本系列文章专为零基础小白打造从环境搭建到漏洞利用带你全面吃透 Pikachu 靶场。作为开篇本文先讲述 Pikachu 的“前世今生”及 Web 安全基础随后手把手教你在 Windows 上搭建 PHPStudy Pikachu 集成环境。核心部分聚焦第一个模块——暴力破解从表单爆破、验证码绕过、Token 防爆破三个关卡讲解攻击原理、Burp Suite 操作以及防御思路。一、从一只“电老鼠”说起Pikachu的前世今生如果你刚接触网络安全可能会被各种“靶场”名字搞晕——DVWA、Sqli-labs、Upload-labs、WebGoat……而Pikachu绝对是其中画风最萌、但对新手最友好的一个。它的名字来自《精灵宝可梦》里的皮卡丘logo是一只黄色电气鼠看起来人畜无害实则藏着满满的漏洞等你来“电”。Pikachu 靶场由中国安全研究员aflz博客园ID开发最早于2018年左右在 GitHub 开源。作者初衷很简单市面上的渗透测试靶场要么环境难配要么漏洞类型单一要么需要一定基础才能玩转而他想做一个真正适合零基础小白的综合性漏洞练习平台。于是Pikachu 诞生了——全部采用 PHP MySQL 编写单文件部署一个文件夹丢进 Web 目录就能跑不用 Docker、不用虚拟机甚至不用命令行对 Windows 用户极其友好。截至2026年Pikachu 在 GitHub 上已获得超过 4k Star被无数安全培训课程、高校实验室和个人博客引用。它包含了超过20种常见 Web 漏洞类型比如暴力破解、XSS、SQL注入、文件上传、CSRF、SSRF、命令注入等每个漏洞又按难度分成多个子关卡而且配套了详细的源码注释和防御建议。可以说Pikachu 就是 Web 安全入门的“教材级”靶场。接下来我们就从最基础的环境搭建开始一步步走进 Pikachu 的世界。第一篇先搞定暴力破解模块——别小看它很多生产环境的账号体系就是被这种“笨办法”打穿的。二、Web安全速成班你需要先懂的几个概念在动手之前我们先花几分钟补一下最基础的 Web 知识。如果你已经了解 HTTP 协议、请求/响应和 Cookie可以直接跳到环境搭建部分。2.1 当你打开一个网页发生了什么你在浏览器输入http://example.com/login.php按下回车浏览器将域名解析成 IP 地址DNS 查询。浏览器向服务器 IP 的 80 端口发起TCP 连接。连接建立后浏览器发送一个HTTP 请求内容大致像这样GET /login.php HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 ... Accept: text/html服务器收到请求找到login.php执行 PHP 代码生成 HTML 页面然后返回一个HTTP 响应HTTP/1.1 200 OK Content-Type: text/html Content-Length: 1234 html body登录页面.../body /html浏览器解析 HTML渲染页面如果有图片、CSS、JS 还会发起额外请求。浏览器与服务器断开或保持连接HTTP/1.1 默认持久连接。整个过程中数据在网络上“明文”传输除非启用 HTTPS。攻击者如果能够截获这些数据包就能看到你输入的用户名和密码——这就是著名的“中间人攻击”思路之一。2.2 核心三要素请求、响应、Cookie请求由四部分构成请求行POST /login.php HTTP/1.1请求头HeadersHost、User-Agent、Cookie 等空行分隔符请求体BodyGET 方法通常没有 BodyPOST 方法会把表单数据放在这里例如usernameadminpassword123456响应也分四部分状态行HTTP/1.1 200 OK或302 Found等响应头Set-Cookie: PHPSESSIDabc123;、Location: http://...等空行响应体HTML 代码Cookie是服务器让浏览器保存的小段数据用来维持会话状态。比如登录成功后服务器生成一个 Session ID通过Set-Cookie返回给浏览器浏览器下次请求会自动带上这个 Cookie服务器就能认出你。暴力破解中很多防御手段就是围绕 Cookie 和 Session 做文章。2.3 漏洞分类万花筒Web 漏洞可以按攻击发生的位置分为客户端漏洞和服务端漏洞服务端漏洞SQL注入、命令注入、文件上传、文件包含、反序列化等危害直接涉及服务器甚至内网。客户端漏洞XSS跨站脚本、CSRF跨站请求伪造、点击劫持等主要危害用户浏览器。按利用方式又可分成逻辑漏洞暴力破解、越权、支付篡改、验证码缺陷等不靠代码注入而是利用业务逻辑缺陷。Pikachu 把这些经典漏洞几乎一网打尽。今天我们聊的暴力破解就属于逻辑漏洞。三、手摸手搭建Pikachu靶场3.1 准备工具PHPStudy小皮面板集成了 Apache/Nginx MySQL PHP 的一键环境对 Windows 极其友好。下载地址小皮面板(phpstudy) - 让天下没有难配的服务器环境Pikachu 源码GitHub 仓库 GitHub - zhuifengshaonianhanlu/pikachu: 一个好玩的Web安全-漏洞测试平台 · GitHub 可以直接Code - Download ZIP。Burp Suite社区版即可用于抓包和暴力破解官网 Download Burp Suite Community Edition - PortSwigger3.2 安装 PHPStudy下载 PHPStudy V8.1或其他新版双击安装选一个空间充足的目录如E:\phpstudy_pro。安装完成后打开启动Apache和MySQL。如果端口被占用可以修改 Apache 端口为 8080 等这里我们假设用默认 80 端口。3.3 部署 Pikachu将下载的pikachu-master.zip解压得到文件夹pikachu-master把它重命名为pikachu。打开 PHPStudy点击“网站” - “管理” - “打开根目录”会打开类似 E:\phpstudy_pro\WWW的文件夹。把整个pikachu文件夹复制进去。找到 Pikachu 的数据库配置文件E:\phpstudy_pro\WWW\pikachu\inc\config.inc.php修改数据库密码配置现在访问http://localhost/pikachu/install.php看到 Pikachu 的初始化界面点击安装/初始化脚本会自动创建数据库并导入数据。看到“安装成功”提示就可以开始闯关了。四、初探Pikachu目录结构和使用方法进入http://localhost/pikachu/首页左侧是漏洞分类菜单包括暴力破解Cross-Site Scripting (XSS)SQL Inject (SQL注入)文件上传文件包含不安全的文件下载越权CSRFSSRF命令注入反序列化XXE敏感信息泄露等等每类下又有小关卡比如暴力破解下面有“基于表单的暴力破解”、“验证码绕过on server”、“验证码绕过on client”、“token 防爆破”等。点击即可进入练习。推荐使用Chrome 浏览器 Burp Suite组合。Burp 社区版虽然功能有限但 Intruder爆破器足够我们使用。配置代理Burp 默认代理127.0.0.1:8080Chrome 安装 Oasis Proxy 插件或直接 Win 系统代理设置。在 Burp 中把 Intercept 置为Intercept is on即可抓包。五、暴力破解只会试密码吗没那么简单5.1 什么是暴力破解暴力破解Brute Force简单说就是不断尝试所有可能的用户名/密码组合直到试出正确的。如果没有任何防御攻击者写个脚本自动跑几分钟就能破掉弱密码。现实中很多系统加了图形验证码、登录频率限制、Token 等机制但实现不当仍会被绕过。Pikachu 的暴力破解模块设计了四个关卡基于表单的暴力破解无防御验证码绕过服务端问题验证码绕过客户端问题Token 防爆破下面我们逐一拆解。5.2 关卡一基于表单的暴力破解功能描述一个简陋的登录框输入用户名密码成功显示“欢迎”失败提示“用户名或密码错误”。【攻击思路】没有任何验证码或频率限制只需准备一份用户名字典和密码字典用工具不断 POST 请求即可。Burp Suite 的 Intruder 模块天生就是干这个的。实战步骤打开 Burp确认拦截开启Intercept is on。在 Pikachu 暴力破解页面输入任意用户名例如admin和密码123456点击登录。Burp 捕获到 POST 请求类似在 Burp 中右键请求 -Send to Intruder。切换到 Intruder 模块Positions 标签。首先点击Clear §然后选中admin用户名值点击Add §再选中123456密码值点击Add §。最后攻击类型选择Cluster bomb集束炸弹意思是用户名和密码各自遍历字典所有组合都试。切换到 Payloads 标签Payload set 1 用户名加载用户名字典可用提供的但是有九千条左右的数据可简单输入admin, root, test, userpikachu每行一个。Payload set 2 密码加载常用密码字典比如123456, password, admin, 888888, pikachu000000aaabbbabcabc123123abc123123abc等。可自己创建 txt。点击右上角Start attack会弹出新窗口显示所有请求。观察每个请求的响应长度Length或状态码。如果某个响应的长度明显不同比如说其他的都显示用户或者密码不存在而登录成功是我们想要的那它的响应长度就明显比较短那可能就是登录成功的组合。找到正确密码后在响应中查看返回内容确认登录成功。防御方案增加图形验证码且后端必须校验。限制单 IP 单位时间内的登录尝试次数如 5 次错误锁定 15 分钟。密码复杂度强制要求增加爆破时间成本。使用双因素认证2FA。记录日志触发告警。5.3 关卡二验证码绕过on server这一关登录框多了一个验证码输入框旁边显示一张图片验证码。标题是“验证码绕过(on server)”暗示服务端有验证码校验但可能存在缺陷。【为什么叫“绕过”】常见绕过场景验证码不刷新每次登录请求都使用同一个验证码直到成功或手动刷新。攻击者可以手工输入一次验证码抓包后多次重放。验证码验证后未销毁验证通过一次后Session 中的验证码没清空导致同一个验证码可以反复用。验证码以文本形式返回在页面中。我们来试试。攻击演示打开页面看到验证码为abcd举例输入任意用户名密码和该验证码登录一次。Burp 拦截这个请求Send to Intruder。在 Positions 中只标记用户名和密码为变量§验证码值保持刚才输入的正确值不变。攻击类型选 Cluster bomb。配置 Payloads用户名和密码字典如前。发起攻击。观察结果如果很多请求返回的长度与登录失败一致但有几个长度不同说明同一个验证码被多次复用造成了绕过。进阶一点有些系统验证码靠 Session 校验但 Session 与验证码绑定如果你每次请求都带相同的 Cookie 和验证码后端可能因为验证码正确就放行而不检查使用次数。Pikachu 这一关就是模拟这种情况。防御方案每次验证码验证后无论成功与否立即销毁该验证码的 Session 值。设置验证码有效期如60秒超时失效。验证码复杂度要防止 OCR 识别扭曲、干扰线、粘合等。结合频率限制单 IP 连续失败时强制验证码且加大难度。5.4 关卡三验证码绕过on client这一关标题说明问题在客户端。打开页面你会发现输入框下方并没有验证码图片但是查看网页源代码可能会看到一段 JavaScript 生成验证码或者干脆把验证码写在隐藏域里。更常见的情况是前端生成验证码但后端没做校验。【攻击思路】直接发送不带验证码或任意验证码的请求完全绕过。或者分析前端 JS提取生成规律。演示随意填写用户名密码验证码框要敲正确区分大小写。抓包Send to Intruder直接去掉验证码参数或者保持固定值只爆破用户名和密码。因为后端根本没有检查验证码所以暴力破解畅通无阻。如果是 JS 生成验证码但需要匹配可以分析 JS 代码找到生成算法用 Python 模拟生成正确验证码实现自动化爆破。不过 Pikachu 这里简化了后端并不校验 captcha 字段所以随意即可。防御方案必须在服务端生成和校验验证码客户端仅展示。不要在客户端以明文、隐藏域、可预测算法传递验证码答案。验证码图片的生成逻辑放在后端不暴露算法。5.5 关卡四Token防爆破这一关名称带个问号意思就是“加了 Token 就一定防得住吗” 这是个经典案例系统为每个登录表单生成一个一次性 Token随页面一起下发提交时 Token 必须匹配。如果 Token 机制实现有误依然可被爆破。Pikachu 的做法登录页面生成一个隐藏的token值提交时带上。后端校验 token 的有效性一旦使用过一次即失效。但是这个 token 是写在页面中的攻击者只需要在每次爆破请求前先获取一个页面提取新的 token然后带着它去登录。这样就能绕过后端的一次性限制。攻击演示抓取一次登录请求Send to IntruderPositions 标记密码为变量用户名设置为固定admin或者先设置用户名为变量密码为固定值先探测出用户名然后再破解密码token 值标记为变量。攻击类型选择 Pitchfork叉子payload区域设置设置token集之前需要做些准备接下来配置token集Pikachu 这一关特意告诉我们仅仅加 Token 是不够的必须保证攻击者无法轻易拿到有效的 Token。例如可以绑定 IP 频率、结合验证码、或使用难以预测的 CSRF Token 并确保同源检查。防御方案Token 必须随机、不可预测、绑定 Session。配合验证码使用打断自动化获取 Token 的流程。限制每个 Token 的请求次数。加入浏览器指纹、行为分析等高级手段。六、暴力破解模块总结与防御清单通过以上四个关卡我们总结出以下攻击与防御对照表漏洞场景攻击方法防御措施无任何防护的表单Burp Intruder 直接爆破增加验证码、登录限制、账户锁定服务端验证码不销毁固定验证码多次爆破验证后立即销毁、设置有效期客户端验证无后端校验删除验证码参数或任意值关键校验必须放在服务端Token 防爆破但可重复获取每轮请求前获取新 TokenToken 绑定用户/IP、频率限制、验证码暴力破解作为最“笨”的攻击方式恰恰也是最容易被忽视的威胁。统计显示弱密码、默认密码依然是数据泄露的头号原因之一。理解它的利用方式和防御思路是安全从业者的基本功。七、总结我们从 Pikachu 的起源讲起回顾了 Web 基本通信原理详细演示了 PHPStudy 集成环境的搭建过程。重点剖析了暴力破解模块的四个经典场景无防护表单爆破、服务端验证码复用绕过、客户端验证绕过以及 Token 机制下的自动化破解。每道关卡都是真实世界漏洞的缩影。请务必亲手操作打开 Burp抓包分析用字典跑一遍。只有亲手爆出密码的那一刻你才会真正理解“攻击者视角”。重要声明本教程及文中所有操作仅限于合法授权的安全学习与研究。作者及发布平台不承担因不当使用本教程所引发的任何直接或间接法律责任。请务必遵守中华人民共和国网络安全相关法律法规。如果这篇文章帮你解决了实操上的困惑别忘记点击点赞、分享也可以留言告诉我你遇到的其它问题我会尽快回复。你的关注是我坚持原创和细节共享的力量来源谢谢大家。
Pikachu靶场从入门到精通(一):开篇与暴力破解模块详解
发布时间:2026/6/26 16:19:49
摘要本系列文章专为零基础小白打造从环境搭建到漏洞利用带你全面吃透 Pikachu 靶场。作为开篇本文先讲述 Pikachu 的“前世今生”及 Web 安全基础随后手把手教你在 Windows 上搭建 PHPStudy Pikachu 集成环境。核心部分聚焦第一个模块——暴力破解从表单爆破、验证码绕过、Token 防爆破三个关卡讲解攻击原理、Burp Suite 操作以及防御思路。一、从一只“电老鼠”说起Pikachu的前世今生如果你刚接触网络安全可能会被各种“靶场”名字搞晕——DVWA、Sqli-labs、Upload-labs、WebGoat……而Pikachu绝对是其中画风最萌、但对新手最友好的一个。它的名字来自《精灵宝可梦》里的皮卡丘logo是一只黄色电气鼠看起来人畜无害实则藏着满满的漏洞等你来“电”。Pikachu 靶场由中国安全研究员aflz博客园ID开发最早于2018年左右在 GitHub 开源。作者初衷很简单市面上的渗透测试靶场要么环境难配要么漏洞类型单一要么需要一定基础才能玩转而他想做一个真正适合零基础小白的综合性漏洞练习平台。于是Pikachu 诞生了——全部采用 PHP MySQL 编写单文件部署一个文件夹丢进 Web 目录就能跑不用 Docker、不用虚拟机甚至不用命令行对 Windows 用户极其友好。截至2026年Pikachu 在 GitHub 上已获得超过 4k Star被无数安全培训课程、高校实验室和个人博客引用。它包含了超过20种常见 Web 漏洞类型比如暴力破解、XSS、SQL注入、文件上传、CSRF、SSRF、命令注入等每个漏洞又按难度分成多个子关卡而且配套了详细的源码注释和防御建议。可以说Pikachu 就是 Web 安全入门的“教材级”靶场。接下来我们就从最基础的环境搭建开始一步步走进 Pikachu 的世界。第一篇先搞定暴力破解模块——别小看它很多生产环境的账号体系就是被这种“笨办法”打穿的。二、Web安全速成班你需要先懂的几个概念在动手之前我们先花几分钟补一下最基础的 Web 知识。如果你已经了解 HTTP 协议、请求/响应和 Cookie可以直接跳到环境搭建部分。2.1 当你打开一个网页发生了什么你在浏览器输入http://example.com/login.php按下回车浏览器将域名解析成 IP 地址DNS 查询。浏览器向服务器 IP 的 80 端口发起TCP 连接。连接建立后浏览器发送一个HTTP 请求内容大致像这样GET /login.php HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 ... Accept: text/html服务器收到请求找到login.php执行 PHP 代码生成 HTML 页面然后返回一个HTTP 响应HTTP/1.1 200 OK Content-Type: text/html Content-Length: 1234 html body登录页面.../body /html浏览器解析 HTML渲染页面如果有图片、CSS、JS 还会发起额外请求。浏览器与服务器断开或保持连接HTTP/1.1 默认持久连接。整个过程中数据在网络上“明文”传输除非启用 HTTPS。攻击者如果能够截获这些数据包就能看到你输入的用户名和密码——这就是著名的“中间人攻击”思路之一。2.2 核心三要素请求、响应、Cookie请求由四部分构成请求行POST /login.php HTTP/1.1请求头HeadersHost、User-Agent、Cookie 等空行分隔符请求体BodyGET 方法通常没有 BodyPOST 方法会把表单数据放在这里例如usernameadminpassword123456响应也分四部分状态行HTTP/1.1 200 OK或302 Found等响应头Set-Cookie: PHPSESSIDabc123;、Location: http://...等空行响应体HTML 代码Cookie是服务器让浏览器保存的小段数据用来维持会话状态。比如登录成功后服务器生成一个 Session ID通过Set-Cookie返回给浏览器浏览器下次请求会自动带上这个 Cookie服务器就能认出你。暴力破解中很多防御手段就是围绕 Cookie 和 Session 做文章。2.3 漏洞分类万花筒Web 漏洞可以按攻击发生的位置分为客户端漏洞和服务端漏洞服务端漏洞SQL注入、命令注入、文件上传、文件包含、反序列化等危害直接涉及服务器甚至内网。客户端漏洞XSS跨站脚本、CSRF跨站请求伪造、点击劫持等主要危害用户浏览器。按利用方式又可分成逻辑漏洞暴力破解、越权、支付篡改、验证码缺陷等不靠代码注入而是利用业务逻辑缺陷。Pikachu 把这些经典漏洞几乎一网打尽。今天我们聊的暴力破解就属于逻辑漏洞。三、手摸手搭建Pikachu靶场3.1 准备工具PHPStudy小皮面板集成了 Apache/Nginx MySQL PHP 的一键环境对 Windows 极其友好。下载地址小皮面板(phpstudy) - 让天下没有难配的服务器环境Pikachu 源码GitHub 仓库 GitHub - zhuifengshaonianhanlu/pikachu: 一个好玩的Web安全-漏洞测试平台 · GitHub 可以直接Code - Download ZIP。Burp Suite社区版即可用于抓包和暴力破解官网 Download Burp Suite Community Edition - PortSwigger3.2 安装 PHPStudy下载 PHPStudy V8.1或其他新版双击安装选一个空间充足的目录如E:\phpstudy_pro。安装完成后打开启动Apache和MySQL。如果端口被占用可以修改 Apache 端口为 8080 等这里我们假设用默认 80 端口。3.3 部署 Pikachu将下载的pikachu-master.zip解压得到文件夹pikachu-master把它重命名为pikachu。打开 PHPStudy点击“网站” - “管理” - “打开根目录”会打开类似 E:\phpstudy_pro\WWW的文件夹。把整个pikachu文件夹复制进去。找到 Pikachu 的数据库配置文件E:\phpstudy_pro\WWW\pikachu\inc\config.inc.php修改数据库密码配置现在访问http://localhost/pikachu/install.php看到 Pikachu 的初始化界面点击安装/初始化脚本会自动创建数据库并导入数据。看到“安装成功”提示就可以开始闯关了。四、初探Pikachu目录结构和使用方法进入http://localhost/pikachu/首页左侧是漏洞分类菜单包括暴力破解Cross-Site Scripting (XSS)SQL Inject (SQL注入)文件上传文件包含不安全的文件下载越权CSRFSSRF命令注入反序列化XXE敏感信息泄露等等每类下又有小关卡比如暴力破解下面有“基于表单的暴力破解”、“验证码绕过on server”、“验证码绕过on client”、“token 防爆破”等。点击即可进入练习。推荐使用Chrome 浏览器 Burp Suite组合。Burp 社区版虽然功能有限但 Intruder爆破器足够我们使用。配置代理Burp 默认代理127.0.0.1:8080Chrome 安装 Oasis Proxy 插件或直接 Win 系统代理设置。在 Burp 中把 Intercept 置为Intercept is on即可抓包。五、暴力破解只会试密码吗没那么简单5.1 什么是暴力破解暴力破解Brute Force简单说就是不断尝试所有可能的用户名/密码组合直到试出正确的。如果没有任何防御攻击者写个脚本自动跑几分钟就能破掉弱密码。现实中很多系统加了图形验证码、登录频率限制、Token 等机制但实现不当仍会被绕过。Pikachu 的暴力破解模块设计了四个关卡基于表单的暴力破解无防御验证码绕过服务端问题验证码绕过客户端问题Token 防爆破下面我们逐一拆解。5.2 关卡一基于表单的暴力破解功能描述一个简陋的登录框输入用户名密码成功显示“欢迎”失败提示“用户名或密码错误”。【攻击思路】没有任何验证码或频率限制只需准备一份用户名字典和密码字典用工具不断 POST 请求即可。Burp Suite 的 Intruder 模块天生就是干这个的。实战步骤打开 Burp确认拦截开启Intercept is on。在 Pikachu 暴力破解页面输入任意用户名例如admin和密码123456点击登录。Burp 捕获到 POST 请求类似在 Burp 中右键请求 -Send to Intruder。切换到 Intruder 模块Positions 标签。首先点击Clear §然后选中admin用户名值点击Add §再选中123456密码值点击Add §。最后攻击类型选择Cluster bomb集束炸弹意思是用户名和密码各自遍历字典所有组合都试。切换到 Payloads 标签Payload set 1 用户名加载用户名字典可用提供的但是有九千条左右的数据可简单输入admin, root, test, userpikachu每行一个。Payload set 2 密码加载常用密码字典比如123456, password, admin, 888888, pikachu000000aaabbbabcabc123123abc123123abc等。可自己创建 txt。点击右上角Start attack会弹出新窗口显示所有请求。观察每个请求的响应长度Length或状态码。如果某个响应的长度明显不同比如说其他的都显示用户或者密码不存在而登录成功是我们想要的那它的响应长度就明显比较短那可能就是登录成功的组合。找到正确密码后在响应中查看返回内容确认登录成功。防御方案增加图形验证码且后端必须校验。限制单 IP 单位时间内的登录尝试次数如 5 次错误锁定 15 分钟。密码复杂度强制要求增加爆破时间成本。使用双因素认证2FA。记录日志触发告警。5.3 关卡二验证码绕过on server这一关登录框多了一个验证码输入框旁边显示一张图片验证码。标题是“验证码绕过(on server)”暗示服务端有验证码校验但可能存在缺陷。【为什么叫“绕过”】常见绕过场景验证码不刷新每次登录请求都使用同一个验证码直到成功或手动刷新。攻击者可以手工输入一次验证码抓包后多次重放。验证码验证后未销毁验证通过一次后Session 中的验证码没清空导致同一个验证码可以反复用。验证码以文本形式返回在页面中。我们来试试。攻击演示打开页面看到验证码为abcd举例输入任意用户名密码和该验证码登录一次。Burp 拦截这个请求Send to Intruder。在 Positions 中只标记用户名和密码为变量§验证码值保持刚才输入的正确值不变。攻击类型选 Cluster bomb。配置 Payloads用户名和密码字典如前。发起攻击。观察结果如果很多请求返回的长度与登录失败一致但有几个长度不同说明同一个验证码被多次复用造成了绕过。进阶一点有些系统验证码靠 Session 校验但 Session 与验证码绑定如果你每次请求都带相同的 Cookie 和验证码后端可能因为验证码正确就放行而不检查使用次数。Pikachu 这一关就是模拟这种情况。防御方案每次验证码验证后无论成功与否立即销毁该验证码的 Session 值。设置验证码有效期如60秒超时失效。验证码复杂度要防止 OCR 识别扭曲、干扰线、粘合等。结合频率限制单 IP 连续失败时强制验证码且加大难度。5.4 关卡三验证码绕过on client这一关标题说明问题在客户端。打开页面你会发现输入框下方并没有验证码图片但是查看网页源代码可能会看到一段 JavaScript 生成验证码或者干脆把验证码写在隐藏域里。更常见的情况是前端生成验证码但后端没做校验。【攻击思路】直接发送不带验证码或任意验证码的请求完全绕过。或者分析前端 JS提取生成规律。演示随意填写用户名密码验证码框要敲正确区分大小写。抓包Send to Intruder直接去掉验证码参数或者保持固定值只爆破用户名和密码。因为后端根本没有检查验证码所以暴力破解畅通无阻。如果是 JS 生成验证码但需要匹配可以分析 JS 代码找到生成算法用 Python 模拟生成正确验证码实现自动化爆破。不过 Pikachu 这里简化了后端并不校验 captcha 字段所以随意即可。防御方案必须在服务端生成和校验验证码客户端仅展示。不要在客户端以明文、隐藏域、可预测算法传递验证码答案。验证码图片的生成逻辑放在后端不暴露算法。5.5 关卡四Token防爆破这一关名称带个问号意思就是“加了 Token 就一定防得住吗” 这是个经典案例系统为每个登录表单生成一个一次性 Token随页面一起下发提交时 Token 必须匹配。如果 Token 机制实现有误依然可被爆破。Pikachu 的做法登录页面生成一个隐藏的token值提交时带上。后端校验 token 的有效性一旦使用过一次即失效。但是这个 token 是写在页面中的攻击者只需要在每次爆破请求前先获取一个页面提取新的 token然后带着它去登录。这样就能绕过后端的一次性限制。攻击演示抓取一次登录请求Send to IntruderPositions 标记密码为变量用户名设置为固定admin或者先设置用户名为变量密码为固定值先探测出用户名然后再破解密码token 值标记为变量。攻击类型选择 Pitchfork叉子payload区域设置设置token集之前需要做些准备接下来配置token集Pikachu 这一关特意告诉我们仅仅加 Token 是不够的必须保证攻击者无法轻易拿到有效的 Token。例如可以绑定 IP 频率、结合验证码、或使用难以预测的 CSRF Token 并确保同源检查。防御方案Token 必须随机、不可预测、绑定 Session。配合验证码使用打断自动化获取 Token 的流程。限制每个 Token 的请求次数。加入浏览器指纹、行为分析等高级手段。六、暴力破解模块总结与防御清单通过以上四个关卡我们总结出以下攻击与防御对照表漏洞场景攻击方法防御措施无任何防护的表单Burp Intruder 直接爆破增加验证码、登录限制、账户锁定服务端验证码不销毁固定验证码多次爆破验证后立即销毁、设置有效期客户端验证无后端校验删除验证码参数或任意值关键校验必须放在服务端Token 防爆破但可重复获取每轮请求前获取新 TokenToken 绑定用户/IP、频率限制、验证码暴力破解作为最“笨”的攻击方式恰恰也是最容易被忽视的威胁。统计显示弱密码、默认密码依然是数据泄露的头号原因之一。理解它的利用方式和防御思路是安全从业者的基本功。七、总结我们从 Pikachu 的起源讲起回顾了 Web 基本通信原理详细演示了 PHPStudy 集成环境的搭建过程。重点剖析了暴力破解模块的四个经典场景无防护表单爆破、服务端验证码复用绕过、客户端验证绕过以及 Token 机制下的自动化破解。每道关卡都是真实世界漏洞的缩影。请务必亲手操作打开 Burp抓包分析用字典跑一遍。只有亲手爆出密码的那一刻你才会真正理解“攻击者视角”。重要声明本教程及文中所有操作仅限于合法授权的安全学习与研究。作者及发布平台不承担因不当使用本教程所引发的任何直接或间接法律责任。请务必遵守中华人民共和国网络安全相关法律法规。如果这篇文章帮你解决了实操上的困惑别忘记点击点赞、分享也可以留言告诉我你遇到的其它问题我会尽快回复。你的关注是我坚持原创和细节共享的力量来源谢谢大家。