Pikachu 靶场搭建实录:从 GitHub 连接失败到成功初始化
本文记录了在 Windows 环境下使用 phpStudy 搭建 Pikachu 靶场的完整过程。从站点重复创建、数据库用户报错,到 HTTPS 协议错误,逐一记录每个坑的成因与解决方案。适合零基础 Web 安全入门者参考。
一、为什么选择 Pikachu
Pikachu 是一个带有漏洞的 Web 应用系统,包含 SQL 注入、XSS、CSRF、暴力破解等常见 Web 安全漏洞。与 DVWA 相比,它的中文界面和详细的漏洞提示对新手更友好。我在正式开始练习之前,需要先在自己的电脑上把这个环境搭起来。以下是我实际搭建过程中遇到的所有问题。
二、环境准备
· 操作系统:Windows 10/11
· 集成环境:小皮面板
· 靶场源码:Pikachu 源码包
三、搭建过程与踩坑记录
3.1 坑一:网站根目录指向错误
下载源码解压后,我发现目录结构是 pikachu-master/pikachu-master/,里面才是真正的源码文件。如果直接把整个 pikachu-master 文件夹拖进 WWW 目录,网站根目录会多出一层,导致访问路径混乱。
正确做法:打开 pikachu-master/pikachu-master/ 这一层,全选所有文件(包括 index.php、inc、assets 等),复制到 D:\phpstudy_pro\WWW\pikachu\ 目录下。最终的访问路径是 http://localhost/pikachu/ 。
3.2 坑二:站点已存在
在 phpStudy 里点击“创建网站”,填域名 localhost,结果弹窗提示:
站点已存在,请修改后重试
原因是 phpStudy 8.x 默认已经创建了一个 localhost 站点。不需要新建,直接去“网站”列表找到原有的 localhost 站点,点击“管理” → “修改”,把根目录改成 D:/phpstudy_pro/WWW/pikachu 即可。
3.3 坑三:数据库用户不能是 root
创建数据库时,我按照习惯把用户名填成 root,phpStudy 直接报错:
用户名不能是root,已取消创建数据库
这是面板的安全策略:root 是 MySQL 超级管理员,不允许作为普通数据库用户创建。
正确做法:数据库名填 pikachu,用户名也填 pikachu,密码自定义(比如 123456)。
3.4 坑四:PHP 文件用什么打开
Pikachu 的数据库配置在 inc/config.inc.php。双击该文件时,Windows 弹出“选择一个应用以打开此 .php 文件”。这是一个非常典型的 Windows 新手问题——系统默认不认识 .php 后缀。
正确做法:在弹窗中选择“记事本”,勾选“始终”使用此应用打开。然后修改第 6 行和第 7 行:
php
define('DBUSER', 'pikachu'); // 改为你创建的数据库用户名
define('DBPW', '123456'); // 改为你设置的密码
注意只修改单引号内的内容,其余源码不要动。
3.5 坑五:HTTPS 拒绝连接
配置完成后,我在浏览器输入 https://localhost/install.php ,页面再次报错:
localhost 拒绝连接
ERR_CONNECTION_REFUSED
问题出在 https 的 s 上。phpStudy 默认只开启了 HTTP,没有配置 SSL 证书,所以 HTTPS 请求会直接失败。
正确做法:把地址改为 http://localhost/install.php 。
四、初始化与验证
访问 http://localhost/install.php ,点击“安装/初始化”按钮。页面显示:
数据库连接成功!
新建数据库:pikachu成功!
创建数据库数据成功!
好了,可以开搞了~
说明搭建成功。默认登录账号为 admin,密码为 123456。
五、日常使用须知
· 每次练习前:先启动 phpStudy 中的 Apache 和 MySQL,然后访问 http://localhost/ 。
· 环境搞坏了:直接访问 http://localhost/install.php ,重新点击“安装/初始化”即可一键重置数据库。
· 安全提醒:Pikachu 是故意留有漏洞的靶场,绝对不要部署到公网服务器,只在本机 localhost 环境练习。
六、总结
整个搭建过程涉及五个主要报错:网站根目录层级错误、站点重复创建、数据库用户名限制、PHP 文件打开方式、HTTPS 协议错误。这些问题对于老手来说可能不值一提,但对于零基础的新人,每一个都可能卡住很长时间。
搭建环境的过程本身就是一次很好的安全入门训练。理解每个报错背后的原因,就是一次新的学习。
浙公网安备 33010602011771号