mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 17:16:10 +00:00
117 lines
5.6 KiB
Markdown
117 lines
5.6 KiB
Markdown
# Google CTF 2018 - Vamos Jogar um Jogo?
|
|
|
|
<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>
|
|
|
|
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)
|
|
* 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-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) do github.
|
|
|
|
</details>
|
|
|
|
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:
|
|
|
|
![](<../../.gitbook/assets/image (46).png>)
|
|
|
|
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 jadx.
|
|
|
|
Lendo o código java:
|
|
|
|
![](<../../.gitbook/assets/image (47).png>)
|
|
|
|
Parece que a função que vai imprimir a flag é **m().**
|
|
|
|
## **Alterações no Smali**
|
|
|
|
### **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
|
|
|
|
In this challenge, we are provided with an Android application named "Shall we play a game?". The goal is to find the flag by analyzing the app's behavior and identifying any vulnerabilities that can be exploited.
|
|
|
|
## Reconnaissance
|
|
|
|
### APK Analysis
|
|
|
|
Upon decompiling the APK file, we can analyze the source code to understand how the app functions and identify potential security flaws.
|
|
|
|
### Static Analysis
|
|
|
|
By reviewing the code and resources, we can look for hard-coded secrets, insecure data storage, or any other weaknesses that could lead to a security compromise.
|
|
|
|
### Dynamic Analysis
|
|
|
|
Running the app in a controlled environment allows us to observe its runtime behavior, network communication, and interactions with the device to uncover any exploitable vulnerabilities.
|
|
|
|
## Exploitation
|
|
|
|
Once we have identified a potential vulnerability, we can proceed with exploiting it to gain unauthorized access, escalate privileges, or manipulate the app's behavior to reveal the flag.
|
|
|
|
## Conclusion
|
|
|
|
By combining thorough reconnaissance, careful analysis, and precise exploitation techniques, we can successfully uncover the flag in the "Shall we play a game?" Android app.
|
|
```
|
|
if-eq v0, v9, :cond_2
|
|
```
|
|
![Antes](<../../.gitbook/assets/image (48).png>)
|
|
|
|
![Depois](<../../.gitbook/assets/image (49).png>)
|
|
|
|
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:
|
|
|
|
![](<../../.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:
|
|
|
|
![](<../../.gitbook/assets/image (57).png>)
|
|
|
|
Uma quarta maneira é adicionar uma instrução para mover o valor de v9 (1000000) para v0 _(this.o)_:
|
|
|
|
![](<../../.gitbook/assets/image (58).png>)
|
|
|
|
![](<../../.gitbook/assets/image (52).png>)
|
|
|
|
## 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>)
|
|
|
|
Você precisa fazer isso em um dispositivo físico, pois (não sei por que) isso não funciona em um dispositivo emulado.
|
|
|
|
<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>
|
|
|
|
Outras maneiras 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 [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou nos siga no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **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).
|
|
|
|
</details>
|