写在前面
- “如果你想搞懂一个漏洞,比较好的方法是:你可以自己先制造出这个漏洞(用代码编写),然后再利用它,最后再修复它”。
- Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。
Pikachu上的漏洞类型列表如下:
- Burt Force(暴力破解漏洞)
- XSS(跨站脚本漏洞)
- CSRF(跨站请求伪造)
- SQL-Inject(SQL注入漏洞)
- RCE(远程命令/代码执行)
- Files Inclusion(文件包含漏洞)
- Unsafe file downloads(不安全的文件下载)
- Unsafe file uploads(不安全的文件上传)
- Over Permisson(越权漏洞)
- ../../../(目录遍历)
- I can see your ABC(敏感信息泄露)
- PHP反序列化漏洞
- XXE(XML External Entity attack)
- 不安全的URL重定向
- SSRF(Server-Side Request Forgery)
- 管理工具
- More...(找找看?..有彩蛋!)
管理工具里面提供了一个简易的xss管理后台,供你测试钓鱼和捞cookie,还可以搞键盘记录!~
后续会持续更新一些新的漏洞进来,也欢迎你提交漏洞案例给我,最新版本请关注pikachu
每类漏洞根据不同的情况又分别设计了不同的子类
同时,为了让这些漏洞变的有意思一些,在Pikachu平台上为每个漏洞都设计了一些小的场景,点击漏洞页面右上角的"提示"可以查看到帮助信息。
使用Dockers 搭建靶场
- 安装docker
- 因为我使用的是kali 这里就直接安装了
apt-get install docker.io
- 搜索 pikachu 的镜像容器
┌──(root㉿kali)-[/home/kali]
└─# docker search pikachu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
area39/pikachu https://github.com/zhuifengshaonianhanlu/pik… 13
vulfocus/pikachu 1
monstertsl/pikachu Pikachu是一个带有漏洞的Web应用靶场镜像 1
unnotechpromotion/pikachu 0
howhacker/pikachu pikachu靶场 0
foolderek/pikachu pikachu 0
hominsu/pikachu Pikachu pre-built docker environments, suppo… 0
sibei/pikachu 0
unnotechums/pikachu 0
xenny/pikachu 0
cuer/pikachu Pikachu是一个带有漏洞的Web应用系统,在这里包… 0
vulshare/pikachu 0
hirune924/pikachu https://github.com/hirune924/pikachu/blob/ma… 0
johncada27/pikachu 0
cyruswireless/pikachu 0
tanyiqu/pikachu 0
alexanso/pikachu 0
alexchnggt/pikachu 0
newbee740/pikachu 0
745184472/pikachu https://github.com/zhuifengshaonianhanlu/pik… 0
bihuoedu/pikachu 0
startian/pikachu 0
garydmcdowell/pikachu 0
fighthawk/pikachu 0
intemd/pikachu 0
- 下载 指定的 镜像 并在后台启动
docker run -itd -p 虚拟机的端口:容器端口 --name=自定义镜像名 镜像名
docker run -itd -p 8080:80 --name=pikachu area39/pikachu
- 查看下载好的镜像
┌──(root㉿kali)-[/home/kali]
└─# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f15f158638e area39/pikachu "/run.sh" 2 months ago Up 2 months 3306/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp pikachu
- 关闭镜像
docker stop 镜像ID
sudo docker stop 镜像ID
- 开启镜像
docker start 镜像ID
sudo docker start 镜像ID
- 进入容器内部
sudo docker exec -it 9156c /bin/bash
使用phpstudy
- 不使用 docker 容器 也是可以的
- 首先需要下载靶场的源码和phpstudy 一般是需要PHP 和 mysql 的 环境 如果不使用phpstudy 使用其他的环境也是可以的比如Xampp WAMP 等
github pikachu靶场 - 如果进不去可以去国内的站点去找 这里我选了一个
gitee pikachu靶场 - 我这里使用的是 phpstudy 做例子 其他的和这个差不多 可以自行探索
- 找到 phpstudy 的 文件目录
- 将靶场的源码解压至 phpstudy 的 www 目录后启动 apache 以及 mysql
- 打开浏览器访问 http://localhost/pikachu/
- 我这里的启动端口是 80 所以可以直接访问 如果你的启动端口不是 80 那么就需要加上端口号
- 这样就可以看到 首页了
- 可以看到主页的上方有一行小字
- 提示:欢迎使用,pikachu还没有初始化,点击进行初始化安装!
- 我们打开 D:\phpstudy_pro\WWW\pikachu\inc\config.inc.php
<?php
//全局session_start
session_start();
//全局居设置时区
date_default_timezone_set('Asia/Shanghai');
//全局设置默认字符
header('Content-type:text/html;charset=utf-8');
//定义数据库连接参数
define('DBHOST', '127.0.0.1');//将localhost或者127.0.0.1修改为数据库服务器的地址
define('DBUSER', 'root');//将root修改为连接mysql的用户名
define('DBPW', 'root');//将root修改为连接mysql的密码,如果改了还是连接不上,请先手动连接下你的数据库,确保数据库服务没问题在说!
define('DBNAME', 'pikachu');//自定义,建议不修改
define('DBPORT', '3306');//将3306修改为mysql的连接端口,默认tcp3306
?>
- 按照注释 将你的数据库用户名和密码 填入对应的位置
- 修改完成之后 重启 apachce 服务器 点击 首页上方的那一行小字
- 点击安装/初始化 按钮
- 看到提示就代表完成了 靶场就可以使用了
- Docker 也是一样的配置步骤 只不过不同的是 dockers 不需要配置 直接点击 安装/初始化 就可以了