最近有搭建漏洞检索数据库的想法,但是漏洞录入数据库是个难事。
为了方便录入漏洞信息,这边就想直接用Nuclei的历史漏洞YAML脚本做成数据录进数据库中,作为数据方便全文搜索关键字。
Nuclei的漏洞模板中主要读取如下几个字段:
漏洞目标中会有漏洞资产检索语法,一般存在fofa-query或shodan-query字段里面
然后POC解析的话可能还是有些难度的,要完全识别nuclei模板语法的话要花些时间,这里就简单解析下满足条件:
根据返回包匹配条件类型type,做以上几个不同的简单解析,然后匹配的语句还是按原文来存储。
识别完成后的数据库大概是这样的:
漏洞ID是CVE的ID或是CNVD的ID,漏洞标题等其他信息按格式简单读取解析出来
数据差不多就这样存好了,现在缺一个查询的交互页面。简单的方法是写一个Flask页面,通过SQL直接模糊查询漏洞信息。
这里我图方便就拿老早之前的毕设改了下,因为POC等其他地方存在XSS的检测语句,渲染进前端页面会产生XSS弹窗,所以我就不对那些数据做换行符检测处理了:
运行main.py,在5000端口启动网页后端
访问之后通过网页模板渲染出漏洞信息,最上方带一个查询框
测试查询CVE ID为CVE-2021-44228的漏洞
还能对漏洞利用POC中的内容进行查询,查询带有/etc/passwd的漏洞
以上数据只包含了nuclei自带的2021年CVE漏洞信息,感兴趣的师傅可以用其他方法保存到数据库中再解析查询。
漏洞信息文件我附在Freebuf的帮会中了,包含以上数据的数据库文件、Python Flask后端和前端查询页面,使用时先新建数据库然后修改python文件中的数据库连接信息即可
原文始发于微信公众号(Code4th安全团队):解析YAML漏洞脚本,反向生成漏洞检索数据库
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论