欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

每日获取变更的CVE漏洞

来源:本站整理 作者:佚名 时间:2020-03-16 TAG: 我要投稿

查看CVE推送每日更新,做成类似于新闻头条的推送是企业安全从业人员最应该掌控的能力。随着安全体系工作的开展,每位甲方安全从业者从开始的朋友圈接收漏洞信息,到各个平台接收漏洞信息,但无论是三方还是朋友圈,都不能百分之百贴合与及时的自己想要掌控的漏洞信息,也正是基于这点,我开始自己做CVE的推送工作。
首先要爬取CVE,有一个比较方便的网站,内里集成了每天发布或更新的CVE
URL:https://cassandra.cerias.purdue.edu/CVE_changes/today.html

每一个链接都会链接到CVE漏洞详情中

那我们使用python针对CVE进行信息的爬取
headers = {
        'User-Agent':'Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0',
        'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
        'Accept-Encoding':'gzip, deflate',
        'Upgrade-Insecure-Requests':'1',
    }
    url = "https://cassandra.cerias.purdue.edu/CVE_changes/today.html"
    def get_cve_urls():
        '''获取最新的cve漏洞url地址'''
        start_content = 'New entries' # 起始字符串
        end_content = 'Graduations'
        response = requests.get(url, headers=headers, timeout=60)
        response = str(response.text)
        start_index = response.index(start_content)
        if start_index >= 0:
            start_index += len(start_content)
            end_index = response.index(end_content)
            cve_urls_content = response[start_index:end_index]  # 获取网页的指定范围
            soup = BeautifulSoup(cve_urls_content,'lxml')
            cve_url_lists = []     # 存放获取到的cve url
            for u in soup.find_all('a'):
                cve_url = u["href"]
                cve_url_lists.append(cve_url)
    #     print(cve_url)
            return cve_url_lists
    def get_cve_info():
        '''获取最新cve漏洞信息'''
        print '[*] 最新cve漏洞信息:\n'
        sleep(2)
        cve_urls = get_cve_urls()
        numid = 1
        for cve_url in cve_urls:
            response = requests.get(cve_url,headers=headers,timeout=60)
            response = response.text
            soup = BeautifulSoup(response,'lxml')
            table = soup.find("div",id="GeneratedTable").find("table")    # 获取table标签内容
            cve_id = table.find_all("tr")[1].find("td",nowrap="nowrap").find("h2").string   # cve id
            cve_description = table.find_all("tr")[3].find("td").string       # cve 介绍
其中会有一部分英文的CVE介绍会存在特殊字符,比如单引号,这时我们需要将单引号做处理后才能输出
    if str(cve_description).find('\'') != -1:
                cve_description = str(cve_description).replace('\'', '')
                print('替换特殊字符处理--\'')

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载