update with NVD
This commit is contained in:
@@ -68,26 +68,19 @@ def fetch_severity(index, total, CVE):
|
|||||||
try:
|
try:
|
||||||
resp = requests.get(url, timeout=5, headers=headers)
|
resp = requests.get(url, timeout=5, headers=headers)
|
||||||
if resp.status_code == 200:
|
if resp.status_code == 200:
|
||||||
content = resp.text
|
html = resp.text
|
||||||
severity = re.findall('"vuln-cvss3-panel-score">(.*)?</a>', content)
|
|
||||||
# print(severity)
|
|
||||||
|
|
||||||
score, cve_level, _ = severity[0].split(' ')
|
soup = BeautifulSoup(html, "html.parser")
|
||||||
|
severity = soup.find('a', id="Cvss3NistCalculatorAnchor").get_text()
|
||||||
|
score, cve_level = severity.split(' ')
|
||||||
cve_obj[CVE] = cve_level
|
cve_obj[CVE] = cve_level
|
||||||
print(score, cve_level)
|
print(score, cve_level)
|
||||||
except:
|
except:
|
||||||
print('v3 not scored, switch to v2...')
|
print('v3 not scored, switch to v2...')
|
||||||
try:
|
severity = soup.find('a', id="Cvss2CalculatorAnchor").get_text()
|
||||||
soup = BeautifulSoup(content, "html.parser")
|
score, cve_level = severity.split(' ')
|
||||||
score_level = soup.find('a',
|
cve_obj[CVE] = cve_level
|
||||||
id="p_lt_WebPartZone1_zoneCenter_pageplaceholder_p_lt_WebPartZone1_zoneCenter_VulnerabilityDetail_VulnFormView_Cvss2CalculatorAnchor").get_text()
|
print(score, cve_level)
|
||||||
|
|
||||||
score, cve_level = score_level.split(' ')
|
|
||||||
cve_obj[CVE] = cve_level
|
|
||||||
print(score, cve_level)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
pass
|
|
||||||
finally:
|
finally:
|
||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
@@ -127,7 +120,7 @@ def fetch_vul_info():
|
|||||||
print(query_str)
|
print(query_str)
|
||||||
print(vuls_info)
|
print(vuls_info)
|
||||||
|
|
||||||
with open('result-v2.txt', 'a+', encoding='utf-8') as fw:
|
with open('cves.txt', 'a+', encoding='utf-8') as fw:
|
||||||
fw.write(query_str)
|
fw.write(query_str)
|
||||||
fw.write(url)
|
fw.write(url)
|
||||||
fw.write('\n')
|
fw.write('\n')
|
||||||
@@ -22,7 +22,7 @@ class CveObject:
|
|||||||
"""
|
"""
|
||||||
print('----------------------------------')
|
print('----------------------------------')
|
||||||
print('编号:', self.cve_no)
|
print('编号:', self.cve_no)
|
||||||
print('漏洞描述:', self.cve_description[:10])
|
print('漏洞描述:', self.cve_description)
|
||||||
print('漏洞等级:', self.cve_level)
|
print('漏洞等级:', self.cve_level)
|
||||||
print('漏洞评分:', self.cve_score)
|
print('漏洞评分:', self.cve_score)
|
||||||
print('\n\n')
|
print('\n\n')
|
||||||
@@ -70,25 +70,20 @@ def fill_with_nvd(cve, cve_obj):
|
|||||||
description = re.findall('<p data-testid="vuln-description">(.*).</p>?', content)
|
description = re.findall('<p data-testid="vuln-description">(.*).</p>?', content)
|
||||||
cve_obj.cve_description = description[0]
|
cve_obj.cve_description = description[0]
|
||||||
|
|
||||||
severity = re.findall('"vuln-cvss3-panel-score">(.*)?</a>', content)
|
soup = BeautifulSoup(content, "html.parser")
|
||||||
# print(severity)
|
severity = soup.find('a', id="Cvss3NistCalculatorAnchor").get_text()
|
||||||
score, cve_level, _ = severity[0].split(' ')
|
score, cve_level = severity.split(' ')
|
||||||
cve_obj.cve_score = score
|
cve_obj.cve_score = score
|
||||||
cve_obj.cve_level = cve_level
|
cve_obj.cve_level = cve_level
|
||||||
print(score, cve_level)
|
print(score, cve_level)
|
||||||
except:
|
except:
|
||||||
print('v3 not scored, switch to v2...')
|
print('v3 not scored, switch to v2...')
|
||||||
try:
|
|
||||||
soup = BeautifulSoup(content, "html.parser")
|
|
||||||
score_level = soup.find('a',
|
|
||||||
id="p_lt_WebPartZone1_zoneCenter_pageplaceholder_p_lt_WebPartZone1_zoneCenter_VulnerabilityDetail_VulnFormView_Cvss2CalculatorAnchor").get_text()
|
|
||||||
|
|
||||||
score, cve_level = score_level.split(' ')
|
severity = soup.find('a', id="Cvss2CalculatorAnchor").get_text()
|
||||||
cve_obj.cve_score = score
|
score, cve_level = severity.split(' ')
|
||||||
cve_obj.cve_level = cve_level
|
cve_obj.cve_score = score
|
||||||
print(score, cve_level)
|
cve_obj.cve_level = cve_level
|
||||||
except:
|
print(score, cve_level)
|
||||||
pass
|
|
||||||
finally:
|
finally:
|
||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
@@ -170,8 +165,8 @@ def save_cve_objs():
|
|||||||
cve_info = '{}|{}|{}|{}|{}|{}\n'.format(obj.cve_no, obj.cve_nvd_url,
|
cve_info = '{}|{}|{}|{}|{}|{}\n'.format(obj.cve_no, obj.cve_nvd_url,
|
||||||
obj.cve_score, obj.cve_level, obj.cve_cna,
|
obj.cve_score, obj.cve_level, obj.cve_cna,
|
||||||
obj.cve_description)
|
obj.cve_description)
|
||||||
with open('cve.txt', 'a+') as fw:
|
# with open('cve.txt', 'a+') as fw:
|
||||||
fw.write(cve_info)
|
# fw.write(cve_info)
|
||||||
|
|
||||||
|
|
||||||
def write2html():
|
def write2html():
|
||||||
Reference in New Issue
Block a user