CVE文档解析

本文探讨如何使用Python的ElementTree库解析CVE(Common Vulnerabilities and Exposures)文档,通过XPath表达式提取关键信息,提升安全分析效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2014-1-5 17:50
#-*- coding:utf-8 -*-
from xml.etree import ElementTree
import xml.etree.ElementTree as xml

tree = xml.parse('allitems-cvrf-year-1999.xml')

for elems in tree.iter("{http://www.icasi.org/CVRF/schema/vuln/1.1}Vulnerability"):
    for firstchild in elems:
        if(firstchild.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}Title"):
            print "Title:",firstchild.text
        if(firstchild.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}Notes"):
            for i in firstchild:
                print "Notes",i.text
        if(firstchild.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}CVE"):
            print "CVE",firstchild.text
        if(firstchild.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}References"):
            for Reference in firstchild:
                print "\n"
                for i in Reference:
                    if(i.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}URL"):
                        print "URL",i.text
                    if(i.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}Description"):
                        print "Description",i.text

2014-1-5 17:55


from xml.etree import ElementTree
import xml.etree.ElementTree as xml

tree = xml.parse('allitems-cvrf-year-1999.xml')
d = {}
s = ''
for elems in tree.iter("{http://www.icasi.org/CVRF/schema/vuln/1.1}Vulnerability"):
    for firstchild in elems:
        if(firstchild.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}Title"):
            #print "Title:",firstchild.text
            d["CVE-ID"] = firstchild.text
        if(firstchild.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}Notes"):
            for i in firstchild:
                if(i.attrib["Type"] == 'Description'):
                    d["Description"] = i.text
                if(i.attrib["Type"] == 'Other' and i.attrib["Title"] == 'Published'):
                    d["Published"] = i.text
                if(i.attrib["Type"] == 'Other' and i.attrib["Title"] == 'Modified'):
                    d["Modified"] = i.text
                #print type(i.attrib)
                #print "Notes",i.text
        if(firstchild.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}References"):
            for Reference in firstchild:
                for i in Reference:
                    if(i.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}URL"):
                        if(i.text != None):
                            s = s + i.text + "  "
                            #print "URL",i.text
                    if(i.tag == "{http://www.icasi.org/CVRF/schema/vuln/1.1}Description"):
                        if(i.text != None):
                            s = s + i.text + "    "
                            #print "Description",i.text
                            
            d["References"] = s
    print d.items()
    print '\n'
    d.clear()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值