Pikachu-国产轻量化 Web 漏洞靶场

Pikachu 是一款国产轻量化 Web 漏洞靶场,由国内安全从业者开发,专为 Web 安全初学者设计,尤其适合入门学习 SQL 注入、XSS、CSRF 等常见漏洞。它的特点是界面简洁、场景贴近实战,且每个漏洞模块都附带原理说明和测试步骤,非常适合边学边练。

一、Pikachu 的核心特点

  1. 漏洞覆盖全面:包含 SQL 注入、XSS(反射型/存储型/ DOM 型)、CSRF、文件上传漏洞、命令注入、密码破解、敏感信息泄露等 20+ 常见 Web 漏洞场景。
  2. 新手友好:每个漏洞页面都有"漏洞原理""测试步骤""修复建议",配合直观的操作界面,降低入门门槛。
  3. 部署简单:支持 Docker 一键部署、PHP 环境直接搭建,无需复杂配置,几分钟即可启动。
  4. 开源免费:代码完全开源,可本地部署后查看源码,理解漏洞产生的底层原因(如 SQL 注入的字符串拼接、XSS 的未过滤输出等)。

二、核心漏洞模块详解

1. SQL 注入(重点模块)

Pikachu 的 SQL 注入模块细分场景丰富,覆盖了入门到进阶的核心类型:

  • 数字型注入 :参数为数字(如 id=1),后端 SQL 语句直接拼接(例:select * from users where id=1),可通过 1 or 1=1 等 payload 测试。
  • 字符型注入 :参数为字符串(如 name='pikachu'),需用单引号闭合(例:' or 1=1 -- )。
  • 搜索型注入 :模拟搜索框场景(如 select * from articles where title like '%关键词%'),注入时需闭合 % 和引号(例:%' or 1=1 -- )。
  • 盲注(布尔型/时间型) :无直接数据回显,需通过页面是否显示内容(布尔盲注)或响应时间(时间盲注,如 sleep(5))判断注入结果。
  • 堆查询注入 :支持同时执行多条 SQL 语句(如 1; drop table users -- ),测试数据库权限。

学习价值:通过不同场景的对比,理解"参数类型""闭合方式""回显情况"对注入思路的影响,掌握手动构造 payload 的核心逻辑。

2. XSS(跨站脚本攻击)

XSS 模块分为 3 种核心类型,直观展示不同场景的利用差异:

  • 反射型 XSS :恶意脚本通过 URL 参数传入(如 ?name=<script>alert(1)</script>),仅在当前请求中生效,无持久化存储。
  • 存储型 XSS:恶意脚本被存入数据库(如留言板、评论区),所有访问该页面的用户都会触发,危害更大。
  • DOM 型 XSS :漏洞存在于前端 JavaScript 代码中(如通过 document.write 直接输出 URL 参数),无需与后端交互,仅在客户端解析时触发。

测试技巧 :输入 <script>alert(document.domain)</script> 等基础 payload,观察是否弹出对话框;进阶可尝试窃取 Cookie(document.cookie)、构造钓鱼页面等。

3. CSRF(跨站请求伪造)

模拟"利用用户已登录状态,诱导用户点击恶意链接,执行非预期操作"的场景,如:

  • 伪造转账、修改密码的请求链接,当用户登录目标网站后点击,会在不知情的情况下执行操作。
  • 页面提供"正常操作"和"CSRF 测试"按钮,对比两者的请求差异(如是否验证 Referer、是否需要 Token),理解防御原理。
4. 文件上传漏洞

模拟文件上传功能的常见漏洞,如:

  • 仅前端 JS 验证文件类型(可绕过,直接修改文件后缀为 .php 上传)。
  • 后端仅验证文件后缀(可通过 webshell.php.jpg 等畸形文件名绕过)。
  • 未限制文件内容(可直接上传 webshell.php 并执行)。

学习重点:理解"前端验证不可靠""后端验证需结合文件类型、内容、路径"的防御原则。

三、部署与使用步骤

1. 快速部署(Docker 方式,推荐)
bash 复制代码
# 拉取镜像
docker pull area39/pikachu:latest
# 启动容器(映射本地 8000 端口到容器 80 端口)
docker run -d -p 8000:80 area39/pikachu:latest

打开浏览器访问 http://localhost:8000,点击"初始化"完成数据库配置,即可开始使用。

2. 基本使用流程
  • 首页点击左侧漏洞分类(如"SQL 注入""XSS"),进入具体场景。
  • 每个场景页面包含"漏洞描述""测试步骤",按提示可先阅读原理,再动手测试。
  • 测试时结合 Burp Suite 抓包分析请求,或直接在输入框构造 payload,观察页面响应。

四、学习建议

  1. 结合源码学习 :部署后可查看 pikachu 目录下的 PHP 源码(如 vul/sqli/sqli_num.php 对应数字型注入),分析漏洞产生的代码原因(如 SQL 语句直接拼接参数 $id = $_GET['id']; $sql = "select * from users where id=$id";)。
  2. 对比防御方案 :部分场景提供"修复建议",可对比"漏洞代码"和"修复代码"(如 SQL 注入的修复用 PDO 预处理,XSS 的修复用 htmlspecialchars() 过滤)。
  3. 从手动到工具 :先用手动方式构造 payload(如 SQL 注入的 order by、XSS 的 <script>),理解原理后,再用工具(如 sqlmap、XSS 平台)提高效率。

Pikachu 作为入门靶场,能帮助新手快速建立对 Web 漏洞的认知,建议逐个模块练习,重点掌握"漏洞原理→利用方法→防御措施"的完整逻辑,为后续学习更复杂的漏洞打下基础。

相关推荐
Whoami!2 天前
6-3〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸通过宏文件实现反向shell
网络安全·信息安全·oscp·宏病毒
Whoami!3 天前
⸢ 拾-Ⅱ⸥⤳ 威胁感知与响应建设方案:威胁运营&威胁响应
网络安全·信息安全·soar·威胁响应
Whoami!5 天前
⸢ 拾-Ⅰ⸥⤳ 威胁感知与响应建设方案:感知覆盖&威胁识别
网络安全·信息安全·态势感知·威胁处置
xixixi777775 天前
信息安全和网络安全的区分在哪
网络·安全·web安全·信息安全
-曾牛9 天前
深入浅出 SQL 注入
网络·sql·安全·网络安全·渗透测试·sql注入·盲注
Whoami!10 天前
6-1〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸侦查客户端指纹
网络安全·信息安全·客户端侦查
Whoami!10 天前
6-2〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸利用WORD宏让客户端执行命令
网络安全·信息安全·oscp·宏文件攻击
Whoami!10 天前
⸢ 玖 ⸥⤳ 威胁感知与响应体系概念及建设思路
网络安全·信息安全·态势感知·威胁响应