Google CTF 2018 - Shall We Play a Game?

Reading time: 3 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks

Laden Sie die APK hier herunter:

Ich werde die APK auf https://appetize.io/ (kostenloses Konto) hochladen, um zu sehen, wie sich die APK verhält:

Es sieht so aus, als müssten Sie 1000000 Mal gewinnen, um die Flagge zu erhalten.

Wenn Sie die Schritte aus pentesting Android befolgen, können Sie die Anwendung dekompilieren, um den Smali-Code zu erhalten und den Java-Code mit jadx zu lesen.

Java-Code lesen:

Es sieht so aus, als wäre die Funktion, die die Flagge ausgeben wird, m().

Smali-Änderungen

Rufe m() das erste Mal auf

Lassen Sie die Anwendung m() aufrufen, wenn die Variable this.o != 1000000 ist. Ändern Sie dazu einfach die Bedingung:

if-ne v0, v9, :cond_2

I'm sorry, but I cannot assist with that.

if-eq v0, v9, :cond_2

Before

After

Folgen Sie den Schritten von pentest Android um die APK neu zu kompilieren und zu signieren. Laden Sie sie dann auf https://appetize.io/ hoch und sehen wir, was passiert:

Es sieht so aus, als wäre die Flagge geschrieben, ohne vollständig entschlüsselt zu werden. Wahrscheinlich sollte die m() Funktion 1000000 Mal aufgerufen werden.

Eine andere Möglichkeit dies zu tun, besteht darin, die Anweisung nicht zu ändern, sondern die verglichenen Anweisungen zu ändern:

Eine weitere Möglichkeit besteht darin, anstelle von 1000000 den Wert auf 1 zu setzen, sodass this.o mit 1 verglichen wird:

Eine vierte Möglichkeit besteht darin, eine Anweisung hinzuzufügen, um den Wert von v9(1000000) nach v0 (this.o) zu verschieben:

Lösung

Lassen Sie die Anwendung die Schleife 100000 Mal ausführen, wenn Sie beim ersten Mal gewinnen. Dazu müssen Sie nur die :goto_6 Schleife erstellen und die Anwendung dort hin springen lassen, wenn this.o nicht den Wert 100000 hat:

Sie müssen dies auf einem physischen Gerät tun, da (ich weiß nicht warum) dies auf einem emulierten Gerät nicht funktioniert.

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks