記錄一次烏雲漏洞褲搭建過程,分享給須要用到的朋友。php
首先說明該漏洞庫來源於烏雲公開漏洞採集,由網友分享得此。網上也有一些網站已經提供了查詢功能,那爲啥還要本身在本地折騰搭建呢,你們都是明白人,就不說糊塗話,在互聯網上你今天能看到的,未必明天還能看到。html
1.對於本地搭建的用戶徹底能夠將漏洞褲下載下來,而後進行抓取存入數據庫,寫個小腳本進行檢索就能夠了。在git上也有網友分享完整的虛擬機文件,能夠直接下載下來接入使用。在服務器上下載,尤爲是linux用戶,在此記錄下載過程。python
chrome 安裝 BaiduExporter 插件進行解析百度雲盤資料地址。mysql
拿到aria2c的下載地址後,直接用執行下載,沒有aria2c的yum安裝一下就好了。建議最好一次導出一個連接而後進行下載,下載完畢後,再從新獲取連接下載,防止文件尚未下載完,cookie過時了。linux
aria2c -c -s10 -k1M -x10 -o "WEB安全/WooYun_Bugs(漏洞庫)/readme.md" --header "User-Agent: netdisk;5.3.4.5;PC;PC-Windows;5.1.2600;WindowsBaiduYunGuanJia" --header "Referer: http://pan.baidu.com/disk/home" --header "Cookie: pcsett=147*******-xxx" "https://d.pcs.baidu.com/file/xxx?fid=xxxxx-xxxx-xxxxxx&time=14xxxxxxx&rt=sh&sign=xxxx-xxxxx1203-xxxxxx&expires=8h&chkv=1&chkbd=0&chkpc=et&dp-logid=xxxxx&dp-callid=0&r=xxxxx"
這個文件解壓還挺費勁兒的,當時折騰了半天。將ssh鏈接的響應時間在服務器更改下,防止還沒解壓完斷掉了。git
# 打開 vi /etc/ssh/sshd_config # 添加 ClientAliveInterval 14400 ClientAliveCountMax 6 #ClientAliveInterval表示每隔多少秒,服務器端向客戶端發送響應狀態包。
2.解壓出來的是個靜態站點,一堆html,寫個腳本將文件內容關鍵詞和其名稱插到數據庫。sql
數據表簡單寫個chrome
DROP TABLE IF EXISTS `wy_bugs_key`; CREATE TABLE `wy_bugs_key` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '', `keywords` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '', `description` text COLLATE utf8_bin, `tag` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '', `bind_url` varchar(60) COLLATE utf8_bin NOT NULL DEFAULT '', `year` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
scanwooyun.py 數據庫
import string,os,sys,re import MySQLdb as mysql #coding:utf-8 def addslashes(s): l = ["\\", '"', "'", "\0", ] for i in l: if i in s: s = s.replace(i, '\\'+i) return s def getkey(name,cur,filename,db): fileobj = open(name,'r') file_text = fileobj.read() fileobj.close() title = re.findall(r'<title>(.+?)</title>',file_text) keywords = re.findall(r'<meta\s+name="keywords"\s+content="([^"]+)"',file_text) desc = re.findall(r'<meta\s+name="description"\s+content="([^"]+)"',file_text) ret = {'title':title[0],'keywords':keywords[0],'desc':desc[0]} sql = "insert into wy_bugs_key(`title`,`keywords`,`description`,`tag`,`bind_url`) values('"+addslashes(title[0])+"','"+addslashes(keywords[0])+"','"+addslashes(desc[0])+"','"+addslashes(keywords[0])+"','"+f+"')" cur.execute(sql) db.commit() return ret dir = '../bugs' print '------------ [start]' print 'author:ellermister@gmail.com' print 'scan wooyun./*' files = os.listdir(dir) conn = mysql.connect(host='127.0.0.1',port=3306,user='root',passwd='passwd',db='wooyun',charset='utf8') cur = conn.cursor() filescount = 0 for f in files: #print dir + os.sep + f if(os.path.isdir(dir+os.sep+f)): continue getkey(dir+os.sep+f,cur,f,conn) #print '------------------------------' filescount+=1 print 'files count:'+str(filescount) print 'complete,nothing to do.' conn.commit() cur.close()
3.接下來用php或者你想用的語言寫個搜索,對於這種數據量很少的東西,徹底不用優化,直接搜索就行。安全
SELECT * FROM wy_bugs_key WEHRE `title` like '%{keywords}%' OR `keywords` like '%{keywords}%' OR `description` like '%{keywords}%'
沒有什麼技術性的,分享下資源。
連接: https://pan.baidu.com/s/1bo0MX1l 密碼: 2fdc