
Strumento di exploit per Apache 2.4.49-2.4.50 path traversal e RCE (CVE-2021-41773, CVE-2021-42013). Scansiona elenchi di URL, funziona con CGI e non-CGI, e automatizza lo sfruttamento.
Attacco di path traversal e RCE su Apache/2.4.49-2.4.50
-> Accetta una lista di URL
-> Funziona sia per CGI che non-CGI
-> Funziona per Apache/2.4.49 - 2.4.50
$ git clone https://github.com/CalfCrusher/Path-traversal-RCE-Apache-2.4.49-2.4.50-Exploit
$ cd Path-traversal-RCE-Apache-2.4.49-2.4.50-Exploit && pip3 install -r requirements.txt
$ python3 main.py urls.txt
Il 5 ottobre 2021 è stata rilasciata una CVE che descriveva un attacco di path traversal su Apache HTTP Server v2.4.49. Identificata con il numero CVE-2021-41773, è stata pubblicata con la seguente descrizione:
È stato riscontrato un difetto in una modifica apportata alla normalizzazione dei percorsi in Apache HTTP Server 2.4.49.
Un attaccante potrebbe utilizzare un attacco di path traversal per mappare gli URL a file al di fuori della document root prevista. Se i file al di fuori della document root non sono protetti da "require all denied", queste richieste possono avere successo.
Inoltre (sic) questo difetto potrebbe divulgare il codice sorgente di file interpretati come script CGI.
Questo problema è noto per essere sfruttato in natura. Questo problema riguarda solo Apache 2.4.49 e non le versioni precedenti.
Analizziamo questo e vediamo cosa significa realmente per noi:
Dalla prima parte, vediamo che una modifica recente ha esposto il difetto. La normalizzazione dei percorsi significa che trasformiamo un dato percorso in una forma canonica che il software possa comprendere, e quindi mapparlo al filesystem reale. Questo ci porta già a sospettare un attacco di path traversal che può potenzialmente leggere file non intenzionali.
La parte successiva conferma i nostri sospetti, e siamo in grado di utilizzare un attacco di path traversal per leggere risorse al di fuori dell'ambito previsto.
Vediamo che è necessaria una configurazione molto particolare. I file al di fuori della document root devono essere esplicitamente autorizzati. Questa non è la configurazione predefinita e dovrebbe quindi rendere questo exploit inutile contro una grande percentuale di host Apache (per fortuna).
La parte successiva parla di script CGI, il che ci porta erroneamente a credere che CGI possa dover essere abilitato affinché questo attacco funzioni o che il percorso coinvolga in qualche modo CGI.
Anche se la nostra configurazione non è direttamente influenzata da questo bug, vorremo comunque aggiornare le versioni vulnerabili il prima possibile.
Per riassumere, per sfruttare questa vulnerabilità, avremo bisogno di una configurazione molto insolita sul server di destinazione e di attaccare tramite un percorso specifico. Molte Correzioni Dopo...
Quindi Apache ha corretto questo bug e ha rilasciato la v2.4.50. Fine della storia, giusto? Beh, non proprio. Solo 2 giorni dopo, il 7 ottobre, è stata rilasciata una nuova CVE che citava la precedente. Questa menziona che la correzione per il precedente attacco di path traversal era incompleta, e potevamo ancora attraversare se il percorso in questione utilizzava una direttiva alias per mappare i suoi URL al filesystem. Alla CVE è stato assegnato il numero CVE-2021-42013, con la seguente descrizione:
È stato riscontrato che la correzione per CVE-2021-41773 in Apache HTTP Server 2.4.50 era insufficiente.
Un attaccante potrebbe utilizzare un attacco di path traversal per mappare gli URL a file al di fuori delle directory configurate da direttive simili ad Alias.
Se i file al di fuori di queste directory non sono protetti dalla consueta configurazione predefinita "require all denied", queste richieste possono avere successo.
Se gli script CGI sono anche abilitati per questi percorsi alias (sic), questo potrebbe consentire l'esecuzione remota di codice. Questo problema riguarda solo Apache 2.4.49 e Apache 2.4.50 e non le versioni precedenti.
Come prima, possiamo imparare alcune cose qui:
Sebbene il primo exploit fosse presumibilmente corretto, esiste un altro input per consentire il funzionamento del traversal (ricordalo per dopo).
Ora siamo limitati alle direttive di percorso alias.
Le directory al di fuori dei percorsi usuali richiedono ancora permessi espliciti.
Se CGI è abilitato, allora possiamo ottenere RCE oltre alla semplice divulgazione.
Tieni presente che non sono responsabile per eventuali danni e usi illegali. Non fare lo stupido!