1. 为什么选择Kali Linux部署Pikachu靶场
如果你刚开始学习网络安全,一定会被各种专业术语和复杂环境搞得晕头转向。我当年也是这样,直到发现了Pikachu这个"神奇宝贝"——它把常见的Web漏洞都打包成了一个直观的靶场环境。而Kali Linux作为渗透测试的"瑞士军刀",自带300+安全工具,简直是绝配。
实测下来,这套组合有三大优势:
- 开箱即用:Kali预装了Apache、MySQL等必备服务
- 工具链完整:从信息收集到漏洞利用的工具一应俱全
- 学习曲线平缓:Pikachu的漏洞案例都有详细说明
最近帮学弟配置环境时,发现网上教程要么太老,要么缺关键步骤。下面我就把踩过的坑和优化方案都整理出来,保证你20分钟内就能玩转这个靶场。
2. 环境准备与基础配置
2.1 更新Kali系统
刚安装好的Kali就像没磨过的刀,得先开刃。打开终端执行:
sudo apt update && sudo apt upgrade -y sudo apt install -y git curl vim这里有个细节要注意:如果遇到"Unable to locate package"错误,可能是源有问题。我习惯用阿里云的镜像源,速度更快:
sudo sed -i 's|http.kali.org|mirrors.aliyun.com/kali|g' /etc/apt/sources.list2.2 安装LAMP环境
Pikachu需要PHP和MySQL支持,但Kali 2023默认没装全。用这个命令一键搞定:
sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql安装完成后,建议做个安全检查:
- 给MySQL设置root密码:
sudo mysql_secure_installation - 测试PHP解析:在
/var/www/html新建test.php,写入<?php phpinfo();?> - 浏览器访问
http://localhost/test.php应该能看到版本信息
3. 部署Pikachu靶场
3.1 下载与配置
直接从GitHub克隆最新版(国内用户可以用Gitee镜像):
cd /var/www/html sudo git clone https://github.com/zhuifengshaonianhanlu/pikachu.git sudo chown -R www-data:www-data pikachu关键点来了:很多教程没提权限问题。www-data是Apache的默认用户,不设置权限会导致页面报错。
3.2 数据库初始化
Pikachu需要先建数据库。我推荐用命令行操作:
sudo mysql -u root -p CREATE DATABASE pikachu; GRANT ALL PRIVILEGES ON pikachu.* TO 'pikachu'@'localhost' IDENTIFIED BY 'pikachu'; FLUSH PRIVILEGES;然后导入数据结构:
mysql -u pikachu -p pikachu < /var/www/html/pikachu/pikachu.sql4. 常见问题排查
4.1 页面显示异常
如果访问http://localhost/pikachu出现乱码或空白页,按这个顺序检查:
- Apache是否运行:
sudo systemctl status apache2 - PHP模块是否加载:
sudo a2enmod php7.4(根据版本调整) - 错误日志位置:
tail -f /var/log/apache2/error.log
4.2 数据库连接失败
配置文件在/var/www/html/pikachu/inc/config.inc.php,确保这些参数正确:
$dbuser = 'pikachu'; $dbpass = 'pikachu'; $dbname = 'pikachu';遇到过最坑的情况是MySQL 8.0的加密方式变更,解决方法:
sudo mysql -u root -p ALTER USER 'pikachu'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pikachu';5. 靶场功能体验指南
部署成功后,你会看到这些经典漏洞演示:
- SQL注入:包括数字型、字符型、搜索型等多种变体
- XSS攻击:存储型、反射型、DOM型完整案例
- CSRF:银行转账模拟场景
- 文件包含:本地包含与远程包含对比
每个漏洞都有"漏洞概述"、"漏洞利用"和"漏洞防御"三个模块。建议先用Burp Suite抓包观察请求,再结合源码理解原理。比如SQL注入部分,你可以看到错误回显是如何泄露数据库结构的。
6. 安全加固建议
虽然是本地环境,但好习惯要从小培养:
- 修改默认密码:别再用
pikachu/pikachu这样的弱口令 - 限制访问IP:编辑
/etc/apache2/sites-available/000-default.conf,添加:<Directory "/var/www/html/pikachu"> Require ip 192.168.1.0/24 </Directory> - 定期备份数据库:
mysqldump -u pikachu -p pikachu > pikachu_backup.sql
这套环境我用了三年,带过上百个学生。最大的心得是:不要只停留在点击"攻击"按钮,要深入理解每个漏洞背后的代码逻辑。比如尝试修改Pikachu的防御代码,比较不同防护方案的效果差异。