资源分享

Python WEB框架下集成乌云漏洞查询

字号+ 作者:w8ay 来源:转载 2016-11-26 13:59 我要评论( )

做渗透的时候遇到一个系统可以到网上搜索下这个系统的相关漏洞,众所周知的原因,wooyun关闭了很久,所以我们最好自己搭建一个乌云镜像。 ......

前言:
做渗透的时候遇到一个系统可以到网上搜索下这个系统的相关漏洞,众所周知的原因,wooyun关闭了很久,所以我们最好自己搭建一个乌云镜像。
因为现在乌云打不开了,不好直接爬,我们可以爬那些已经搭建好的乌云镜像。
因为应用是搭建在SAE上的,为了节约money,所以采用mysql数据库,

0x01乌云爬虫
因为现在乌云打不开了,不好直接爬,我们可以爬那些已经搭建好的乌云镜像。
这个爬虫是好久之前写的,不仅爬取了每个页面,将所有的漏洞信息、厂商列表、评论都存储了








爬完乌云镜像,只有3w多点数据


爬虫是之前写的,好了好久也没有找到
爬虫写起来还是很容易,用beautifulsoup解析网页就都可以出来


这个爬虫不是我们的重点,我们只需要这个数据就行了
导出SQL就有接近200多M了
数据库下载地址:链接: http://pan.baidu.com/s/1hrKYy8W 密码: yrrr



0x02 pyhton flask代码编写

因为我们要用到MySQL数据库,所以我们先安装下MySqldb

[AppleScript] 纯文本查看 复制代码
?
1
pip MySqldb


因为我们使用的是PYTHON2.7,为了一些不必要的错误,我们先在段首写上
[AppleScript] 纯文本查看 复制代码
?
1
2
3
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

防止编码错误

我们需要展示两个界面,一个是搜索关键词得到的数据界面,一个是漏洞界面,通过MySql的like语句搜索标题中的关键字,然后通过id查询获取详细信息,详细看代码


[AppleScript] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#集成wooyun漏洞平台
@app.route('/wooyun',methods=["get","post"])
def wooyun():
    searchword = request.args.get('key', '').strip()
    log_id = request.args.get('id', '')
    data = {}
    table = list()
    if log_id:
        # 使用execute方法执行SQL语句
        cursor.execute(MySQLdb.escape_string("SELECT * from emlog_blog where gid=%s"%log_id))
        # 使用 fetchone() 方法获取一条数据库。
        results = cursor.fetchone()
        data["id"] = results[0]
        data["text"] = results[2]
        data["title"] = results[1]
    if searchword:
        sql = 'SELECT gid,title from emlog_blog where title like "%%%s%%"'%searchword
        cursor.execute(sql)
        #cursor.execute('SELECT * from emlog_blog limit 10')
        results = cursor.fetchall()
 
        for rows in results:
            tdata = {}
            tdata["id"] = rows[0]
            tdata["title"] = rows[1]
            table.append(tdata)
    return render_template("wooyun.html",title="乌云漏洞查询",data=data,table=table)



0x03 需要注意的转义问题
为了防止sql语句出现注入的现象,使用MySQLdb.escape_string函数进行转义

0x04 上线新浪SAE
新浪SAE自带mysqldb,所以不需要额外的打包上传,首先要创建Mysql:


导入数据库,



通过查询API


段首修改下


[AppleScript] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
8
#连接数据库操作
MYSQL_DB = sae.const.MYSQL_DB      # 数据库名
MYSQL_USER = sae.const.MYSQL_USER    # 用户名
MYSQL_PASS = sae.const.MYSQL_PASS    # 密码
MYSQL_HOST = sae.const.MYSQL_HOST    # 主库域名(可读写)
MYSQL_PORT = int(sae.const.MYSQL_PORT)    # 端口,类型为<type 'str'>,请根据框架要求自行转换为int
db = MySQLdb.connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB,port = MYSQL_PORT,charset='utf8' )
cursor = db.cursor()


0x05 上线测试






0x06 总结
乌云漏洞目前最全的似乎有8w多,本文只是抛砖引玉下,
整个项目源码 https://github.com/boy-hack/pythonwebhack


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Share/311.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
暂时未开启评论功能~