记录一次乌云漏洞裤搭建过程

爱⌒轻易说出口 提交于 2019-12-10 07:21:34

记录一次乌云漏洞裤搭建过程,分享给需要用到的朋友。

首先说明该漏洞库来源于乌云公开漏洞采集,由网友分享得此。网上也有一些网站已经提供了查询功能,那为啥还要自己在本地折腾搭建呢,大家都是明白人,就不说糊涂话,在互联网上你今天能看到的,未必明天还能看到。

1.对于本地搭建的用户完全可以将漏洞裤下载下来,然后进行抓取存入数据库,写个小脚本进行检索就可以了。在git上也有网友分享完整的虚拟机文件,可以直接下载下来接入使用。在服务器上下载,尤其是linux用户,在此记录下载过程。

chrome 安装 BaiduExporter 插件进行解析百度云盘资料地址。

拿到aria2c的下载地址后,直接用执行下载,没有aria2c的yum安装一下就行了。建议最好一次导出一个链接然后进行下载,下载完毕后,再重新获取链接下载,防止文件还没有下载完,cookie过期了。

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连接的响应时间在服务器更改下,防止还没解压完断掉了。

# 打开
vi /etc/ssh/sshd_config
# 添加
ClientAliveInterval 14400
ClientAliveCountMax 6

#ClientAliveInterval表示每隔多少秒,服务器端向客户端发送响应状态包。

2.解压出来的是个静态站点,一堆html,写个脚本将文件内容关键词和其名称插到数据库。

数据表简单写个

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!