5.2 KiB
Google CTF 2018 - Shall We Play a Game?
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS-familie, ons versameling eksklusiewe NFT's
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Laai die APK hier af:
Ek gaan die APK oplaai na https://appetize.io/ (gratis rekening) om te sien hoe die apk optree:
Dit lyk asof jy 1000000 keer moet wen om die vlag te kry.
Deur die stappe van pentesting Android te volg, kan jy die aansoek dekompilieer om die smali-kode te kry en die Java-kode met jadx te lees.
Lees die Java-kode:
Dit lyk asof die funksie wat die vlag gaan druk m(). is.
Smali-veranderinge
Roep m() die eerste keer aan
Laat ons die aansoek m() laat aanroep as die veranderlike this.o != 1000000 is om dit te doen, verander net die voorwaarde:
if-ne v0, v9, :cond_2
Google CTF 2018: Shall we play a game?
Android Application Analysis
The application is a game where the user needs to guess a number between 0 and 100. Upon analyzing the APK file, we found that the app uses Firebase for analytics and crash reporting. The main activity is com.google.ctf.shallweplayagame.MainActivity
.
Vulnerability
The vulnerability lies in the fact that the app sends the guessed number to the server without any validation. This allows us to intercept the traffic and manipulate the response to reveal the flag.
Exploitation
- Use a proxy tool like Burp Suite to intercept the traffic.
- Play the game and intercept the request where the guessed number is sent.
- Modify the response to get the flag.
By exploiting this vulnerability, we can easily retrieve the flag and complete the challenge.
if-eq v0, v9, :cond_2
Volg die stappe van pentest Android om die APK te herkompilieer en te onderteken. Laai dit dan op na https://appetize.io/ en kyk wat gebeur:
Dit lyk asof die vlag geskryf is sonder om heeltemal ontsluit te word. Waarskynlik moet die m() funksie 1000000 keer geroep word.
'n Ander manier om dit te doen is om nie die instruksie te verander nie, maar om die vergelykingsinstruksies te verander:
'n Ander manier is om in plaas daarvan om met 1000000 te vergelyk, die waarde na 1 te stel sodat this.o met 1 vergelyk word:
'n Vierde manier is om 'n instruksie by te voeg om die waarde van v9(1000000) na v0 (this.o) te skuif:
Oplossing
Maak die aansoek hardloop die lus 100000 keer as jy die eerste keer wen. Om dit te doen, hoef jy net die :goto_6 lus te skep en die aansoek daarheen te laat spring as this.o
nie die waarde 100000 het nie:
Jy moet dit binne 'n fisiese toestel doen aangesien (ek weet nie waarom nie) dit nie werk in 'n geëmuleerde toestel nie.
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS-familie, ons versameling eksklusiewe NFT's
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.