寫在前面
- “如果你想搞懂一個漏洞,比較好的方法是:你可以自己先製造出這個漏洞(用程式碼編寫),然後再利用它,最後再修復它”。
- 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 不需要配置 直接點選 安裝/初始化 就可以了