OverTheWire – Natas Wargame

Après avoir jeté un coup d’œil à Krypton et donc un peu plus à la crypto revenons donc à du hacking !
Ce Wargame se base sur des failles Web, ce qui nous permettras de voir les bases du web !

Level 0 : Basic

On arrive sur une première page nous disant  » You can find the password for the next level on this page. » Ca démarre mal ! On ne pourra pas avoir le mot de passe !
Et bien soit ! Regardons le code source !
<h1>
natas0</h1>
<pre></pre>
<div>
You can find the password for the next level on this page.

<!--The password for natas1 is gtVrDuiDfck831PqWsLEZy5gyDz1clto --></div>

Un classique pour débutant ! Le flag est en commentaire donc non affiché.

Level 1 : Basic ++

On nous accueil cette fois en nous disant que l’on est capable de trouver le mot de passe.
Bon tentons donc la même technique que précédemment.
Ah ! Catastrophe ! Une pop up nous indique que le clic droit est désactivé.
Ce qui ne nous posera pas de problèmes.
On peut accéder au menu en tapant « view-source » devant l’url dans chrome/chromium.
Ou utiliser la combinaison Ctrl+Shift+i pour acceder au menu développeur.
Dans tout les cas on se retrouve face au code source :

<h1>
natas1</h1>
<div>
You can find the password for the
next level on this page, but rightclicking has been blocked!

<!--The password for natas2 is ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi --></div>

Encore le même esprit qu’avant, mais avec une « difficulté » supplémentaire.

Level 2 : Directory

On commence à avoir la bonne habitude maintenant, regardons le code source.

<h1>
natas2</h1>
<pre></pre>
<div>
There is nothing on this page
<img src="http://shoxx-world.blogspot.com/files/pixel.png" alt="" /></div>

Rien de vraiment explicite cette fois ci, cependant, la présence d’une image est à remarquer.
Interessons nous un peu plus à cette dernière.
Elle s’affiche bien sur notre ecran, mais comme son nom l’indique ce n’est qu’un simple pixel, rien à faire avec. Par contre on peux voir que cette image est contenue dans un dossier. Tentons de remonter dans ce dossier.

Voila ce qu’on appelle un accès non protégé à un dossier. On trouve donc un deuxième fichier dans ce dossier, allons voir ce que contient users.txt !
natas3:sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14

Ce qui finalement n’est toujours pas très compliqué !

Level 3 : Robots.txt
Cette fois ci la source nous dit  » Meme google ne trouverais pas !  »
Google ? Le plus puissant des moteurs de recherches ne trouverais pas ?
Et pourquoi ? Qu’est ce qui empercherais big-brother de tout savoir ?

Pour cela il faut avoir quelques petites connaissances en développement Web.
Lorsque vous mettez un site en ligne vous n’avez pas forcement envie de référencer toute les pages, par exemples les pages d’administrations que vous garderez pour vous.
Et tout ceci peut être fait grâce a un petit fichier appelé robots.txt

Pour y accéder rien de plus simple il suffit de taper http://nomdevotresite.com/robots.txt

Lorsque l’on fait cette manipulation sur cette épreuve on obtient les informations suivantes :

User-agent: *
Disallow: /s3cr3t/

2-3 Notions d’anglais et vous aurez compris que Disallow empêche google d’indexer ce dossier.
C’est qu’il y a des choses à cacher dedans ! Allons donc voir !

Bingo ! Un nouveau fichier users.txt contenant le flag !

natas4:Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ

Level 4 : C’est dans la tete !

Ce challenge commence en nous disant que l’on arrive d’une mauvaise page ( « http://natas4.natas.labs.overthewire.org/index.php » ).

Mais comment le site est il capable de savoir d’ou l’on arrive ?

Et bien grâce à un Header HTTP.

Et pour modifier ces Headers rien de mieux que de sortir Burp !

Je ne vous ferez pas un cours sur Burp non plus, mais il est assez aisé d’intercepter et de modifier des Headers. Celui qui nous interesse est donc « Referer » Qu’il suffit de remplacer comme nous l’indique le challenge par : « http://natas5.natas.labs.overthewire.org/ »

Ce qui nous donnera ensuite :
Access granted. The password for natas5 is iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq

Level 5 : Cookies

Cette fois on nous dit que l’on est pas loggé.. et il n’y a rien dans le code source, regardons encore les Headers.
Mon attention s’est portée sur un Cookie appelé « loggedin » qui par défaut est a 0.
Et bien changeons le pour 1.
Ce qui nous identifie donc et nous donne le flag : aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1
 

Level 6 : Include v1

Nous voici face à notre premier Input ! Dans le code source on récupère l’indice suivant :

include "includes/secret.inc";

    if(array_key_exists("submit", $_POST)) {
        if($secret == $_POST['secret']) {
        print "Access granted. The password for natas7 is ";
    } else {
        print "Wrong secret";
    }
    }

Le serveur va donc verifier ce que l’on lui envoi en POST, avec une variable « $secret » qui n’est pas définie dans ce petit bout de code. Par contre on peut remarquer l’inclusion « includes/secret.inc »
Un nom pas trop flagrant ! Allons voir ce que contient ce fichier :

<?
$secret = « FOEIUWGHFEEUHOFUOIU »;
?>

Nous avons donc la valeur de $secret, envoyons lui donc cette chaine et il nous donne gentillement le flag :  7z3hEENjQtflzgnT29q7wAvMNfZdh0i9

Level 7 : Get This Include !

Nous venons donc de voir le principe d’une faille include, qui nous permet donc de lire arbitrairement un fichier sur le serveur. Dans ce challenge c’est encore une fois le même principe, mais cette fois grace a une variable GET non protégée. Lorsque l’on se balade sur le site on peut remarquer que l’adresse varie de « index.php?page=home » à « index.php?page=about ». On peut donc se demander si cette variable que nous contrôlons est sécurisée ou non. Et pour cela rien de mieux que tester !
Si vous êtes habitué du monde Unix vous savez donc que pour remonter d’un fichier en arrière on utilise  » ../ « . Les serveurs sont bâtit sur le même principe, on peut donc accéder à un fichier situé dans le répertoire précédant ect.
Ce challenge est encore une fois guidé, par un indice situé dans le code HTML.
 » <!– hint: password for webuser natas8 is in /etc/natas_webpass/natas8 –> « 
Faisons donc ce que l’on nous demande !  » index.php?page=/etc/natas_webpass/natas8 « 
Et ce qui va nous donner ensuite le fameux flag nous permettant de passer au niveau suivant :
DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe

Level 8 : Un peu de code

Ce challenge nous demande de trouver un mot de passe, pour ceci nous avons accès au code source qui vérifie le passe :


$encodedSecret = "3d3d516343746d4d6d6c315669563362";

function encodeSecret($secret) {
return bin2hex(strrev(base64_encode($secret)));
}

Nous allons donc reverser cette fonction afin de retrouver le clair de $encodedSecret :


function decodeSecret($secret){
return base64_decode(strrev(hex2bin($secret)));
}

Ce qui nous donne : oubWYf2kBq
On valide très rapidement cette épreuve et on obtient le pass pour le niveau suivant : W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *