精华内容
下载资源
问答
  • 区块链漏洞库《区块链漏洞定级细则》
  • python爬取漏洞库.zip

    2019-12-23 10:22:00
    本代码使用python3爬取CNVD、CNNVD和CVE漏洞库并存入本地mysql数据库,可以实现漏洞预览,增量爬取完整爬取等功能,并以GUI形式展现。
  • 开源软件漏洞库综述 漏洞挖掘 安全管理 威胁情报 自动化 数据安全
  • 乌云漏洞库/知识库离线下载-附件资源
  • 近期工作中需要爬取整个CNVD的漏洞库,之前写的爬虫是跑ICS.CNVD的库(见之前文章 工控安全:分享自己的工控爬虫项目—PySpider-ICS ),本以为改改就能用,没想到,CNVD主站有几道反爬虫机制,这里记录一下我的解决之...

    近期工作中需要爬取整个CNVD的漏洞库,之前写的爬虫是跑ICS.CNVD的库(见之前文章 工控安全:分享自己的工控爬虫项目—PySpider-ICS ),本以为改改就能用,没想到,CNVD主站有几道反爬虫机制,这里记录一下我的解决之法。

    初步分析

    首先,还是使用了我钟爱的爬虫框架——pyspider,但是写完之后,试了几次都只能获取十几个漏洞信息,然后就报错无法继续下去。看来CNVD是有反爬虫机制的,这种情况以后会越来越常见,那么接下来就分析一下反爬虫机制。
    这是CNVD的漏洞查询页:https://www.cnvd.org.cn/flaw/list.htm


    先看一下跳转下一页的数据包
    POST /flaw/list.htm?flag=true HTTP/1.1
    Host: www.cnvd.org.cn
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: https://www.cnvd.org.cn/flaw/list.htm
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 121
    Connection: close
    Cookie: xxxx
    Upgrade-Insecure-Requests: 1
    Pragma: no-cache
    Cache-Control: no-cache
    
    number=%E8%AF%B7%E8%BE%93%E5%85%A5%E7%B2%BE%E7%A1%AE%E7%BC%96%E5%8F%B7&startDate=&endDate=&field=&order=&max=20&offset=20

    根据数据包可得知,CNVD进行下一页查询的操作是通过POST提交数据包的,而且其中数据包关键字段max=20&offset=20 offset表示查询漏洞数的偏移量,max代表显示当前页面的最大条数(经过测试,max设置100页面能显示100条,设置再大的值也是100条),其他字段爬虫用不到,直接删除不影响。


    自此,爬虫获取下一页的问题可以解决了,至于爬取页面漏洞URL,并进入漏洞详情页爬取具体数据的操作,无非是数据提取与格式化,也无需过多讨论(基操勿6皆坐)。

    深入分析

    接下来是解决CNVD对cookie字段的反爬虫限制。

    经过测试,猜测:CNVD对相同的cookie值,只允许获取十几个漏洞详情页面,所以要解决cookie动态更新的问题。
    这里我使用kali作为运行基础环境(爬虫在linux系统下稳定点,尤其是有中文的时候)
    接下来就是要通过chromedirver来自动化访问CNVD页面来更新cookie,
    下载地址:   https://npm.taobao.org/mirrors/chromedriver

    使用chromedriver要保证有chrome浏览器,且保证下载的版本号基本保持一致

    chromedriver安装方法:
    将下载的文件移动到系统目录去:sudo mv chromedriver /usr/local/bin/chromedriver
    改变用户执行的权限:sudo chmod u+x,o+x /usr/local/bin/chromedriver
    检验是否正常使用:chromedriver --version

    源码解释

    下面先贴上代码

    # -*- coding: utf-8 -*-
    import requests
    from lxml import etree
    import csv
    import time
    import random
    from collections import OrderedDict
    import codecs
    from datetime import date
    from multiprocessing.dummy import Pool as Threadpool
    # from sqlalchemy.ext.declarative import declarative_base
    # from sqlalchemy import Column, Integer, String, ForeignKey, TEXT, Index, DATE
    # from sqlalchemy.orm import sessionmaker, relationship
    # from sqlalchemy import create_engine
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    import ast
    
    #Base = declarative_base()
    
    
    # class Cnvdtable(Base):
    #     __tablename__ = 'cn_table'
    
    #     id = Column(Integer, primary_key=True)
    #     cn_url = Column(String(64))
    #     cn_title = Column(TEXT)
    #     cnvd_id = Column(String(32))
    #     pub_date = Column(DATE)
    #     hazard_level = Column(String(32))
    #     cn_impact = Column(TEXT)
    #     cve_id = Column(String(32))
    #     cn_describe = Column(TEXT)
    #     cn_types = Column(String(64))
    #     cn_reference = Column(String(512))
    #     cn_solution = Column(String(512))
    #     cn_patch = Column(TEXT)
    
    #     __table_args__ = (
    #         Index('cn_url', 'cnvd_id'),
    #     )
    
    
    # engine = create_engine(
    #     "mysql+pymysql://root:[email protected]/scrapy?charset=utf8", max_overflow=5)
    
    # Base.metadata.create_all(engine)
    # Session = sessionmaker(bind=engine)
    # session = Session()
    
    
    class Cnvdspider(object):
        def __init__(self):
            self.headers = {
                "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.16 Safari/537.36"}
            # 如果从某处断线了,可以更改起始的url地址
            #self.start_url = "http://www.cnvd.org.cn/flaw/list.htm"
            self.count = 0
            self.cookies = self.get_cookies()
    
        def get_cookies(self):
            chrome_options = Options()
            # 加上下面两行,解决报错
            chrome_options.add_argument('--no-sandbox')
            chrome_options.add_argument('--disable-dev-shm-usage')
            driver = webdriver.Chrome(chrome_options=chrome_options)
            driver.get("https://www.cnvd.org.cn/flaw/list.htm?max=20&offset=20")#设置每次ChromeDriver访问的初始页面用来更新cookie,以绕过cnvd爬虫限制
            cj = driver.get_cookies()
            cookie = ''
            for c in cj:
                cookie += "'"+c['name'] + "':'" + c['value'] + "',"
            cookie = ast.literal_eval('{'+cookie+'}')
            driver.quit()
            return cookie
    
        def parse(self, i):
            time.sleep(random.randint(2, 5))
            self.count += 1
            print(self.count)
            if(self.count == 5):
                self.cookies = self.get_cookies()
                self.count = 0
            url='https://www.cnvd.org.cn/flaw/list.htm?%s' % str(i)
            html = requests.post(url, data={'max': 100, 'offset': str(i)}, headers=self.headers,
                                cookies=self.cookies).content.decode()#当前的CNVD设置了只能POST提交数据,这里把max设置成100,这也是cnvd能在一个页面显示的最大漏洞信息条数,默认是20条,这样能减少查询页数。
            html = etree.HTML(html)
            return html
    
        def parse2(self, url):
            time.sleep(random.randint(2, 5))
            self.count += 1
            print(self.count)
            if(self.count == 5):
                self.cookies = self.get_cookies()
                self.count = 0
            html = requests.get(url, headers=self.headers,
                                cookies=self.cookies).content.decode()
            html = etree.HTML(html)
            return html
    
        def get_list_url(self, html):
            list_url = html.xpath("//div[@id='flawList']/tbody/tr/td[1]/a/@href")
            if list_url is None:
                list_url = html.xpath(
                    "//div[@class='blkContainerPblk']//table[@class='tlist']/tbody/tr/td[1]/a/@href")
            for url in list_url:
                url = "http://www.cnvd.org.cn" + url
                self.parse_detail(url)
            # next_url = html.xpath(
            #     "//a[@class='nextLink']/@href")[0] if html.xpath("//a[@class='nextLink']/@href") else None
            # if next_url:
            #     next_url = "http://www.cnvd.org.cn" + next_url
            # return next_url
    
        def parse_detail(self, url):
            time.sleep(random.randint(2, 5))
            html = self.parse2(url)
            # item = OrderedDict()  # 如果要存入csv文档,建议用有序字典
            item = {}
            # URL
            item["cn_url"] = url
            # 获取漏洞标题
            item["cn_title"] = html.xpath(
                "//div[@class='blkContainerPblk']/div[@class='blkContainerSblk']/h1/text()")
            if item["cn_title"]:
                item["cn_title"] = html.xpath("//div[@class='blkContainerPblk']/div[@class='blkContainerSblk']/h1/text()")[
                    0].strip()
            else:
                item["cn_title"] = 'Null'
    
            # 获取漏洞公开日期
            # item["date"] = html.xpath("//td[text()='公开日期']/following-sibling::td[1]/text()")
            item["pub_date"] = html.xpath(
                "//div[@class='tableDiv']/table[@class='gg_detail']//tr[2]/td[2]/text()")
            if item["pub_date"]:
                item["pub_date"] = "".join(
                    [i.strip() for i in item["pub_date"]])
            #    item["pub_date"] = self.convertstringtodate(item["pub_date"])
            else:
                item["pub_date"] = '2000-01-01'
            #    item["pub_date"] = self.convertstringtodate(item["pub_date"])
    
            # 获取漏洞危害级别
            item["hazard_level"] = html.xpath(
                "//td[text()='危害级别']/following-sibling::td[1]/text()")
            if item["hazard_level"]:
                item["hazard_level"] = "".join(
                    [i.replace("(", "").replace(")", "").strip() for i in item["hazard_level"]])
            else:
                item["hazard_level"] = 'Null'
    
            # 获取漏洞影响的产品
            item["cn_impact"] = html.xpath(
                "//td[text()='影响产品']/following-sibling::td[1]/text()")
            if item["cn_impact"]:
                item["cn_impact"] = "   ;   ".join(
                    [i.strip() for i in item["cn_impact"]])
            else:
                item["cn_impact"] = 'Null'
    
            # 获取cnvd id
            item["cnvd_id"] = html.xpath(
                "//td[text()='CNVD-ID']/following-sibling::td[1]/text()")
            if item["cnvd_id"]:
                item["cnvd_id"] = "".join(
                    [i.strip() for i in item["cnvd_id"]])
            else:
                item["cnvd_id"] = 'Null'
    
            # 获取cve id
            item["cve_id"] = html.xpath(
                "//td[text()='CVE ID']/following-sibling::td[1]//text()")
            if item["cve_id"]:
                item["cve_id"] = "".join(
                    [i.strip() for i in item["cve_id"]])
            else:
                item["cve_id"] = 'Null'
    
            # 获取漏洞类型
            item["cn_types"] = html.xpath(
                "//td[text()='漏洞类型']/following-sibling::td[1]//text()")
            if item["cn_types"]:
                item["cn_types"] = "".join(
                    [i.strip() for i in item["cn_types"]])
            else:
                item["cn_types"] = 'Null'
    
            # 获取漏洞描述
            item["cn_describe"] = html.xpath(
                "//td[text()='漏洞描述']/following-sibling::td[1]//text()")
            if item["cn_describe"]:
                item["cn_describe"] = "".join(
                    [i.strip() for i in item["cn_describe"]]).replace("\u200b", "")
            else:
                item["cn_describe"] = 'Null'
    
            # 获取漏洞的参考链接
            item["cn_reference"] = html.xpath(
                "//td[text()='参考链接']/following-sibling::td[1]/a/@href")
            if item["cn_reference"]:
                item["cn_reference"] = item["cn_reference"][0].replace('\r', '')
            else:
                item["cn_reference"] = 'Null'
    
            # 获取漏洞的解决方案
            item["cn_solution"] = html.xpath(
                "//td[text()='漏洞解决方案']/following-sibling::td[1]//text()")
            if item["cn_solution"]:
                item["cn_solution"] = "".join(
                    [i.strip() for i in item["cn_solution"]])
            else:
                item["cn_solution"] = 'Null'
    
            # 获取漏洞厂商补丁
            item["cn_patch"] = html.xpath(
                "//td[text()='厂商补丁']/following-sibling::td[1]/a")
            if item["cn_patch"]:
                for i in item["cn_patch"]:
                    list = []
                    try:
                        list.append(i.xpath("./text()")[0])
                        list.append("http://www.cnvd.org.cn" + i.xpath("./@href")[0])
                        item["cn_patch"] = list[0] + ':' + list[1]
                    except IndexError:
                        pass            
            else:
                item["cn_patch"] = 'Null'
    
            print(item)
            # 保存数据到csv
            self.save_data(item)
    
        def convertstringtodate(self, stringtime):
            "把字符串类型转换为date类型"
            #  把数据里的时间格式替换成数据库需要的格式。日期格式,便于后期提取数据,
            if stringtime[0:2] == "20":
                year = stringtime[0:4]
                month = stringtime[4:6]
                day = stringtime[6:8]
                if day == "":
                    day = "01"
                begintime = date(int(year), int(month), int(day))
                return begintime
            else:
                year = "20" + stringtime[0:2]
                month = stringtime[2:4]
                day = stringtime[4:6]
    
                begintime = date(int(year), int(month), int(day))
                return begintime
    
        def save_data(self, item):
            # 数据保存进csv,此处可以打开,存txt类似
            with open("./cnvd-1290ye.csv", "a") as f:
                writer = csv.writer(f, codecs.BOM_UTF8)
                c = []
                for i in item.values():
                    c.append(i)
                writer.writerow(c)
    
            # dic = dict(item)
            # obc = Cnvdtable(
            #     cn_url=dic['cn_url'],
            #     cn_title=dic['cn_title'],
            #     cnvd_id=dic['cnvd_id'],
            #     cve_id=dic['cve_id'],
            #     pub_date=dic['pub_date'],
            #     cn_types=dic['cn_types'],
            #     hazard_level=dic['hazard_level'],
            #     cn_impact=dic['cn_impact'],
            #     cn_describe=dic['cn_describe'],
            #     cn_reference=dic['cn_reference'],
            #     cn_solution=dic['cn_solution'],
            #     cn_patch=dic['cn_patch'],
            # )
            # session.add(obc)
            # session.commit()
            #print("\n"+dic['cn_title']+" ==============存储成功\n")
    
        def run(self):
    
            #每次 i 递增100位
            for i in range(128900,129900,100): #如果因为一些原因导致脚本报错中断,重新运行时需要重新设置范围,根据post页面信息来定位报错的页数
                html = self.parse(i)
                print(i) #页数
                next_url = self.get_list_url(html)
                print(next_url)
    
    
    
    if __name__ == "__main__":
        a = Cnvdspider()
        pool = Threadpool(1)  # 单线程跑的慢,但是基本很稳定没有被cnvd封杀。本次跑完整个cnvd库大概十天左右,期间网络波动中断需要维护代码,及爬虫重新爬的页面范围。
        a.run()
        # pool.map(a.run(),self.parse())
        pool.close()
        pool.join()

    上述代码,是根据在GitHub上搜索出的几个cnvd爬虫,再根据实际运行情况进行修改出的:
    注释了录入mysql数据库的代码
    修改爬虫获取下一页的方式(也就是文章开头内容)
    再修改了提取漏洞详情页的数据提取方法
    等等......具体看源码中的注释吧
    下面放一下最后录入到数据库的情况

    展开全文
  • 这次的目标是NVD美国国家信息安全漏洞库,爬虫框架依旧选用我钟爱的PySpider页面分析写爬虫的第一步就是要先分析好页面,明确如何让爬虫一步步访问到页面,如何采集到页面中的数据,以及如何存储采集到的数据。...

    这次的目标是NVD美国国家信息安全漏洞库,爬虫框架依旧选用我钟爱的PySpider

    页面分析

    写爬虫的第一步就是要先分析好页面,明确如何让爬虫一步步访问到页面,如何采集到页面中的数据,以及如何存储采集到的数据。
    根据pyspider框架,首先我们需要找一个first page,经过对官网的一步步摸索,找到了下面这个起始页https://nvd.nist.gov/vuln/full-listing/


    图中可见,页面是以年月来对收集的漏洞进行分类的
    继续进入链接

    可以发现这里的漏洞链接都是CVE编号来构成的,但不是以 CVE-年份-编号这种规则来归类的了
    比如 https://nvd.nist.gov/vuln/detail/CVE-2010-3782页面

    漏洞详情都在此div框架下
    <div class="col-lg-9 col-md-7 col-sm-12">
    ....
    </div>

    所以第一步就需使用xpath来定位到这个节点的所有数据

    items = response.etree.xpath('//div[@class="col-lg-9 col-md-7 col-sm-12"]')

    下面来获取一个很有价值的信息:CVSS 评分

    cvss3_nvd_base_score = ''.join(item.xpath('//*[@data-testid="vuln-cvss3-panel-score"]/text()')).strip()#显式数据提取
    cvss3_nvd_vector = ''.join(item.xpath('//*[@data-testid="vuln-cvss3-nist-vector"]/text()')).strip()

    需要注意的是,NVD页面提供来CVSS3和CVSS2两种评分,所以要一并采集出来
    还有一个重要的信息就是:CPE

    通用平台枚举(CPE)是一种标准化方法,用于描述和识别企业计算资产中存在的应用程序,操作系统和硬件设备的类。IT管理工具可以收集有关已安装产品的信息,使用其CPE名称识别这些产品,然后使用此标准化信息来帮助制定有关资产的完全或部分自动化决策。例如,识别XYZ Visualizer Enterprise Suite的存在可能会触发漏洞管理工具来检查系统中是否存在软件中的已知漏洞,还会触发配置管理工具以验证是否根据组织的策略安全地配置了软件。此示例说明了如何将CPE名称用作标准化信息源,以便跨工具实施和验证IT管理策略。
        当前版本的CPE是2.3。 CPE 2.3通过基于堆栈的模型中的一组规范来定义,其中功能基于在堆栈中指定为较低的更简单、更窄定义的元素。这种设计为创新提供了机会,因为可以通过仅组合所需的元素来定义新功能,并且可以更好地划分和管理变更的影响。
        CPE 2.3堆栈图:从下到上:命名,名称匹配,(跨越名称匹配)适用性和字典。
        内容格式:cpe:/<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>


    观察HTML代码可知,CPE的信息都在 <b>标签中,而且有的漏洞页面不止一条CPE信息,那么我们可以用如下xpath表达式获取信息
    cpe = '\n'.join(item.xpath('//*[@data-testid="vuln-configurations-container"]//b[@data-testid]/text()')).strip()

    其他数据可根据分享的脚本,自行修改添加

    爬取结果

    代码分享

    https://github.com/hi-KK

    展开全文
  • 常用的漏洞库

    2021-08-10 16:08:37
    漏洞库 Vulhub 环境安装部署步骤,漏洞复现流程 https://www.wangan.com/docs/vulhub Middleware-Vulnerability-detection CVE、CMS、中间件漏洞检测利用合集 ...佩奇文库 环境搭建,POC,漏洞原理全部集合在一个文库 ...

    漏洞库

    Vulhub

    环境安装部署步骤,漏洞复现流程

    https://www.wangan.com/docs/vulhub

    Middleware-Vulnerability-detection

    CVE、CMS、中间件漏洞检测利用合集

    https://github.com/mai-lang-chai/Middleware-Vulnerability-detection

    佩奇文库

    环境搭建,POC,漏洞原理全部集合在一个文库

    http://wiki.peiqi.tech/

    白阁文库

    白阁文库是白泽Sec团队维护的一个漏洞POC和EXP披露以及漏洞复现的开源项目

    https://www.bylibrary.cn/

    风炫漏洞库

    一个支持自主搜索的漏洞库

    https://evalshell.com/poc#

    seebug

    https://www.seebug.org/

    展开全文
  • Android漏洞库的设计与实现.pdf
  • 今天小编就为大家分享一篇python爬取cnvd漏洞库信息的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 这篇文章是建立在已经搭建好LAMP环境的基础上进行的,搭建方法可见:本地搭建Wooyun漏洞库(一)——Ubuntu 18.04下搭建LAMP环境 一、下载资源 访问https://github.com/grt1st/wooyun_search,下载所需文件。 ...

    本文参考https://github.com/grt1st/wooyun_search

    这篇文章是建立在已经搭建好LAMP环境的基础上进行的,搭建方法可见:本地搭建Wooyun漏洞库(一)——Ubuntu 18.04下搭建LAMP环境

    一、下载资源

    访问https://github.com/grt1st/wooyun_search,下载所需文件。

    下载该ZIP文件(文件名为:wooyun_search-master),其中文件bugs和drops内容为空,需另外下载,下载链接如下所示:

    bugs   链接: https://pan.baidu.com/s/1n_kkUaZZxcTEa4-v6sGa9Q 密码: sg98 (20180707)
    drops  链接: https://pan.baidu.com/s/1r2Y7rfntwnjglX6HtzDk6w 密码: 738f (20180707)

    下载好WooYun_Bugs(漏洞库)、WooYun_Drops(知识库)之后,需对里面的压缩文件进行解压。注意:只需分别对文件WooYun_Bugs(漏洞库)、WooYun_Drops(知识库)中的一个压缩文件进行彻底解压即可。解压成功后,分别将这两个文件中的内容放到对应的bugs、drops文件中。

    接下来就是将文件wooyun_search-master放进先前搭建好的web服务器目录下(/var/www/html),并将文件wooyun_search-master重命名为wooyun,方便后面进行搜索。

    文件说明:
    	app_bugs.py                      bugs的索引,依赖lxml
    	app_drops.py                     drops的索引,依赖lxml
    	index.html                       搜索的主页
    	search.php                       执行搜索的页面
    	config.php                       php配置文件
    	./bugs                           bugs静态文件的目录
    	./drops                          drops静态文件的目录

    app_bugs.py为建立bugs索引的脚本,app_drops.py为建立drops索引的脚本。

    因为python脚本中open()函数打开的文件名不能为中文,建议将drops目录下的中文文件名改为英文(例如,安全运维-xxxx.html=>safe-xxxx.html)

    二、安装依赖组件

    • python 2.7和pip

    • python依赖:MySQLdb,lxml(推荐)

    提示:以下操作均在root权限下进行(每个人搭建过程中遇到的问题会不一样,本文不保证能解决所有问题,个别问题需自己去手动查搜索。)

    2.1 安装Python

    apt install python

    2.2 安装pip

    安装时若出现询问框,按默认的安装就行。安装完成后,可输入如下命令进行版本查询。

    2.3 安装MySQLdb

    MySQLdb — Python 连接 MySQL 的模块。

    pip install mysql-python      

    使用pip安装,若出现以上异常 — EnvironmentError: mysql_config not found,需安装另一个依赖 apt-get install libmysqld-dev

    再次安装pip install mysql-python,安装成功之后,进入到python环境确认— import MySQLdb

    2.4 安装lxml

    lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。

    安装依赖 — apt-get install libxml2-dev libxslt-dev

    安装lxml —— apt-get install python-lxml   或    pip install lxml

    三、索引配置

    3.1 修改py文件

    打开终端,切到/var/www/html/wooyun目录下,分别在脚本app_bugs.py、app_drops.py中修改如下语句,更改参数如主机、端口号、用户名、密码(将光标定位到需要更改的位置,输入i,即可进行添加)。

    3.2 创建数据库、表

    在mysql中建立数据库wooyun,数据表bugs、drops,分别建立字段title、dates、author、type、corp、doc与title、dates、author、type、doc。

    CREATE DATABASE `wooyun` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    
    create table bugs(title VARCHAR(500),dates DATETIME, author CHAR(255),type CHAR(255),corp CHAR(255),doc VARCHAR(200) PRIMARY KEY);
        
    create table drops(title VARCHAR(500),dates DATETIME, author CHAR(255),type CHAR(255),doc VARCHAR(200) PRIMARY KEY);

    注意mysql编码如下,需要为utf-8(character_set_server不为utf-8要修改mysql配置文件)

    use wooyun;
    show variables like 'character%'; #查看编码
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+

    以下是修改character_set_server的编码的方法。修改完之后,记得重启mysql服务。

    3.3 建立索引

    切换到/var/www/html/wooyun目录下,分别执行app_bugs.py、app_drops.py文件

    python ./app_bugs.py
    python ./app_drops.py

    执行完后在mysql中进行查询,bugs数目为40280,drops数目为1264

    use wooyun;
    select count(*) from bugs;
    select count(*) from drops;

    在浏览器中输入"Web服务器ip/wooyun",便可以进入到WooYun查询页面。

    展开全文
  • 重要漏洞库简单介绍

    2020-09-15 09:34:42
    CVE 《通用漏洞与披露》Common Vulnerability and Exposures 命名标准...国家级漏洞库 CNNVD 中国国家信息安全漏洞库(China National Vulnerability Database of Information Security) 采用统一的规范对漏洞进行收集
  • 安全漏洞是网络安全的关键,漏洞库旨在收集、评估和发布安全漏洞信息。然而,漏洞库相互之间存在数据的冗余和异构,导致漏洞信息共享困难。针对上述问题,收集和分析了15个主流漏洞库共计84.2万条漏洞数据。基于文本...
  • 了解常用操作系统/软件(windows、IIS、apache等)的漏洞,有利于提高web应用的安全性及更好的设计安全的web应用,通过权威机构发布的安全漏洞库或许这些信息是一个不错的选择。
  • 乌云漏洞库/知识库离线下载

    千次阅读 2017-03-24 01:30:56
    乌云漏洞库/知识库离线下载
  • 基于SECUNIA漏洞库的数据挖掘算法研究.pdf
  • 1、CNNVD(国家信息安全漏洞库):http://www.cnnvd.org.cn/ 2、CNVD(国家信息安全漏洞共享平台):https://www.cnvd.org.cn/ 3、乌云:http://wooyun.2xss.cc/ 4、VULHUB(信息安全漏洞门户):...
  • NVD漏洞库数据,数据截止到2020,7.9号,都是json格式,方便学习。
  • 渗透测试之信息收集漏洞库

    千次阅读 2017-12-01 18:03:31
    挖一个漏洞很难,所以收集一些已经被公布的漏洞是很有必要的。 1.漏洞信息发布平台 国内的主要包括:  CNNVD:中国国家漏洞库(中国国家信息安全漏洞...Sebug漏洞库(Sebug漏洞库: 漏洞目录、安全文档、漏洞趋势)
  • 分享几个cve漏洞库查询网站,自己在工作中经常用到 阿里云漏洞库 https://avd.aliyun.com/nvd/list tenable漏洞库(nessus) https://www.tenable.com/cve/search https://cve.mitre.org/cve/search_cve_list.html ...
  • python爬漏洞库

    千次阅读 2018-04-12 10:39:42
    一个简单的爬漏洞库,并整理到Excel中# -*- coding: utf-8 -*- from bs4 import BeautifulSoup import requests import xlwt import warnings import sys import time reload(sys) sys.setdefaultencoding('utf-8') ...
  • 一个免费的镜像漏洞扫描工具, 可以扫描镜像中已安装软件包的漏洞,支持中文漏洞库,可与 无缝集成。 Dosec 的商业客户可以使用企业版扫描功能,例如扫描开源框架中的漏洞以及扫描容器镜像中包含的敏感数据。同时企业...
  • 逐步改善区块链领域的诸多安全问题,国家互联网应急中心联合长亭科技、成都链安科技、安比实验室和慢雾科技四家安全厂商,在CVSS2.0漏洞评分系统基础上,结合大量真实区块链漏洞案例,共同起草国家区块链漏洞库...
  • 众所周知,wooyun上有太多含金量的漏洞了,虽然互联网上也有相关的漏洞资源分享,但是万一有朝一日也被和谐了就又麻烦了,最放心的方式就是漏洞库放在本地,在本地搭建一套环境最好不过了,以下操作演示了如何在本地...
  • python爬取cnvd漏洞库信息

    千次阅读 2016-12-29 09:11:03
    今天一同事需要整理http://ics.cnvd.org.cn/工控漏洞库里面的信息,一看960多个要整理到什么时候才结束。 所以我决定写个爬虫帮他抓取数据。 看了一下各类信息还是很规则的,感觉应该很好写。 but这个网站设置了...
  • 美国1, 赛门铁克的漏洞库 https://www.securityfocus.com/2, 美国国家信息安全漏洞库 https://nvd.nist.gov/3, 全球信息安全漏洞指纹库与文件检测服务 http://cvescan.com4, 美国著名安全公司Offensive Security的...
  • 还是使用我钟爱的爬虫框架——pyspider,选取first page作为起始页http://www.cnnvd.org.cn/web/vulnerability/querylist.tagCNNVD的页面只需要提交get请求即可递归访问到下一页下面进入到漏洞详情页,抓取需要的...
  • 漏洞库网站

    2017-04-27 08:31:30
    关于漏洞的国内外网站
  • 首先,我们需要该漏洞库的全部漏洞数据,但是,使用python书写爬虫会被反爬机制识别到,从而无法自动大量下载数据 这里,发现该网页有共享的 因此,我们考虑从这里做文章 然鹅,一个个点击下载也十分耗时,因此,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,137
精华内容 38,854
关键字:

漏洞库