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
<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.
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
Mon attention s’est portée sur un Cookie appelé « loggedin » qui par défaut est a 0.
Et bien changeons le pour 1.
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 !
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