别再踩坑了!用PHPStudy 8.1.1.3在Windows上搭建Pikachu靶场的保姆级全流程
·
网络安全新手避坑指南:PHPStudy 8.1.1.3与Pikachu靶场完美联姻
第一次搭建Pikachu靶场时,我花了整整两天时间解决各种报错——从中文路径导致的安装失败到数据库权限引发的初始化崩溃。这篇文章将用血泪经验帮你避开所有常见陷阱,让靶场环境在30分钟内跑起来。
1. 环境准备:从零开始的精准配置
1.1 软件下载的防坑要点
- PHPStudy选择 :务必使用8.1.1.3版本(其他版本可能出现Apache模块缺失问题)
- 源码获取 :推荐从GitHub官方仓库下载最新版Pikachu(2023年后的版本修复了SQL注入模块的兼容性问题)
注意:所有安装路径必须满足以下条件:
- 全英文路径(如
D:\pentest_env)- 无特殊字符(包括空格)
- 避免使用Program Files等系统目录
1.2 系统环境检查清单
| 检查项 | 合格标准 | 修复方案 |
|---|---|---|
| VC运行库 | 已安装2015-2022版本 | 运行 vc_redist.x64.exe |
| 端口占用 | 80/3306端口空闲 | netstat -ano 查杀占用进程 |
| 防火墙 | 添加Apache/MySQL例外 | 在Windows Defender中设置 |
# 快速检查端口占用(管理员权限运行)
netstat -ano | findstr ":80\|:3306"
2. 安装过程中的死亡陷阱
2.1 PHPStudy的隐蔽坑位
安装时最容易忽略的三个细节:
- 自定义安装路径 的按钮藏在右下角(默认会装到C盘)
- 首次启动时必须 右键以管理员身份运行
- 服务启动顺序必须是:MySQL → Apache
遇到服务启动失败时,先检查 phpstudy_pro\Extensions 目录是否存在中文乱码。
2.2 靶场源码的致命操作
- 解压后必须将文件夹重命名为
pikachu(大小写敏感) www目录权限需要手动设置:icacls "D:\phpstudy_pro\www" /grant "Everyone":(OI)(CI)F
配置文件修改的正确姿势:
- 用Notepad++打开
inc/config.inc.php - 修改第14-15行为:
$_config['db']['user'] = 'root'; $_config['db']['password'] = 'root'; - 保存时确保编码为UTF-8 without BOM
3. 初始化验证的终极测试
3.1 访问失败的六种可能
- 忘记访问
/install.php(直接访问根目录会报错) - PHP版本未切换为5.6.9(新版可能不兼容)
- 网站根目录指向错误(应选
pikachu子目录) - 数据库服务未运行(检查MySQL状态灯)
- 配置文件未保存(修改后重启服务)
- 浏览器缓存未清除(Ctrl+F5强制刷新)
3.2 初始化后的必要检查
- 访问
http://127.0.0.1/vul/sqli/sqli_str.php测试SQL注入模块 - 检查
/inc目录是否可写(影响XSS模块功能) - 验证文件包含漏洞测试是否正常:
http://127.0.0.1/vul/fileinclude/fi_local.php?filename=../../README.md&submit=提交
4. 高频崩溃场景自救指南
4.1 数据库连接异常
当出现"Access denied for user"错误时:
- 登录phpMyAdmin(http://localhost/phpmyadmin)
- 执行权限修复SQL:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'; FLUSH PRIVILEGES;
4.2 页面乱码解决方案
在网站设置中添加以下HTTP头:
AddDefaultCharset UTF-8
AddType text/html;charset=UTF-8 .html
4.3 模块不可用的隐藏修复
某些漏洞模块需要额外扩展支持:
- 文件上传漏洞:开启
php_curl扩展 - RCE漏洞:启用
allow_url_include - XXE漏洞:确认
libxml_disable_entity_loader为false
5. 靶场使用的专业姿势
5.1 自动化启动方案
创建批处理文件 start_pikachu.bat :
@echo off
cd /d "D:\phpstudy_pro\COM"
start Apache.exe
start MySQL.exe
timeout /t 10
start http://127.0.0.1/install.php
5.2 靶场数据重置技巧
当训练导致数据混乱时:
- 删除
pikachu目录下的install.lock - 重新访问
install.php - 选择"重置数据库"
5.3 多靶场共存配置
通过端口映射实现:
- 复制
pikachu文件夹为pikachu_8080 - 新建网站指向该目录,端口设为8080
- 修改
config.inc.php中的数据库前缀
有次我在演示SQL注入时,因为忘记重置数据库导致Payload失效,后来发现是靶场的防御机制自动过滤了特殊字符。这种实战中的意外反而让我更深入理解了WAF的工作原理。
更多推荐



所有评论(0)