
最近迷上了docker,其輕量化、易移植性深得我喜愛(ài)。然后就像在本地搭個(gè)docker版wooyun用于學(xué)習(xí)挖洞知識(shí),于是在網(wǎng)站找了一圈,只有VM版,docker hub找了下載下來(lái)卻發(fā)現(xiàn)并不是wooyun漏洞庫(kù),而是漏洞靶場(chǎng)。于是為了方便自己以后使用也補(bǔ)全網(wǎng)上缺少這種版本的空缺,著手開(kāi)搞!
環(huán)境搭建(centos7、apache、mariadb、php)
采用LNMP一鍵安裝包無(wú)人值守方式搭建
# 安裝lamp
wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz;\
tar zxf lnmp1.7.tar.gz && cd lnmp1.7;\
# lnmp腳本無(wú)人值守命令解釋?zhuān)篋BSelect="6"表示MariaDB 5.5、PHPSelect="5"表示PHP5.6、SelectMalloc="1"表示不安裝內(nèi)存分配器、ApacheSelect="1"表示Apache2.2,其他請(qǐng)查看https://lnmp.org/faq/v1-5-auto-install.html
LNMP_Auto="y" DBSelect="6" DB_Root_Password="${DB_Root_Password}" InstallInnodb="y" PHPSelect="5" SelectMalloc="1" ApacheSelect="1" ServerAdmin="" ./install.sh lamp;
這個(gè)地方踩了個(gè)大坑,當(dāng)lnmp無(wú)人值守腳本選擇DB為mysql(而不是mariadb)時(shí),會(huì)出現(xiàn)在安裝完成后不會(huì)自動(dòng)退出,會(huì)停留在completed! enjoy it。這樣會(huì)導(dǎo)致Dockerfile構(gòu)建失敗。后面換成mariadb才會(huì)自動(dòng)退出。
源碼(GitHub倉(cāng)庫(kù)地址:https://github.com/V7hinc/wooyun_final)
代碼主要來(lái)自于hanc00l的wooyun_public的wooyun_final
漏洞信息來(lái)自于m0l1ce的wooyun_all_bugs_8.8W,包含8.8W漏洞信息(不含知識(shí)庫(kù))
- 支持多關(guān)鍵字搜索和在漏洞詳情中搜索
- 漏洞詳情圖片支持相對(duì)路徑讀取本地圖片
- 代碼適應(yīng)PHP5.6
代碼主要從hanc00l的wooyun_final代碼做了以下改動(dòng)
1、更改bug_detail.php圖片路徑為相對(duì)路徑,可以正常讀取本地圖片,而不用去查在線圖片
<hr align="center"/<?php echo str_replace('http://static.loner.fm/','',$bug_detail['wybug_detail']);?>
2、增加picture目錄和圖標(biāo)
3、增加upload和部分圖片
源碼需在lamp環(huán)境下運(yùn)行,拉取源碼到網(wǎng)站根目錄,下載wooyun數(shù)據(jù)庫(kù)wooyun_bugs_db.tar.bz2 文件解壓到MySQL文件路徑下wooyun文件夾
Docker搭建wooyun
Dockerfile文件 傳送門(mén)
Dockerfile構(gòu)建方法
docker build -t v7hinc/wooyun github.com/V7hinc/wooyun_final
或者直接拉取已經(jīng)生成的docker鏡像
docker pull v7hinc/wooyun
創(chuàng)建新的容器
由于wooyun的圖片占容量較大,所以在Dockerfile中加了VOLUME掛載卷,不至于把容器撐的很大
2種掛載方法(這個(gè)地方容易有坑)
1、不指定宿主機(jī)掛載目錄
docker run --name wooyun -p 5000:80 -dit v7hinc/wooyun:latest /bin/bash
# 創(chuàng)建好容器后查看掛載位置,cd進(jìn)入查詢(xún)結(jié)果"Source"后面的路徑,就是對(duì)應(yīng)容器中upload的路徑
[root@localhost ~]# docker inspect wooyun | grep "Source"
"Source": "/var/lib/docker/volumes/21313d9e09fd3b571ae1daab856d07012f2081c940a9d839c121fa62f7f43764/_data",
2、指定宿主機(jī)掛載目錄
docker run --privileged=true --name wooyun -v ~/upload:/home/wwwroot/default/upload -p 5000:80 -dit v7hinc/wooyun:latest /bin/bash
到此wooyun漏洞庫(kù)已經(jīng)還原好了??梢酝ㄟ^(guò)訪問(wèn)http://IP:5000訪問(wèn)到了
但是會(huì)發(fā)現(xiàn)打開(kāi)漏洞詳情圖片看不了
接下來(lái)需要下載圖片資源,然后解壓到docker宿主機(jī)的~/upload目錄下就可以看到圖片了,如果是采用不指定宿主機(jī)掛載目錄則解壓到"Source"對(duì)應(yīng)的路徑即可
百度網(wǎng)盤(pán)下載鏈接: https://pan.baidu.com/s/1cadRdAC5Cxb1M_o5URNXSw 提取碼: tkqg
效果圖 Nice:


容器內(nèi)相關(guān)軟件安裝目錄
Apache目錄:/usr/local/apache/
MariaDB 目錄 : /usr/local/mariadb/
MariaDB數(shù)據(jù)庫(kù)所在目錄:/usr/local/mariadb/var/
PHP目錄 : /usr/local/php/
默認(rèn)網(wǎng)站目錄 : /home/wwwroot/default/
容器內(nèi)相關(guān)配置文件位置
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虛擬主機(jī)配置文件目錄:/usr/local/apache/conf/vhost/
Apache默認(rèn)虛擬主機(jī)配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
虛擬主機(jī)配置文件名稱(chēng):/usr/local/apache/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
其它
- 本程序只用于技術(shù)研究和個(gè)人使用,程序組件均為開(kāi)源程序,漏洞和知識(shí)庫(kù)來(lái)源于烏云公開(kāi)漏洞,版權(quán)歸wooyun.org。
項(xiàng)目倉(cāng)庫(kù)地址:https://github.com/V7hinc/wooyun_final