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

114 lines
10 KiB
Markdown
Raw Normal View History

2023-11-06 08:38:02 +00:00
# Google CTF 2018 - क्या हम एक खेल खेलें?
2022-04-28 16:01:33 +00:00
<details>
2023-11-06 08:38:02 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks क्लाउड ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 ट्विटर 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ ट्विच 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 यूट्यूब 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें और PRs सबमिट करें** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **को**
2022-04-28 16:01:33 +00:00
</details>
2023-11-06 08:38:02 +00:00
यहां APK डाउनलोड करें:
2023-11-06 08:38:02 +00:00
मैं [https://appetize.io/](https://appetize.io) (मुफ्त खाता) पर APK अपलोड करने जा रहा हूँ ताकि देख सकूँ कि APK का व्यवहार कैसा है:
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (46).png>)
2023-11-06 08:38:02 +00:00
ऐसा लगता है कि आपको फ़्लैग प्राप्त करने के लिए 1000000 बार जीतना होगा।
2023-11-06 08:38:02 +00:00
[Android पेंटेस्टिंग](./) के चरणों का पालन करके आप एप्लिकेशन को डिकंपाइल करके स्माली कोड प्राप्त कर सकते हैं और jadx का उपयोग करके जावा कोड पढ़ सकते हैं।
2023-11-06 08:38:02 +00:00
जावा कोड पढ़ना:
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (47).png>)
2023-11-06 08:38:02 +00:00
ऐसा लगता है कि फ़्लैग प्रिंट करने वाला फ़ंक्शन **m()** है।
2023-11-06 08:38:02 +00:00
## **स्माली बदलाव**
2023-11-06 08:38:02 +00:00
### **पहली बार m() को कॉल करें**
2023-11-06 08:38:02 +00:00
हम ऐप्लिकेशन को m() को कॉल करने के लिए बनाएंगे अगर चर _this.o != 1000000_ है तो, बस शर्त को बदलें:
```
2023-11-06 08:38:02 +00:00
if-ne v0, v9, :cond_2
```
2023-11-06 08:38:02 +00:00
/hive/hacktricks/mobile-pentesting/android-app-pentesting/google-ctf-2018-shall-we-play-a-game.md
# Shall we play a game?
This challenge is about a simple Android app that asks the user to play a game. The app has a button that, when clicked, sends a request to the server with the user's input. The server then responds with a message indicating whether the user has won or lost the game.
## Analyzing the APK
To start, we need to analyze the APK file of the app. We can use tools like JADX or APKTool to decompile the APK and obtain the source code.
Once we have the source code, we can look for any vulnerabilities or interesting functions that could be exploited. In this case, we find a function called `sendRequest()` that is responsible for sending the user's input to the server.
## Intercepting the request
2023-11-06 08:38:02 +00:00
To intercept the request sent by the app, we can use a tool like Burp Suite. By configuring our device to use a proxy, we can intercept and modify the requests made by the app.
2023-11-06 08:38:02 +00:00
Once we have intercepted the request, we can modify the parameters to see how the server responds. In this case, we can modify the `input` parameter to test different scenarios.
## Exploiting the vulnerability
After analyzing the server's response, we can identify a vulnerability in the app. The server's response contains a flag that indicates whether the user has won or lost the game. However, the flag is not properly validated on the client side.
By modifying the server's response, we can change the flag to indicate that the user has won the game, regardless of their input. This can be done by intercepting the response and modifying the `flag` parameter.
## Conclusion
In this challenge, we were able to exploit a vulnerability in an Android app by intercepting and modifying the requests and responses. By changing the flag in the server's response, we were able to win the game regardless of our input.
This highlights the importance of properly validating and securing user input in mobile apps to prevent vulnerabilities like this.
```
2023-11-06 08:38:02 +00:00
if-eq v0, v9, :cond_2
```
2022-12-24 19:34:46 +00:00
![Before](<../../.gitbook/assets/image (48).png>)
2022-12-24 19:34:46 +00:00
![After](<../../.gitbook/assets/image (49).png>)
2023-11-06 08:38:02 +00:00
[Android पेंटेस्ट](./) के चरणों का पालन करें ताकि APK को पुनः कंपाइल और साइन किया जा सके। फिर, इसे [https://appetize.io/](https://appetize.io) पर अपलोड करें और देखें कि क्या होता है:
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (50).png>)
2023-11-06 08:38:02 +00:00
ऐसा लगता है कि फ्लैग पूरी तरह से डिक्रिप्ट किए बिना लिखा गया है। शायद m() फ़ंक्शन को 1000000 बार कॉल किया जाना चाहिए।
2023-11-06 08:38:02 +00:00
इसे करने का **दूसरा तरीका** यह है कि निर्देश को बदलने के बजाय तुलना की निर्देशों को बदलें:
![](<../../.gitbook/assets/image (55).png>)
2023-11-06 08:38:02 +00:00
**एक और तरीका** है कि 1000000 के साथ तुलना करने के बजाय, मान को 1 सेट करें ताकि this.o 1 के साथ तुलना की जाए:
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (57).png>)
2023-11-06 08:38:02 +00:00
चौथा तरीका है कि v9(1000000) के मान को 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-11-06 08:38:02 +00:00
## समाधान
2023-11-06 08:38:02 +00:00
जब आप पहली बार जीतते हैं, ऐप्लिकेशन को दौर 100000 बार चलाएं। इसके लिए, आपको केवल **:goto\_6** लूप बनाना होगा और ऐप्लिकेशन को वहां **जाने के लिए जाने दें अगर \_this.o**\_\*\* का मान 100000 नहीं है।
![](<../../.gitbook/assets/image (59).png>)
2023-11-06 08:38:02 +00:00
आपको इसे एक भौतिक उपकरण के अंदर करना होगा क्योंकि (मुझे नहीं पता क्यों) इसे एक एम्युलेटेड उपकरण में काम नहीं करता है।
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण देखने** या **HackTricks को PDF में डाउनलोड करने** की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह।
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का** **अनुसरण करें।**
* **अपने हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स रेपो (https://github.com/carlospolop/hacktricks) और हैकट्रिक्स-क्लाउड रेपो (https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके।
2022-04-28 16:01:33 +00:00
</details>