0x01 前言
前几天在先知上看到伪全栈式安全研发:CVE监控这篇文章,就想着也实现一下代码进行最新CVE的监控。语言采用了Python,数据库也为Mongodb数据库。代码和实现的什么不重要,重要的是过程。
主要包括以下几个方面。
获取最新的CVE列表和详情
主要采用了python的requests模块和BeautifulSoup模块。
将最新的CVE信息存入数据库
数据库使用了Mongodb,采用了pymongo模块。
通过邮件发送最新的CVE信息
发送邮件采用了smtplib模块。
定时执行任务
使用了linux的crontab来实现。
0x02 实现过程
1. 获取最新的CVE列表和详情
通过查看源代码,发现没html没什么规律可言,都是些超链接。要想获取最新的列表,可以通过取文本中间的方法来获取。
这里需要获取New entries:和Graduations之间的内容。然后通过BeautifulSoup来解析其中的超链接。
主要代码如下:
def getCVES():# 获取最新到CVE列表
try:
url = 'https://cassandra.cerias.purdue.edu/CVE_changes/today.html'
res = requests.get(url, headers=headers, timeout=60)
CVEList_html = getM