pikachu靶场搭建

写在前面

  • “如果你想搞懂一个漏洞,比较好的方法是:你可以自己先制造出这个漏洞(用代码编写),然后再利用它,最后再修复它”。
  • 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 不需要配置 直接点击 安装/初始化 就可以了