記錄一次烏雲漏洞褲搭建過程

記錄一次烏雲漏洞褲搭建過程,分享給須要用到的朋友。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

相關文章
相關標籤/搜索