pikachu漏洞测试平台搭建
Pikachu漏洞测试平台是洞测我去年在折腾Web安全入门时碰到的一个靶场。它不像DVWA那么老牌,试平也不像SQLi-Labs那样只盯着注入,台搭而是洞测把常见的Web漏洞按类型拆成了独立模块,每个模块都有对应的试平练习场景。说白了,台搭就是洞测一个让你合法“搞破坏”的地方。
搭建之前得先搞清楚它跑在什么环境上。试平官方推荐的台搭是PHP+MySQL,我最初图省事想用Windows直接跑,洞测结果卡在数据库连接那一步——Pikachu的试平配置文件里写死了localhost,而我的台搭MySQL端口改成了3307,折腾了半小时才反应过来。洞测后来换成Linux虚拟机,试平反而顺利得多。台搭
准备阶段:别急着下载
先确认你的机器上有PHP 5.6以上版本,MySQL 5.5以上。Apache或者Nginx都行,我习惯用Apache,因为.htaccess配置起来更顺手。如果你用phpStudy或者XAMPP这类集成环境,记得把PHP版本切到7.0左右——Pikachu有些代码在PHP 8下会报弃用警告,虽然不影响功能,但看着烦。
下载源码直接去GitHub搜“pikachu”,找那个星标最多的仓库。别从乱七八糟的网站下,我吃过亏,压缩包里夹了后门脚本。下载完解压到网站根目录,比如/var/www/html/pikachu。
配置数据库:最容易翻车的地方
打开inc/config.inc.php,你会看到几个define语句。把数据库用户名、密码、库名改成你自己的。这里有个细节:Pikachu不会自动建库,你得先手动创建一个,比如叫pikachu,字符集用utf8mb4。然后导入pikachu.sql文件。我试过用phpMyAdmin导入,结果因为文件里有注释和特殊符号,报了一堆语法错误。换成命令行mysql -u root -p pikachu < pikachu.sql,一次过。
还有,如果你的MySQL是8.0版本,默认认证插件是caching_sha2_password,PHP老版本连不上。要么改用户认证方式,要么在PHP里换mysqli扩展。我选了前者,执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';,然后flush privileges。
访问与初始化
浏览器打开http://你的IP/pikachu,应该能看到一个黄色皮卡丘的首页。如果显示数据库连接失败,别慌,回头检查config文件里的密码有没有特殊字符被转义。我第一次设的密码里有个@,结果PHP解析出问题,换成纯字母数字就好了。
首页有个“初始化安装”按钮,点一下会创建一些测试数据。但注意,这个操作会清空你之前导入的部分表,所以最好在导入sql之后就点,别等自己加了数据再点。
几个实际使用中的坑
Pikachu的暴力破解模块默认没有验证码,但如果你开了PHP的session严格模式,可能会因为session文件权限问题导致登录状态丢失。我遇到过一次,把/var/lib/php/sessions权限改成777才正常——当然生产环境别这么干。
另外,它的XSS模块有些弹窗被浏览器拦截了。Chrome对alert()在iframe里的执行有限制,换Firefox或者用BurpSuite的浏览器反而更顺。这不是平台的问题,是浏览器安全策略的锅。
最后说一句,Pikachu的代码写得不算优雅,有些地方过滤逻辑很粗糙,但这恰恰是它的价值——你能清楚看到漏洞是怎么产生的。搭建过程本身就是在复习LAMP环境的配置,一举两得。我后来把它放在内网一台旧笔记本上,跑了一年多,偶尔翻出来练练手,比看视频教程实在。
(责任编辑:焦点)














