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 ===== | ||