5.8 KiB
Google CTF 2018 - Czy zagramy w grę?
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
Pobierz APK tutaj:
Zamierzam przesłać APK na https://appetize.io/ (darmowe konto), aby zobaczyć, jak zachowuje się apk:
Wygląda na to, że musisz wygrać 1000000 razy, aby zdobyć flagę.
Postępując zgodnie z krokami z pentestowania Androida, możesz zdekompilować aplikację, aby uzyskać kod smali i odczytać kod Java za pomocą jadx.
Odczytanie kodu Java:
Wygląda na to, że funkcja, która wyświetli flagę, to m().
Zmiany w kodzie Smali
Wywołanie m() po raz pierwszy
Załóżmy, że aplikacja wywołuje m(), jeśli zmienna this.o != 1000000, aby to zrobić, po prostu zmień warunek:
if-ne v0, v9, :cond_2
/hive/hacktricks/mobile-pentesting/android-app-pentesting/google-ctf-2018-shall-we-play-a-game.md
Google CTF 2018 - Shall we play a game?
Introduction
In this challenge, we are given an Android application called "Shall we play a game?" and our goal is to find the flag. The application has a login screen where we need to enter a username and password. After successful login, we are presented with a game screen.
Analyzing the APK
To start our analysis, we can extract the APK file from the Android device using tools like adb
or by directly downloading it from the Google Play Store. Once we have the APK file, we can use tools like apktool
or dex2jar
to decompile it and analyze the code.
Reverse Engineering the Code
After decompiling the APK, we can start reverse engineering the code to understand its functionality. We can look for interesting classes, methods, and strings that might contain useful information.
Finding the Flag
In this challenge, the flag is hidden within the code. We can search for the string "CTF{" to find the flag. Once we find the flag, we can extract it and submit it to complete the challenge.
Conclusion
In this challenge, we learned how to analyze and reverse engineer an Android application to find hidden information like flags. This skill is essential for mobile application penetration testing and can help us identify vulnerabilities and secure our applications.
if-eq v0, v9, :cond_2
Postępuj zgodnie z krokami pentestu Androida, aby ponownie skompilować i podpisać plik APK. Następnie, przesłać go na https://appetize.io/ i zobaczyć, co się stanie:
Wygląda na to, że flaga jest zapisana bez pełnego odszyfrowania. Prawdopodobnie funkcja m() powinna być wywołana 1000000 razy.
Inny sposób na to jest nie zmieniać instrukcji, ale zmienić instrukcje porównujące:
Inny sposób to zamiast porównywać z 1000000, ustawić wartość na 1, aby this.o był porównywany z 1:
Czwarty sposób to dodanie instrukcji przenoszącej wartość v9(1000000) do v0 (this.o):
Rozwiązanie
Spowoduj, że aplikacja wykona pętlę 100000 razy, gdy wygrasz pierwszy raz. Aby to zrobić, wystarczy utworzyć pętlę :goto_6 i sprawić, że aplikacja skoczy tam, jeśli this.o
nie ma wartości 100000:
Musisz to zrobić na fizycznym urządzeniu, ponieważ (nie wiem dlaczego) nie działa to na urządzeniu wirtualnym.
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.