keyboard_arrow_up

title: Writeup Hacky'Nov 0x01
date: May 01, 2022
tags: writeups web hackynov



Introduction

Le 01/04/2022, j'ai eu le plaisir d'organiser l'événement Hacky'Nov. Dans le cadre de cet événement, j'ai réalisé 4 challenges. Il y avait deux challenges web, et deux challenges de programmation. Je ne détaillerai ici que les challenges web.

Pour plus d'informations sur l'événement : https://hackynov.fr

Time To Plane

challenge image time to plane de hacky'nov

Lorsqu’on arrive sur la page on tombe sur un système de supervision d’avion. Dessus on peut indiquer le numéro du vol que l’on veut superviser.

image time to plane hacky'nov python

On comprend vite avec le message indiqué qu’il faut faire planter le système de supervision. Pour cela on commence à tester les caractères qu’on peut utiliser.

image supervision hacky'nov python no error

On voit que les lettres ne sont pas reconnues et que quelques caractères spéciaux sont reconnus comme une attaque.

image supervision hacky'nov python  error

Cependant on voit que lorsqu’on met deux paranthèses il n’y a pas d’erreur.

image supervision hacky'nov python test payload

En regardant les headers du site on voit que c’est une application flask qui tourne, donc du python.

flask header python challenge

On peut se dire que la "nouvelle technique pour évaluer la pertinance des numéros d’avion" est surement une fonction eval. On essaie donc d’injecter du code.

payload = time.sleep(10)

inject code

RECOAPP

challenge hacky'nov recoapp web

Voici la page sur laquelle nous tombons.

challenge hacky'nov recoapp web page

En traduisant et jouant un peu avec l’application on comprend que c’est un outil qui permet de reconnaitre les mots dans une image. L’outil permet de déterminer si le mot est réputé comme bon ou mauvais. Pour tester on prend un document word sur lequel on écrit :

test
test 1
test2
azertyuiop

challenge hacky'nov recoapp test comportement

En répétant l’opération on se rend compte que l’outil ne met jamais la même “notation” à notre mot. On peut considérer que c’est fait totalement aléatoirement. On utilise alors une liste de caractères spéciaux pour détecter un comportement anormal.

Exemple :

&
'
#
||
(
)
@
_
^
)

challenge hacky'nov recoapp test comportement payload

On voit que des caractères sont bien interprétés mais pourtant pas affichés. On voit aussi que seulement 4 lignes sont présentes.

On test alors de chainer un caractère spécial avec une commande pour voir le résultat. avec le payload suivant : &ls

challenge hacky'nov recoapp injection de commande

Il nous manque plus qu’à affichier le résultat en envoyant une image contenant le texte &cat flag.

challenge hacky'nov recoapp injection de commande and get flag

Source

Vous pouvez retrouver les sources de mes challenges ici : https://github.com/LOLOLEKIK/hackynov2022