CVE ID, Date, Severity νλ²μ ν¬λ‘€λ§
μ€ν κ³Όμ
printDateCVESeverity.py
νλ²μ 3κ°μ§ μ 보λ₯Ό λ€ λ΄μ μ μλ txt νμΌμ μμ±ν μ μμΌλ©΄ μμ μ 볡λΆνκΈ° νΈν κ² κ°μμ(+ 21.09.13 14:25 μκ³ λ³΄λ μνΈνλ€. κ·Έλ₯ λ€ λ°λ‘ νλκ² νΈνλ€..γ ) λ°λ‘λ°λ‘ μλ py νμΌλ€μ κ·Έλ₯ νλμ μ½λμ ν©μ³λ²λ €μ Date - CVE ID - Severity μ 보 μμΌλ‘ μΆλ ₯νλ νλ‘κ·Έλ¨μ λ§λ€μλ€.
λ±ν μ΄λ €μ΄ 건 μκ³ κ·Έλ₯ μλ μλ μ½λλ€μ μ λΉν ν©μΉλ©΄ λμλ€.
for line in data:
cve = line.strip()
try:
url = 'https://nvd.nist.gov/vuln/detail/' + cve
urlDate = 'https://cve.mitre.org/cgi-bin/cvename.cgi?name=' + cve
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
temp = soup.find('a', {'id': "Cvss3NistCalculatorAnchor"})
if temp == None:
temp = soup.find('a', {'id': "Cvss3CnaCalculatorAnchor"})
if temp == None:
temp = soup.find('a', {'id': "Cvss3NistCalculatorAnchorNA"})
m = re.search(r'([a-zA-Z]+)', temp.text)
severity = m.group(1)
responseDate = requests.get(urlDate)
mDate = re.search(r'<b>(\d+)</b>', responseDate.text)
date = mDate.group(1)
f.write(date + '\n')
f.write(cve + '\t')
f.write(severity + '\t')
cnt += 1
print('---', cnt, ':', cve, '---')
λ¨Όμ searchCVE.pyλ₯Ό μ€νμμΌμ CVE IDλ€ λΆν° λ°μμ€κ³ , κ·Έκ²λ€μ νλμ© μ½μ΄κ°λ©΄μ ν΄λΉ CVE IDμ μΌμ, μνλλ₯Ό κΈμ΄μ¨λ€. κ·Έλμ μ¬μ€ urlλ‘ λ§λ€μ΄μ request 보λ΄λ 건 dateλ severity ꡬν λ λλ²μ΄λ©΄ λΌμ λκ°μ§ url λ§λ€μ΄μ μμ² λ³΄λ΄κ³ μ μ νκ² νμ±ν΄μ μ 보 κΈμ΄μ¨ λ€μμ f.write()νλ€.