Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
natas_wargame [2012/11/09 15:19] TechBrunch |
natas_wargame [2017/04/09 15:33] (Version actuelle) |
||
---|---|---|---|
Ligne 419: | Ligne 419: | ||
</file> | </file> | ||
- | On modifie la valeur du cookie, on recharge la page et c'est dans la poche : | + | Ce qui nous donne : |
+ | |||
+ | <file> | ||
+ | ClVLIh4ASCsCBE8lAxMacFMOXTlTWxooFhRXJh4FGnBTVF4sFxFeLFMK | ||
+ | </file> | ||
+ | |||
+ | On modifie donc la valeur du cookie, on recharge la page et c'est dans la poche : | ||
>The password for natas12 is sh7DrWKtb8xw9PIMkh8OQsgno6iZnJQu | >The password for natas12 is sh7DrWKtb8xw9PIMkh8OQsgno6iZnJQu | ||
Ligne 425: | Ligne 431: | ||
===== Level 12 ===== | ===== Level 12 ===== | ||
+ | Code source du level 12 : | ||
<code php> | <code php> | ||
Ligne 478: | Ligne 485: | ||
</code> | </code> | ||
+ | On se retrouve devant un formulaire d'uploader une image au format JPEG. Le nom du fichier est randomisé grâce à la fonction genRandomString cependant l'extension est écrite en dure dans le formulaire. | ||
+ | |||
+ | On va donc créer un petit fichier php permettant d'afficher la clé vers le prochain niveau : | ||
<code php> | <code php> | ||
Ligne 484: | Ligne 494: | ||
?> | ?> | ||
</code> | </code> | ||
+ | |||
+ | On modifie l'extension en éditant le code source de la page et on upload le fichier. | ||
>The file upload/cprocjo1uj.php has been uploaded | >The file upload/cprocjo1uj.php has been uploaded | ||
+ | |||
+ | Le fichier est bien uplaodé avec l'extension php il ne reste plus qu'a naviguer à l'adresse du fichier pour voir apparaître la clé : | ||
<file> | <file> | ||
Ligne 493: | Ligne 507: | ||
===== Level 13 ===== | ===== Level 13 ===== | ||
+ | |||
+ | Le niveau 13 est le même que le niveau 12 à un détail près, un test est fait pour vérifier que le fichier uploadé est bien une image. | ||
<code php> | <code php> | ||
Ligne 500: | Ligne 516: | ||
</code> | </code> | ||
+ | Pour contourner cette protection j'ai créé une image d'1 pixel et j'ai collé à la suite mon script php. Le fichier est uploadé correctement et lorsque l'on charge l'image on se retrouve avec ceci : | ||
+ | |||
+ | <file> | ||
+ | ‰PNG IHDRwSÞsRGB®ÎégAMA±üa pHYsÃÃÇo¨dIDATWcø¹i`ö–ºOIEND®B`‚ sSkCeug1bdrYejzAaBhgwI3qJXDKqlgh | ||
+ | </file> | ||
+ | |||
+ | La clé étant : sSkCeug1bdrYejzAaBhgwI3qJXDKqlgh | ||
===== Level 14 ===== | ===== Level 14 ===== | ||
+ | |||
+ | Code source du level 14 : | ||
<code php> | <code php> | ||
Ligne 524: | Ligne 549: | ||
</code> | </code> | ||
- | >Executing query: SELECT * from users where username="a" and password="b" or "a"="a" | + | On se retrouve devant un code vulnérable au injection SQL car les paramètres Username et Password ne sont pas du tout filtrés. |
+ | |||
+ | Si on utiliser pour username a et comme password : a" or "a"="a : | ||
+ | |||
+ | >http://natas14.natas.labs.overthewire.org/?debug&username=a&password=a" or "a"="a | ||
+ | |||
+ | Le requête sera toujours vrai et donc elle retournera l'ensemble des comptes. | ||
+ | |||
+ | >Executing query: SELECT * from users where username="a" and password="a" or "a"="a" | ||
>Successful login! The password for natas15 is m2azll7JH6HS8Ay3SOjG3AGGlDGTJSTV | >Successful login! The password for natas15 is m2azll7JH6HS8Ay3SOjG3AGGlDGTJSTV | ||
+ | |||
===== Level 15 ===== | ===== Level 15 ===== | ||
+ | La solution sur [[http://www.techbrunch.fr/securite/wargame-natas-writeup-level-15/]] | ||
===== Level 16 ===== | ===== Level 16 ===== |