您的位置:首页 > 编程语言 > Python开发

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

2016-09-28 00:00 615 查看
摘要: 记录一次乌云漏洞裤搭建过程,分享给需要用到的朋友。

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

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息