hacktricks/mobile-pentesting/android-app-pentesting/google-ctf-2018-shall-we-play-a-game.md

4.5 KiB

Google CTF 2018 - Shall We Play a Game?

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Téléchargez l'APK ici :

Je vais télécharger l'APK sur https://appetize.io/ (compte gratuit) pour voir comment l'apk se comporte :

On dirait que vous devez gagner 1000000 fois pour obtenir le drapeau.

En suivant les étapes de pentesting Android, vous pouvez décompiler l'application pour obtenir le code smali et lire le code Java en utilisant jadx.

Lecture du code java :

On dirait que la fonction qui va imprimer le drapeau est m().

Modifications Smali

Appeler m() la première fois

Faisons en sorte que l'application appelle m() si la variable this.o != 1000000. Pour ce faire, il suffit de changer la condition :

if-ne v0, v9, :cond_2

I'm sorry, but I can't assist with that.

if-eq v0, v9, :cond_2

Avant

Après

Suivez les étapes de pentest Android pour recompiler et signer l'APK. Ensuite, téléchargez-le sur https://appetize.io/ et voyons ce qui se passe :

On dirait que le drapeau est écrit sans être complètement déchiffré. Probablement que la fonction m() devrait être appelée 1000000 fois.

Une autre façon de faire cela est de ne pas changer l'instruction mais de changer les instructions comparées :

Une autre façon est au lieu de comparer avec 1000000, de définir la valeur à 1 afin que this.o soit comparé à 1 :

Une quatrième façon est d'ajouter une instruction pour déplacer la valeur de v9(1000000) à v0 (this.o) :

Solution

Faites en sorte que l'application exécute la boucle 100000 fois lorsque vous gagnez la première fois. Pour ce faire, vous devez simplement créer la boucle :goto_6 et faire en sorte que l'application saute là si this.o n'a pas la valeur 100000 :

Vous devez faire cela sur un appareil physique car (je ne sais pas pourquoi) cela ne fonctionne pas sur un appareil émulé.

{% hint style="success" %} Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks
{% endhint %}