pikachu靶場搭建

ZapcoMan發表於2024-10-16

寫在前面

  • “如果你想搞懂一個漏洞,比較好的方法是:你可以自己先製造出這個漏洞(用程式碼編寫),然後再利用它,最後再修復它”。
  • 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 的 檔案目錄
    img
  • 將靶場的原始碼解壓至 phpstudy 的 www 目錄後啟動 apache 以及 mysql
  • 開啟瀏覽器訪問 http://localhost/pikachu/
  • 我這裡的啟動埠是 80 所以可以直接訪問 如果你的啟動埠不是 80 那麼就需要加上埠號
  • 這樣就可以看到 首頁了
    img
  • 可以看到主頁的上方有一行小字
  • 提示:歡迎使用,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 伺服器 點選 首頁上方的那一行小字
    img
  • 點選安裝/初始化 按鈕
    img
  • 看到提示就代表完成了 靶場就可以使用了
  • Docker 也是一樣的配置步驟 只不過不同的是 dockers 不需要配置 直接點選 安裝/初始化 就可以了