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

112 lines
5.4 KiB
Markdown
Raw Normal View History

# Google CTF 2018 - Vamos Jogar um Jogo?
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
2023-06-06 18:56:34 +00:00
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
2022-04-28 16:01:33 +00:00
</details>
2023-06-06 18:56:34 +00:00
Baixe o APK aqui:
Vou fazer upload do APK para [https://appetize.io/](https://appetize.io) (conta gratuita) para ver como o apk está se comportando:
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (46).png>)
2023-06-06 18:56:34 +00:00
Parece que você precisa ganhar 1000000 vezes para obter a flag.
Seguindo os passos de [pentesting Android](./) você pode descompilar o aplicativo para obter o código smali e ler o código Java usando o jadx.
Lendo o código java:
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (47).png>)
2023-06-06 18:56:34 +00:00
Parece que a função que vai imprimir a flag é **m().**
2023-06-06 18:56:34 +00:00
## **Alterações no Smali**
2023-06-06 18:56:34 +00:00
### **Chamando m() pela primeira vez**
Vamos fazer o aplicativo chamar m() se a variável _this.o != 1000000_ para fazer isso, basta mudar a condição:
```
if-ne v0, v9, :cond_2
```
# Google CTF 2018: Shall we play a game?
---
## Introduction
This challenge was part of the Google CTF 2018 and focused on Android application pentesting. The goal was to find the flag by analyzing the APK file provided.
## Challenge Description
The challenge involved an Android application where the user had to play a game to find the flag. The APK file was provided for analysis.
## Solution
1. **Decompiling the APK**: The first step was to decompile the APK file using tools like JADX or apktool to analyze the source code.
2. **Analyzing the Source Code**: By going through the decompiled source code, we could identify the logic of the game and any potential vulnerabilities.
3. **Identifying the Flag**: After understanding the game logic, we could locate where the flag was being generated or stored.
4. **Extracting the Flag**: Once the flag location was identified, we could extract it from the source code to obtain the flag.
By following these steps, we could successfully find the flag and complete the challenge.
```
if-eq v0, v9, :cond_2
```
2023-06-06 18:56:34 +00:00
![Antes](<../../.gitbook/assets/image (48).png>)
2023-06-06 18:56:34 +00:00
![Depois](<../../.gitbook/assets/image (49).png>)
2023-06-06 18:56:34 +00:00
Siga os passos do [pentest Android](./) para recompilar e assinar o APK. Em seguida, faça o upload para [https://appetize.io/](https://appetize.io) e veja o que acontece:
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (50).png>)
Parece que a flag está escrita sem estar completamente descriptografada. Provavelmente a função m() deve ser chamada 1000000 vezes.
**Outra maneira** de fazer isso é não alterar a instrução, mas mudar as instruções comparadas:
![](<../../.gitbook/assets/image (55).png>)
**Uma outra maneira** é, em vez de comparar com 1000000, definir o valor como 1 para que this.o seja comparado com 1:
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (57).png>)
2023-06-06 18:56:34 +00:00
Uma quarta maneira é adicionar uma instrução para mover o valor de v9 (1000000) para v0 _(this.o)_:
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (58).png>)
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (52).png>)
2023-06-06 18:56:34 +00:00
## Solução
Faça o aplicativo executar o loop 100000 vezes quando você vencer pela primeira vez. Para fazer isso, você só precisa criar o loop **:goto\_6** e fazer o aplicativo **pular para lá se `this.o`** não tiver o valor 100000\:
![](<../../.gitbook/assets/image (59).png>)
2023-06-06 18:56:34 +00:00
Você precisa fazer isso em um dispositivo físico, pois (não sei por que) isso não funciona em um dispositivo emulado.
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Aprenda a hackear a AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
2022-04-28 16:01:33 +00:00
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>