当前位置:   article > 正文

cvemap-CVE漏洞库工具(内含解析脚本)

cvemap-CVE漏洞库工具(内含解析脚本)

一、前言

1.1 来自官方的介绍

   在快速发展的网络安全格局中,2023 年是网络安全威胁大量涌入的一年,国家漏洞数据库 (NVD)报告的新 CVE(常见漏洞和暴露)条目数量达到惊人的 24,804 条。海量的数据可能令人难以承受,但我们最新的创新借助cvemap旨在正面应对这一挑战。在 的支持下cvemap-api,我们的工具定期从 NVD 和其他关键来源收集 CVE 数据,将它们整合到一个单一的综合存储库中。

   这种战略聚合将复杂且不断扩大的 CVE 范围转变为一种易于管理且用户友好的格式。借助cvemap的作用不仅仅是穿越密集的 CVE 数据“丛林”;它充当可靠的指南,为在这个复杂且不断变化的网络安全领域导航提供清晰的地图和指南针。借助cvemap,您不仅可以跟上网络安全发展的步伐,还可以与网络安全的发展保持同步。您将能够自信地驾驭并保持领先地位。

img

1.2 Github地址和文档地址

# github地址
https://github.com/projectdiscovery/cvemap
# 文档地址
https://blog.projectdiscovery.io/announcing-cvemap-from-projectdiscovery/
https://docs.projectdiscovery.io/tools/cvemap/running#prerequisites-for-cvemap
  • 1
  • 2
  • 3
  • 4
  • 5

二、工具搭建与使用

2.1 工具搭建

  1. 安装Golang编译环境,官方说cvemap 需要Go 1.21才能成功安装,我机器原本有安装有Go,1.19.3我也安装成功了。

在这里插入图片描述

  1. 要安装,只需运行以下命令或从发布页面下载预编译的二进制文件。
go install github.com/projectdiscovery/cvemap/cmd/cvemap@latest
  • 1

在这里插入图片描述

  1. 需要到获取API密钥,直接用github账号登录就行。

    https://cloud.projectdiscovery.io/templates?ref=api_key
    
    • 1

在这里插入图片描述

  1. 设置API密钥

    # 输入以下命令,然后粘贴API Key即可
    ./cvemap -auth
    
    • 1
    • 2

2.2 工具使用

# 常用示例,具体用法可参照官方文档
./cvemap
./cvemap -h1
./cvemap -poc
./cvemap -product confluence
./cvemap -id CVE-2024-0519
./cvemap -json > ./cvemap.json
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

三、CVEMAP数据导出解析脚本

3.1 CVE导出Json格式

./cvemap -json > ./cvemap.json
  • 1

3.2 Python解析脚本源码

# @艺说IT
import json
import csv

header = ["漏洞编号", "漏洞描述", "危害等级","漏洞产品","产品所属公司","漏洞类型","披露时间","是否有POC","POC链接"]

# json列表
file_list = ["cvemap.json","h1-cvemap.json","confluence-cvemap.json"]
filename = "cve.csv"
with open(filename, "w", encoding="UTF8") as f:
    writer = csv.writer(f)
    # 写入头
    writer.writerow(header)

for file_name in file_list:
    with open(file_name,"r") as file:
        # 读取JSON数据
        data = json.load(file)
        print("条数:",len(data))
        for i in range(len(data)):
            cve_name = data[i]["cve_id"]
            cve_description = str(data[i]["cve_description"]).replace("\n","")
            # 风险等级
            severity = data[i]["severity"]
            # 漏洞发布日期
            published_at = data[i]["published_at"]
            # 漏洞点
            if "weaknesses" in data[i]:
                weaknesses = str(data[i]["weaknesses"])
            else:
                weaknesses = "无"
            # poc
            if "poc" in data[i]:
                if len(data[i]["poc"]) > 0:
                    poc = str(data[i]["poc"])
                    is_poc = "有"
                else:
                    is_poc = "无"
            else:
                is_poc = "无"
                poc = "无"
            
            if "cpe" in data[i]:
                # 漏洞产品
                product = str(data[i]["cpe"]["product"])
                # 产品所属公司
                vendor = str(data[i]["cpe"]["vendor"])
            else:
                # 漏洞产品
                product = "无"
                # 产品所属公司
                vendor = "无"
    # ["漏洞编号", "漏洞描述", "危害等级","漏洞产品","产品所属公司","漏洞类型","披露时间","是否有POC","POC链接"]
            time_ip_args_rule = cve_name + " #### " + cve_description + " #### " + severity + " #### " + product + " #### " +vendor + " #### " + weaknesses + " #### " + published_at + " #### " + is_poc + " #### " + poc
            new_data = [str(time_ip_args_rule).split(" #### ")]
            print(new_data)
            # 打开 CSV 文件,以追加模式写入数据
            with open(filename, "a", newline="") as file:
                writer = csv.writer(file)
                writer.writerows(new_data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

在这里插入图片描述

四、总结

   之前就有想法收集漏洞列表,形成自己的漏洞库,方便以后的查找、复盘、集合工具……,所以这个工具提供了很大的便利,非常不错。微信公众号搜索关注艺说IT,分享各种原创技术干货文章,对你有用的话请一键三连,感谢

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/487514
推荐阅读
相关标签