新手避坑指南:用PHPStudy本地搭建Pikachu靶场练习SQL注入的完整流程
第一次接触网络安全实战时,最令人沮丧的往往不是漏洞原理本身,而是连练习环境都搭建不起来。作为国内最受欢迎的Web漏洞练习平台之一,Pikachu靶场却常因环境配置问题让新手望而却步。本文将手把手带你用PHPStudy在Windows系统完成Pikachu靶场部署,并解决90%新手会遇到的环境问题。
1. 环境准备与基础配置
1.1 PHPStudy版本选择与安装
PHPStudy作为集成环境工具,不同版本对Pikachu的兼容性差异显著。推荐使用**PHPStudy 2018(PHP 5.4.45 + Apache 2.4.23)**组合,这是经过大量测试最稳定的搭配。安装时需注意:
- 安装路径避免中文和空格(如
C:\phpstudy) - 安装完成后进入
其他选项菜单→PHPStudy设置→端口常规设置,确保:- Apache端口为80(若被占用可改为8080)
- MySQL端口为3306
# 验证Apache服务是否正常运行 netstat -ano | findstr :801.2 下载与解压Pikachu源码
从官方GitHub获取最新版Pikachu(截止2023年8月最新版本为v2.0):
- 访问 https://github.com/zhuifengshaonianhanlu/pikachu
- 下载ZIP包后解压至
PHPStudy安装目录\PHPTutorial\WWW\ - 重命名文件夹为
pikachu(避免路径含空格)
注意:若使用Git克隆,需确保已安装Git LFS(大文件支持),否则部分靶场文件可能下载不全。
2. 数据库配置关键步骤
2.1 初始化MySQL数据库
启动PHPStudy的MySQL服务后,按以下顺序操作:
- 登录phpMyAdmin(默认地址 http://localhost/phpmyadmin )
- 新建数据库
pikachu,排序规则选择utf8_general_ci - 导入SQL文件:选择
pikachu/pikachu.sql执行
常见错误解决方案:
| 错误现象 | 可能原因 | 解决方法 |
|---|---|---|
| "#1044 - Access denied" | 数据库用户权限不足 | 使用root账户或授权用户 |
| "#1064 - SQL syntax error" | SQL文件编码问题 | 用Notepad++转码为UTF-8无BOM格式 |
| 导入后表为空 | 文件路径含中文 | 移动SQL文件到英文路径 |
2.2 修改数据库连接配置
编辑pikachu/inc/config.inc.php文件:
// 修改以下参数 define('DBUSER', 'root'); // 数据库用户名 define('DBPWD', 'root'); // 数据库密码(PHPStudy默认) define('DBNAME', 'pikachu'); // 数据库名3. 靶场访问与调试
3.1 解决常见HTTP错误
完成上述步骤后访问 http://localhost/pikachu ,可能遇到:
404页面不存在
- 检查Apache的
httpd.conf中DocumentRoot是否指向WWW目录 - 确认
pikachu文件夹位于WWW根目录下
500内部服务器错误
- 查看
phpstudy\PHPTutorial\Apache\logs\error.log - 常见于PHP版本不兼容,切换至PHP 5.4.45
空白页面
- 在
config.inc.php开头添加error_reporting(E_ALL); - 检查PHP是否开启short_open_tag(需为On)
3.2 靶场功能验证
成功进入首页后,重点测试以下功能点:
- SQL注入模块:尝试数字型注入(
1 and 1=1) - XSS模块:提交
<script>alert(1)</script>测试弹窗 - CSRF模块:检查token机制是否生效
若任何模块异常,可尝试以下命令重置环境:
# Windows下清除Apache缓存 net stop Apache2.4 del /q C:\phpstudy\PHPTutorial\tmp\* net start Apache2.44. 进阶配置与优化
4.1 多PHP版本切换
PHPStudy支持同时安装多个PHP版本,通过其他选项菜单→PHP版本切换可测试不同环境:
| PHP版本 | Pikachu兼容性 | 备注 |
|---|---|---|
| 5.4.45 | ★★★★★ | 最佳兼容 |
| 7.0.12 | ★★★☆☆ | 部分功能异常 |
| 7.3.4 | ★★☆☆☆ | 仅基础功能可用 |
4.2 安全加固建议
虽然本地环境,但仍建议:
- 修改MySQL默认密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码'); - 限制phpMyAdmin访问IP: 编辑
phpmyadmin/libraries/config.default.php:$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow'; $cfg['Servers'][$i]['AllowDeny']['rules'] = array('allow from 127.0.0.1');
4.3 备份与迁移
定期备份以下内容:
- 数据库(通过phpMyAdmin导出)
pikachu整个目录- PHPStudy的
PHPTutorial\MySQL\data\pikachu文件夹
迁移到新机器时,需重新配置config.inc.php中的数据库连接信息。