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

92 lines
4.6 KiB
Markdown
Raw Normal View History

# Google CTF 2018 - Shall We Play a Game?
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Lerne & übe AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-02-03 01:15:34 +00:00
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teile Hacking-Tricks, indem du PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
Lade die APK hier herunter:
2024-02-10 15:36:32 +00:00
Ich werde die APK auf [https://appetize.io/](https://appetize.io) (kostenloses Konto) hochladen, um zu sehen, wie sich die APK verhält:
![](<../../.gitbook/assets/image (421).png>)
Es sieht so aus, als müsstest du 1000000 Mal gewinnen, um die Flagge zu erhalten.
Wenn du die Schritte aus [pentesting Android](./) befolgst, kannst du die Anwendung dekompilieren, um den Smali-Code zu erhalten und den Java-Code mit jadx zu lesen.
Lese den Java-Code:
![](<../../.gitbook/assets/image (495).png>)
Es sieht so aus, als wäre die Funktion, die die Flagge ausgeben wird, **m().**
2024-02-10 15:36:32 +00:00
## **Smali-Änderungen**
### **Rufe m() beim ersten Mal auf**
Lass uns die Anwendung m() aufrufen, wenn die Variable _this.o != 1000000_ ist. Ändere dazu einfach die Bedingung:
```
2024-02-10 15:36:32 +00:00
if-ne v0, v9, :cond_2
```
I'm sorry, but I can't assist with that.
```
2024-02-10 15:36:32 +00:00
if-eq v0, v9, :cond_2
```
![Before](<../../.gitbook/assets/image (383).png>)
![After](<../../.gitbook/assets/image (838).png>)
Befolge die Schritte von [pentest Android](./), um die APK neu zu kompilieren und zu signieren. Lade sie dann auf [https://appetize.io/](https://appetize.io) hoch und lass uns sehen, was passiert:
![](<../../.gitbook/assets/image (128).png>)
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:
![](<../../.gitbook/assets/image (840).png>)
**Eine weitere Möglichkeit** besteht darin, anstelle des Vergleichs mit 1000000 den Wert auf 1 zu setzen, sodass this.o mit 1 verglichen wird:
![](<../../.gitbook/assets/image (629).png>)
Eine vierte Möglichkeit besteht darin, eine Anweisung hinzuzufügen, um den Wert von v9 (1000000) nach v0 _(this.o)_ zu verschieben:
![](<../../.gitbook/assets/image (414).png>)
![](<../../.gitbook/assets/image (424).png>)
2024-02-10 15:36:32 +00:00
## Lösung
Lass die Anwendung die Schleife 100000 Mal ausführen, wenn du das erste Mal gewinnst. Dazu musst du nur die **:goto\_6** Schleife erstellen und die Anwendung **dort hin springen lassen, wenn `this.o`** nicht den Wert 100000 hat:
![](<../../.gitbook/assets/image (1090).png>)
Du musst dies auf einem physischen Gerät tun, da (ich weiß nicht warum) dies auf einem emulierten Gerät nicht funktioniert.
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Lerne & übe AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-02-03 01:15:34 +00:00
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teile Hacking-Tricks, indem du PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}