Google CTF 2018 - Shall We Play a Game?
Reading time: 3 minutes
tip
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
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.
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 cannot assist with that.
if-eq v0, v9, :cond_2
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é.
tip
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
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.