Update metadata and transcripts through end of July 2026
Refreshed episodes/hosts/comments/series from hpr.sql, and added official HPR transcripts for the 180 episodes aired since the last sync (hpr4516-hpr4695).
This commit is contained in:
@@ -0,0 +1,816 @@
|
||||
Episode: 4645
|
||||
Title: ZERO HOUR: FRIDAY AFTERNOON APK HACKING
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4645/hpr4645.mp3
|
||||
Transcribed: 2026-07-31 16:15:51 (official HPR transcript)
|
||||
|
||||
---
|
||||
|
||||
This is Hacker Public Radio Episode 4645, for 2026-05-22
|
||||
Today's show is entitled, "ZERO HOUR: FRIDAY AFTERNOON APK HACKING "
|
||||
The host is operat0r and the duration is 00:55:06
|
||||
The flag is Explicit, and the license is CC-BY-SA
|
||||
The summary is "APK VIBE HACKING LIKE A BOSS"
|
||||
Hello, welcome others. So to have a good video, it was top rating. Oh, so yeah, I'm on the idea of another
|
||||
Podcastor, I think I can't find who he was, but he's like, well, I'm working. So he just kind of was like
|
||||
Started doing some work and whatever he has is I can do audio based stuff for my work, but for, you know
|
||||
Security reasons I can't do video or I have to redact a heavily or whatever, and even then on if I miss something it might be
|
||||
The difference between me can
|
||||
Pired or whatever, so anyways, I could do this radio. So I
|
||||
Got this web app assessment or
|
||||
Android application assessment and I have a tool called jambree
|
||||
Um, that I use for most of my Android stuff. Cool worker was having problems. Maybe it was region locked or whatever
|
||||
With his account, so I'm trying to get his stuff set up
|
||||
So I offer to I guess help at the last minute
|
||||
And I realized it's an app I had already done and I could never get the SSL pinning to work. So
|
||||
Free history and when we started with Android it was bad like you could man in the middle of everything
|
||||
You know the traffic you could see all the traffic there's no route detection and there's no a daddy bugging
|
||||
You could just go in and open up burpsweet and do whatever
|
||||
Then they added like certificate pinning or things like that
|
||||
Basically they
|
||||
Started stacking on security layers now if you want to try to look at an app
|
||||
There's about 15 different security layers of hell. You have to go through to get it now
|
||||
When I was originally doing my testing
|
||||
I could never get the actual meat and potatoes back in production API to that work
|
||||
To see that traffic right um, but after
|
||||
Getting access to the cure or any
|
||||
Leading AI thing I had it run through
|
||||
And patch this footer app now the first time I tried to patch it it didn't work. I don't know why
|
||||
If I'd have been just like I got lucky because I reset things in the right order and I did the certificates right way or whatever
|
||||
But I'm pretty sure the way I did it last time
|
||||
It's basically the same exact way and I just maybe did got unlucky in the process of how I do this so
|
||||
Generally speaking you start out with my normal video on jamboree of how to get root and all that stuff
|
||||
And then there's a few other things you can kind of turn on that may or may not make much of a difference
|
||||
You can do things like freeze the google apps
|
||||
That might help kind of lessen the traffic
|
||||
But then you're gonna get a ton of errors if you actually installed the google abk
|
||||
With my setup here
|
||||
So you know
|
||||
Really want to do that either
|
||||
But it is an option for you to freeze and that's part of the
|
||||
It's a console based abk's button and my setup
|
||||
So usually first thing I do both I've got root. I'll turn off google play protect for whatever reason. I just
|
||||
Give me the woman fuzzies
|
||||
Now last night I was able to
|
||||
Have it walk through cheetah
|
||||
Which is a decompiler for android abk's and put about things
|
||||
It asked me to go through and do these things
|
||||
It's easier on a said to you have a command language and it's like oh there's a bat file
|
||||
This call like that's less analyzer and so I ran that
|
||||
Oh, for ever like the team minutes
|
||||
on a pi-end machine
|
||||
then
|
||||
um
|
||||
It failed out or whatever and I gave it to air message and it said it was missing some libraries or whatever and then it just said oh
|
||||
Well, I'm just gonna do this python
|
||||
And so instead of I think he gives the
|
||||
G-jorded dump the original image
|
||||
Um, which is a decpiler by that's basically free that everybody can use
|
||||
Um, which is pretty awesome
|
||||
I'm not make good at it, but it the AI walked me through
|
||||
Doing that and
|
||||
After some my human and hon
|
||||
I actually had to re
|
||||
Not only did I have to run the modded abk I had to
|
||||
run
|
||||
The base I have a base button is called free to anti-root
|
||||
So this is self-depending button and that just applies in normal
|
||||
No, this is all depending types of of attacks
|
||||
Our types of mitigations and
|
||||
I've got a really big file here
|
||||
Your you're you're getting me like a third of the way through this process now
|
||||
Once I was able to see that traffic going to the client
|
||||
To the production server
|
||||
Through this flutter has its own HTTP thing and it was a full SSL server and it doesn't listen to anything
|
||||
It doesn't listen to what the system starts
|
||||
For Android it doesn't listen to client inserts it doesn't listen to um
|
||||
It does not listen to
|
||||
Your
|
||||
The settings and the wifi so if you put the settings and the wifi to say use you know this
|
||||
This proxy that is your per suite so what you do back up when you're doing
|
||||
Testing with Android
|
||||
You have to proxy your traffic through something
|
||||
Usually that's per suite you've got things like kind of the weekend popular
|
||||
C.I.D.O
|
||||
But usually it's gonna be per suite and that's what builds into my tool and it's a whole process to get the certificate on there and everything and that
|
||||
My thing doesn't like three minutes from nothing to you know a full-bombly Android testing suite
|
||||
And like two four minutes so I've been doing this
|
||||
You know kind of creating this app for six years or so
|
||||
So anyways you have a rooted
|
||||
Full-Mur Android and I managed to get it to walk me through and I
|
||||
Modded the APK using
|
||||
Either just straight up Python after the debugger with
|
||||
G-Joy was run
|
||||
So G-Joy was just like an offline debugger. I think you can probably connect to an Android bridge while you're like
|
||||
Really doing like real time debugging it's probably possible, but I'm not really that
|
||||
Into it right now mom would be nice
|
||||
Well, if I could get the AI to help me with some of these like you know encrypted payloads or SSL pinning so SSL pinning
|
||||
Is
|
||||
You go to website you get that thing, you know, this is a secure site you get the little block rate
|
||||
Well, that's a lot of flies in the Android ecosystem also
|
||||
What we've added is like millions of layers of
|
||||
Obstraction from that whole process. So if you
|
||||
Install your own client cert you could get man in the middle then they said okay only system certs can see certain things
|
||||
So then people put system certs on the on the devices by rooting them and then they had like anti root
|
||||
So that's like okay your your phones rooted so you can't do anything and then
|
||||
This is okay fine. We're gonna do anti root root anti anti root
|
||||
So now when you run a thing you have an anti root thing that like detects like magics and
|
||||
There's other things that just look up like root
|
||||
Google wallet and you'll find the nightmare that is trying to get
|
||||
Like Google wallet to work on your phone
|
||||
Um, do you do not want to run any of these software packages um they're not open source
|
||||
They are just weird binaries like where certificates that come from I don't know where
|
||||
So I would not run any of this these APKs you get off of thing unless it's on my list and even that APK button on my list is
|
||||
Probably not the best thing to be doing with a personal account. So all my accounts are tested counts
|
||||
I don't use any personal
|
||||
Accounts for any of my Android testing so it doesn't really matter what I do
|
||||
But if you do this on your own personal phone
|
||||
You do not want to be like put an APK's on there and then it like ask it for root
|
||||
So anyways, I've installed I have the one
|
||||
have a reasonable finding of
|
||||
You can request the
|
||||
Location of another user by their user ID now problem with that is that if I can ADB debug or
|
||||
Get traffic on your local network or pull the track up traffic from your phone
|
||||
I can get your ID and if I can get your ID and I can tell where you are so if you're using this app
|
||||
And maybe I manage to socialize near you or get you to plug in something or go to a website
|
||||
Or I think even actually if you share your
|
||||
You're yourself to someone like a link
|
||||
I think it might be hidden in there too, but I'm not gonna test that so anyways
|
||||
So now unfortunately I have two of these I'm running. I have the main one which has got all SSL
|
||||
Shannians and it's all working and everybody's happy
|
||||
Which
|
||||
I don't know if that's actually accurate right now. Yeah, there was an error taking a bad ability of vehicles
|
||||
So I think it's it's broken again. It seems to only work for a minute and then like some cookie times out
|
||||
So I have to rerun the yeah, we can't receive details at this time. It's like some kind of caching issue or something
|
||||
So what I usually do with apps if I'm testing him a if they don't work I checked the ADB debug
|
||||
And it'll say stuff like blah blah blah check failed or like some kind of service check failed or something
|
||||
Basically that's man in the mid preventing man in the middle stuff. So right now I've actually killed the app
|
||||
I don't want to reset the setting because I already have the app logged in
|
||||
So I've killed the app and
|
||||
To explain what this app is it's like a location sharing app and
|
||||
Other than that is
|
||||
Not really important to know what it is
|
||||
It's a location sharing app for like
|
||||
Different
|
||||
For like family services it possibly
|
||||
That helps
|
||||
I don't even know what they're trying to do but that's one of the things that it does you you can share your location
|
||||
You can say hey, you know, I'm I'm at a Costco
|
||||
You know, I'll take you to track your kids you can use it
|
||||
Um, whatever
|
||||
There's billions of other things out there. It doesn't matter better like custodia or whatever
|
||||
If you want to track your kids this app is I don't know what it's trying to be so anyways
|
||||
So now I have it. I've killed the task. I'm going to relaunch the task with my original
|
||||
Which now I'm confused. I don't remember which one of these is which
|
||||
And two jambis the one's got more traffic and the logs is the one that I want to do so I'll do run a free to anti-rude
|
||||
a facility pinning
|
||||
I've got another task running in the background. It's completely unrelated to anything else
|
||||
Light saber fonts the lightsaber AI font generator. It's been running for like an hour
|
||||
So it's kind of interesting
|
||||
Um, so it says we're starting that app
|
||||
But I don't see the list it's coming for me
|
||||
Um
|
||||
Starting free to with the tambourine and to man the little yeah
|
||||
Oh, because I do not have root. I can't
|
||||
This is the wrong. No, this is the right one. It's the right one
|
||||
Yeah, this is the original one. So why doesn't poison the sword?
|
||||
Click to button again
|
||||
Ah, there's more than one emulator installed so now
|
||||
Unfortunately, I have to
|
||||
Trying to get my ID while I'm still hot
|
||||
So I'm running a normal no root no anything client right now has a client to and
|
||||
Somewhere in here hopefully
|
||||
There's a folder that has my
|
||||
Client to ID and so I have two jambories from here running right now
|
||||
The problem with that setup is that it doesn't know which device to connect to it
|
||||
It's a failed to connect to the device because there's no mobile
|
||||
There's two devices. It's trying to connect like an array so it doesn't connect to both
|
||||
So I have my
|
||||
I did ran a db log tech because I realized that the user ID is in the logs
|
||||
of a db log cat now a db log cat is probably shooting you have different version
|
||||
Like a error version so you can say all the way from warning and up or only critical enough
|
||||
That helps with the size because this this file is basically a trace file. It is there's so much information in these files
|
||||
Like things like location data and things like that
|
||||
If you can plug in the phone you can get all tons of interesting information
|
||||
So what I found is the user on this where ID is in the thing and it is also the user for it's
|
||||
UNC web path through the actual API
|
||||
Which is kind of interesting because you can't see anything to the prod API without
|
||||
decrypting the flutter thing, but if you use this a db
|
||||
Log cat which you can get on your actual phone you can run a db log cat on your phone and just export the results and then
|
||||
Shipping to AI it's a hey, was this is anything weird running on my phone. I have troubleshoot and debug
|
||||
All kinds of issues with a db bug a db debug or a db log cat that I was not able to troubleshoot within the other software or any other
|
||||
scripts or mainly looking at stuff
|
||||
Because this thing is just like a dumpster fire of nightmares so anyways
|
||||
I'm using crep to crep for user underscore ID in my log cat
|
||||
Log cat file now we have use right d0 no use right d0 use right d0 use right d code SQL a constraint now
|
||||
A little strange
|
||||
That I don't have a user ID right
|
||||
Is my thing now if you go back to here it says blah blah blah on command faults
|
||||
On handle exception client exception D
|
||||
Isn't not adding events C blah blah user ID so I think it was just like how failure that I happened to catch
|
||||
When doing the to get the user ID so I'm gonna have to try to trigger right
|
||||
on at the try to trigger
|
||||
Somewhere I have my output file
|
||||
I'm gonna find
|
||||
See that's not even the right
|
||||
That's not even the right
|
||||
80 b
|
||||
Has here to block a real okay so money this man
|
||||
To do the log cat again and I'm hoping
|
||||
I can get the thing now. I know the only thing I've really done on the app is share
|
||||
So I did like what I say
|
||||
I was like share my thing
|
||||
It's a bit strange and white members send it in by link
|
||||
You know copy or maybe like
|
||||
Send it in by link
|
||||
Okay, so hopefully now there is a
|
||||
These are ID of not
|
||||
And well, I don't see anything so we're in client to entail
|
||||
look at
|
||||
Make sure there's actually stuff going on here
|
||||
Yeah, we're getting we're good stuff
|
||||
So you can say tell if it's crap
|
||||
So you can't what have her had a reason
|
||||
80 b log cat doesn't like you using windows pipes
|
||||
Try to do stuff so I'm using tail of a walk cat in segment which is a kind of
|
||||
Unix like horrible thing
|
||||
You don't even know subsystems for Linux to run
|
||||
So when you just need you know not by listing and you can basically get Linux on your journal
|
||||
Can't do x windows? I don't think there might be some crazy s way to do it
|
||||
So GPS coordinates seem to work here you can pick your GPS
|
||||
coordinate still so
|
||||
Especially and now when I originally was testing this app it wouldn't let me do are they anything?
|
||||
I'm gonna say I'm in the middle of the Atlantic
|
||||
Or where should I say it's close to the guy?
|
||||
Selection
|
||||
Oh, unfortunately no, segregation
|
||||
Points that you save all up here here
|
||||
I thought there was a way to like I'll save point. Yeah, so you can save your points. Let's say
|
||||
Selection
|
||||
Close out here
|
||||
And then I can say like go to my location
|
||||
This is saying somewhere
|
||||
I can't really tell where this is
|
||||
I
|
||||
Don't how do you zoom out with
|
||||
My touch
|
||||
I see this
|
||||
Entch
|
||||
I'll pick you can zoom out
|
||||
I mean, I can just to open source intelligence maybe
|
||||
And ask a I
|
||||
So from my memory now as I don't know or this
|
||||
I tried to deny where is this
|
||||
I'm not gonna be surprised, but it's gonna be terrifying if I can take a japan or I can take an image and then ask a I where it is
|
||||
That's kind of interesting
|
||||
Research interested
|
||||
Fairfell if you call it for me that is not where I am or I'm actually supposed to be
|
||||
So we're gonna
|
||||
Oh, I think we broke that no, it's a different type
|
||||
Is this the one I want to pick by GPS, but yes, I was a yeah, see though we can't reach here in that work is the other de-original app like
|
||||
That's like a times out after a while or a while
|
||||
All right, so I think I'm gonna kill the app and restart it
|
||||
Um, let me go to permissions because when you reset everything the permissions get all reset
|
||||
So I'm I allow everything again
|
||||
contacts I'll allow about some media
|
||||
A lot of microphone
|
||||
I usually allow everything at that the beginning but then if I have the issues I have to remember to go back and say
|
||||
Who I turn on microphone and then I want to call the microphone and I pooped out because you know
|
||||
I didn't know where it was yeah, so now we're in Puerto Rico
|
||||
Real flat the narrow so I can take a screenshot. This is a finding right it's like again
|
||||
When I couldn't do any debugging
|
||||
I had to say I had to be creative so what I do as an attacker right if I wanted to
|
||||
If I have an app that tracks my location
|
||||
Okay, so we've written well we told somebody to write that up. I'm to help somebody at the last minute
|
||||
So I told them I'll do the test
|
||||
See you to the reporting because I don't feel like doing it
|
||||
Um, I'm actually supposed to be leaving for a thing. Well, the thing is still going in circles
|
||||
No idea what it's doing
|
||||
Arthur author. Um, this is our our
|
||||
Profi believe style X for AI prompt
|
||||
That is now doubled in size
|
||||
Which is fine around the characters that is but
|
||||
30,000 that's way too many
|
||||
So first small model at least
|
||||
So what we're doing here is like I'll three check point full convert EV before harness implementation from status
|
||||
I know it's doing this whole like
|
||||
Hero does the requirements design task
|
||||
So it like does proper like STLC kind of strategy proper STLC stuff even though he'll use an example way
|
||||
Half the way there
|
||||
So we've got our first finding
|
||||
With the geolocation spoofing is a thing
|
||||
Um, I'm still have not seen a good for
|
||||
Whatever
|
||||
So I'm a little confused as to why I can't see that
|
||||
iteration
|
||||
Worst case scenario. I have to do the whole clone the whole thing
|
||||
That means having two per principle it's instances
|
||||
editing the per suite
|
||||
The jambory it's a minute isn't I? I really don't want to get so I'm trying to find
|
||||
Oh wait make this crash enough to like you know
|
||||
Crash enough to
|
||||
Show me my location
|
||||
so
|
||||
But that's interesting that you can add by license plate
|
||||
Um, do you think that would be a finding if I can look up?
|
||||
Somebody's license plate
|
||||
So
|
||||
The tax case would be if I can get somebody's been or do you have a vehicle or stuff
|
||||
Just by their license plate number right
|
||||
Then that means I get like a free registration stuff so I'm going to
|
||||
I don't know my license plate number. I might lose you for a second. I'm going to go downstairs and take a picture of my license plate
|
||||
See
|
||||
I've got roughly
|
||||
All right, so you might have lost anything
|
||||
But um
|
||||
So I've got my license plate here. I actually don't have a
|
||||
Association with images because I got rid of all the Google apps
|
||||
Most of the Google apps on its full because I got tired of nagging
|
||||
So I'm gonna put in my notes
|
||||
My license plate
|
||||
CG
|
||||
CG
|
||||
Jay
|
||||
Last year's year one
|
||||
Idea he is is it maybe I can look up
|
||||
license plates for free right
|
||||
As maybe we're doing this. I'm going to just make up a head details manually
|
||||
I pick a car
|
||||
Billy
|
||||
Um, yeah, maybe I'll be able to refine on the trip and that's good
|
||||
Yes, that's a burglow
|
||||
Color optional all-wheel drive
|
||||
Okay, Vin is optional. Let's get for now
|
||||
At a name
|
||||
Hey, hey, head it
|
||||
Okay, I turned to garage. I still don't see any
|
||||
errors in here um
|
||||
I mean what you can do is kind of do something like a
|
||||
Then like kill the internet and try to cause an issue
|
||||
Maybe that'll help
|
||||
I do like a
|
||||
Break the internet kind of scenario
|
||||
Yeah, see I've clicked something and it's like lagging out now
|
||||
But I think I've disconnected the internet so it's like a you have no live listing
|
||||
It's great a new live listing
|
||||
Would you like to list like it sell other people's cars right?
|
||||
We're going to turn out kind of hilarious um serve center
|
||||
Sure whatever
|
||||
So this is like a they're also trying to do like a car do like help your
|
||||
So anyways, it's like a money thing
|
||||
So I'm going to go back
|
||||
I'm still trying to call some kind of air
|
||||
Um the problem with this is a view
|
||||
There and it seems to still be working despite
|
||||
Kind of put it in airplane mode
|
||||
Maybe airplane mode. Oh, it's still in their mobile
|
||||
Mobile data
|
||||
Mobile connection
|
||||
Which is like you know whatever
|
||||
Still don't see
|
||||
We're still doing a logcat
|
||||
In five six that's the new one
|
||||
Um, so like the internet's not working and we're not getting anything
|
||||
Nothing is crashing so
|
||||
I don't know what to do
|
||||
I'm turning shit
|
||||
I'm going back off turn Wi-Fi back on
|
||||
So
|
||||
I still don't really know how to get my idea without doing the whole
|
||||
You know
|
||||
The whole entire thing now I could sign in with it
|
||||
I could they do have virtualization with something where you can basically
|
||||
Run an app and then you run another app and then that app allows you to run two of the same apps at the same time
|
||||
It's does like some weird
|
||||
Jailing thing um, I think it's a you think I don't think you need
|
||||
No, I guess you probably need route to do something crazy
|
||||
The idea being that you could test same map on same phone
|
||||
Two different
|
||||
So I don't know I'm still I still left this thing open and running
|
||||
Maybe I'll get lucky and I'll just cough and grab out
|
||||
So
|
||||
Okay, so we've got
|
||||
Our first finding
|
||||
Oh, let's tag the guy
|
||||
Um
|
||||
The
|
||||
In a bad enough time I'd be able to do other stuff but don't um
|
||||
So I've turned the internet back on on the normal app. I've kind of given up on
|
||||
Getting that user ID
|
||||
And I might just have to
|
||||
Use another account
|
||||
And like
|
||||
Right
|
||||
And try again, so
|
||||
I kill this so I'm on the original one with all the main and the middle stuff
|
||||
I'm going to
|
||||
Do ADB
|
||||
Even actually gonna turn off
|
||||
This old one because this is
|
||||
Not super helpful. I use this shut down button
|
||||
On chambering because that ensures that I think ADB gets killed after
|
||||
Emulator because sometimes ADB likes to keep running
|
||||
It's sometimes if ADB servers already running it doesn't want to attach just else
|
||||
So a lot of times I my in my scripting. I always kill ADB and then start it back up
|
||||
Because it like runs almost as a service and it's really annoying
|
||||
It gets hung up on itself a lot
|
||||
It might have gotten better or maybe that was just my weird circumstances when I was doing all my testing
|
||||
So now I said it's said it's trying to shut down, but it doesn't know which one to shut down because there's two
|
||||
So that's kind of a bug with my own
|
||||
deal
|
||||
It's like device emulator bash one of four space emulator dash five is not enough
|
||||
All right, so now we just have one
|
||||
Nope, I sat down there on one
|
||||
That's okay
|
||||
That is okay. That what can actually walk you through
|
||||
Since there's only one device. I'll hit the shut down button over here
|
||||
And it both shut down buttons. Why not shut down all the things?
|
||||
All right, so
|
||||
I'll give you not give me an idea to tell you once you do get rid of an advice
|
||||
When you do normal Wi-Fi thing, it doesn't always follow it now the only way to force all traffic through
|
||||
The proxy with specific port is to do IP tables and Linux if you do that that is network layer
|
||||
Shannon, there's no
|
||||
Cheating out of that scene. I have emulator that's in a state of
|
||||
It's on, but I can't press any buttons. I can't
|
||||
Quit there's no
|
||||
There's no way to stop it
|
||||
So the emulator gets dies at some times so then I have to do oh because I'm piping the logcat probably
|
||||
I don't know
|
||||
It's really weird that that file is not in here anywhere
|
||||
Use right zero use right zero so yeah, I don't know
|
||||
Anyways, both art crapped out my original is this guy so I'm gonna start him back up
|
||||
The star AVD button will start the virtual image
|
||||
Now I think as today I'm using I'm Windows not the there's parts of acceleration
|
||||
So if you have emulator you pretty much have to have acceleration world's nothing gonna work
|
||||
Because you need acceleration
|
||||
It's gonna be really slow like on
|
||||
You can't really test it's so slow now if you would want to you know if you want to do like a quick test
|
||||
Something like take you 30 minutes is gonna end up picking you an hour sure go ahead do that
|
||||
But I'm going to Windows accelerator thing that's what I'm using now you can use until Haxium which is the pressure
|
||||
And I've also okay to seek you for it so it might break other stuff. I don't know
|
||||
I got rid of the pixel launcher
|
||||
I'm using some
|
||||
Pirated pixel launcher that's got like ads in the middle of the launcher that whatever it appears
|
||||
So what we have is a nice clean image
|
||||
We need to run our route so we're gonna go back here
|
||||
We're not on client to anymore
|
||||
We're on savory client one and then we're gonna do ADB shell
|
||||
I didn't notice that the ad is not smart enough to know to run
|
||||
escalated commands inside this is like it's like run this is run this and it'll fix everything and then you go to run it
|
||||
Yeah, you don't have route to run like ADB shell has route that default yet like past the parameter of
|
||||
280B shell so it's like double escaping
|
||||
So I just SSHN right sorry
|
||||
ADB shell and and then I type whatever commands it wants me to type
|
||||
So now I've typed IP tables
|
||||
for all four four three and 80 to go to the actual IP address of my server and not the routed net
|
||||
So there's an internal net number
|
||||
That you
|
||||
attached to
|
||||
Sorry, by default
|
||||
Most emulators and virtual things use a net
|
||||
Rest your installation because it doesn't require local admin
|
||||
When you use bridge that means you can basically talk directly to the card so you're on a 192 network
|
||||
You start if emulator or virtual machine then you're still on a 192 network
|
||||
Traditionally they all use net because net doesn't require local admin
|
||||
good
|
||||
You'll have to expose your internet and this is early to the
|
||||
The emulator or the virtual machine
|
||||
So we have our traffic going to we have our birb speed running with
|
||||
Actually ignoring everything else except for my target API URL
|
||||
That's a client's production
|
||||
And so we're we're looking at that we're looking at that information and what we want to do is
|
||||
For all its purposes, I don't really care about this account
|
||||
I do have the original ID
|
||||
That is attached to this account which is attached by four numbers so unfortunately I'm going to uninstall
|
||||
Or actually
|
||||
Keep this running
|
||||
For stop it is not running
|
||||
Then I'm doing clear storage
|
||||
So now the app is like I've never run before it's brand new now unfortunately at the double SSL
|
||||
Depending not only it's 300 meg
|
||||
Hacked up version of the app I compiled it lets me as this help in I have to still as this will put everything else because sometimes get error messages
|
||||
So I'm using my basic
|
||||
Here is a salty peter
|
||||
And I'm starting the app again now and instead of putting the phone number I use for this account
|
||||
I'm going to use the phone number for my
|
||||
Other account because I have the ID to the first account
|
||||
I just need the ID to some other account
|
||||
So I'm going to go to Google voice and apparently that's also a finding too if you can use a
|
||||
fake
|
||||
phone numbers fake GPS
|
||||
Just take everything right. I have seen banks start to this more while they force it force you
|
||||
force
|
||||
They enforce
|
||||
This is a oh the number number padworks. You have the reboot wants to get the number pad to work at least the keyboard to work
|
||||
um
|
||||
I have found that
|
||||
That bank apps it's stuff are starting to block Google voice or any voice providers
|
||||
One out of maybe
|
||||
Ten well if there's like 10 secure apps you want to self-care or something like that
|
||||
I would say like three or four of them have
|
||||
some kind of issue
|
||||
Around that
|
||||
So anyways, I put my code after using my armcree work
|
||||
Or yeah, that's my armcree work one and on all connected in it's all happy and I'm doing all the permissions again
|
||||
Allow all now
|
||||
When you do allow permissions and apps you're giving it access to more data
|
||||
Now if you can minimize the access the app has then you can narrow the scope or
|
||||
Calls less problems or errors
|
||||
What you don't want is to
|
||||
Have this scope maxed out and just have much of noise
|
||||
Or when you give it access to everything that allows it to like a new rate more things
|
||||
It caused more things to come
|
||||
So if you have access to your camera and it tries to
|
||||
Figure out where they have virtual camera or not it will fail so like these face ID apps all kind of stuff
|
||||
Oh wait, we have a user ID here cool. So we have a second user ID
|
||||
So this is
|
||||
So user
|
||||
ID
|
||||
One is this is my original one, I think
|
||||
Yeah, here's my original user ID
|
||||
User
|
||||
ID
|
||||
User ID
|
||||
Two is
|
||||
Oh no, we have to do the same user IDs
|
||||
How that work oh
|
||||
No, they are not the same
|
||||
They are very close
|
||||
No, they're not do the same they're the same
|
||||
Son of a bitch. All right, so I've screwed something up here
|
||||
Is a user ID bound to the phone's
|
||||
Mac address or something
|
||||
So I locked out and logged in as as a different person and I still got the same user ID
|
||||
Which sucks I'm the same user ID if I install yeah, I'm the same user as our idea if I install it
|
||||
As whatever so I
|
||||
Do not I'm not gonna blow this away and I don't want to call it either
|
||||
Right oh
|
||||
I need a second user ID but that involves
|
||||
Somehow convincing this app to give me
|
||||
I completely knew user ID it's probably bound to like
|
||||
some specific kind of
|
||||
Internal ID of the phone, you know
|
||||
When it gets to originally generate it
|
||||
That's a lock and figure
|
||||
Because I essentially logged in as a different person and think I have the same user ID
|
||||
So that doesn't make any sense
|
||||
Because yeah, I used the
|
||||
This number did I type the wrong number oh?
|
||||
I type the wrong number that's wrong. I'm not even I'm I'm not I'm I'm not I'm please
|
||||
I didn't even notice I was typing my own
|
||||
Number so just kidding
|
||||
That's why we do it live
|
||||
Okay, so we go back here for stuff
|
||||
Clear those permissions
|
||||
Run the app again through
|
||||
This is healthy pinner
|
||||
Yeah, while it was talking I didn't realize
|
||||
That I was typing the same exact phone number
|
||||
Like wow how else does it know because I haven't logged in anything I'm just running that app and it's like
|
||||
You know
|
||||
Sign in the phone
|
||||
That's so I had to it must
|
||||
I do use this this number for
|
||||
Other testing so I don't want to tell you guys
|
||||
And like have my phone you flutter or something
|
||||
All right, we got our endpoint
|
||||
No, hopefully
|
||||
Burp so wheat has
|
||||
Us a new user ID somewhere
|
||||
I use the search button and then I say auto scroll scroll
|
||||
So I should be able to just go up a few times
|
||||
And see the user ID at some point
|
||||
Jesus, are you serious
|
||||
All right, maybe here to
|
||||
Oh
|
||||
User reverse ID there's user's ID and user ID
|
||||
There enough, well actually, let's take that because that might be useful
|
||||
Kind of any strings that help me find stuff
|
||||
I can find useful so it's actually user IDs
|
||||
So user ID one user like God is the same user ID it is
|
||||
It's not a bitch. It still is
|
||||
Because the same user ID no ID
|
||||
External ID
|
||||
Let's just go here and say
|
||||
These are
|
||||
Underster
|
||||
ID S
|
||||
User ID
|
||||
Click rejects say we're not going to get a case sensitive
|
||||
User ID ID
|
||||
Yeah, that's it
|
||||
I think this is right
|
||||
80 is the new one
|
||||
80 the old one is 8c
|
||||
Strange they know
|
||||
It's then entropy is pretty much there
|
||||
It doesn't look sequential is what we're looking for yeah, see here's our here's our c's and then we squeeze switch over
|
||||
At three
|
||||
We went for 159 to 301 which is
|
||||
Well 159
|
||||
The 301
|
||||
Three minutes later, so once we we did the that we got to do ID so we've confirmed that that's a thing
|
||||
We'll go back to repeater and hopefully yeah user IDs
|
||||
So here's AC
|
||||
So I'm authenticated as a different user and I can request
|
||||
The location of any other user ID
|
||||
Boom
|
||||
So
|
||||
Confirmed
|
||||
Um
|
||||
So now we have at least two findings that are new and it is
|
||||
On my head the answer one call here's the thing
|
||||
We don't need all this we can
|
||||
Copy as curl
|
||||
Um
|
||||
So
|
||||
Yeah
|
||||
So
|
||||
roof you can off as
|
||||
Any user and get any user ID
|
||||
GPS
|
||||
GPS location
|
||||
All right, so that's one um that I saw in there
|
||||
Thought of um because you know even
|
||||
I mean there I would be that user IDs somewhere in this uh
|
||||
This file so I'm gonna go grip user
|
||||
There's user underscore ID and user ID S
|
||||
Oh either or I could also
|
||||
Just look for the string of the user so that might be in a different type of vlog
|
||||
Or parameter
|
||||
Which in this case yeah app user ID user ID
|
||||
So 80 it's definitely in there so there's a bunch of
|
||||
There's a bunch of parameters here so we have app user ID
|
||||
So there's 10,000 different ways to track user ID I guess so app user ID and then we have user ID with no underscore
|
||||
Then we have app user ID again
|
||||
App user ID app user ID
|
||||
So we actually want to do
|
||||
When we're looking
|
||||
Where do
|
||||
prep one aside
|
||||
I
|
||||
E is there a jacks like e-grap is just an alias which
|
||||
Kind of interesting so we're doing user ID. I don't want to ignore the
|
||||
Isaac nor a case
|
||||
We want to keep the case cuz
|
||||
I don't want other types of cookies or things coming in so here's our three
|
||||
I just happen to pick the one user ID that wasn't in anywhere else except for
|
||||
My bank
|
||||
Go for your um so here's our red jacks
|
||||
Which is app user ID user ID and user underscore ID
|
||||
In this thing so we can say tail
|
||||
I'm not sure it's going on here
|
||||
I'm siglin it gets locked in frozen sometimes
|
||||
So kind of sucks. I have to um
|
||||
See
|
||||
No idea where I
|
||||
Let it find out where
|
||||
See each and every client to
|
||||
um
|
||||
Grap
|
||||
See
|
||||
And the file we're looking about user ID and I just screwed that up
|
||||
Let's screw that up again
|
||||
Trying to go go to faster
|
||||
um logcat
|
||||
log
|
||||
have tons
|
||||
So we can say tail minus f
|
||||
logcat log
|
||||
And the same grip
|
||||
strategy and if you do tail f and you don't
|
||||
Have it running you can slowly do a dash in and say like the left 10,000 lines
|
||||
And so now if you start writing out to that file again you started back up or you use that whatever
|
||||
It'll it'll it'll give us a file but since
|
||||
We've moved on and all we all we care about it is getting two different user IDs we are moving on so
|
||||
I'm going to go back to the proxy
|
||||
I've got a bunch of stuff in here but I want to only match
|
||||
The almost said the words the clients API and points
|
||||
There's just a lot of the same thing going over like
|
||||
Lookup command happens hundreds of thousands of times all the time
|
||||
It's kind of interesting so we're gonna send this to um since
|
||||
One problem I had before is I use burpsuit free for jambree by default. Oh, come with that is um
|
||||
No problem with that is
|
||||
Can I do request the end response?
|
||||
Quest
|
||||
Response okay
|
||||
I might even just send this request over to
|
||||
Active scanner that's not that's part of
|
||||
The
|
||||
part of the pro is you get active scanner and then
|
||||
If you pay for credits
|
||||
They're relatively cheap. I only use them when I find like really weird stuff that I can't figure out
|
||||
Which is becoming more and more
|
||||
nowadays
|
||||
So yeah
|
||||
Bice tokens all kind of stuff active user type adult
|
||||
That's kind of interesting. I did your different flags
|
||||
I mean nothing looks super interesting
|
||||
I'm sorting by URL so I don't have the same
|
||||
things
|
||||
This looks like a calendar that
|
||||
You can create calendar events user current page
|
||||
user IT that bandage. Okay, so here's the thing. I'm I'm like looking at someone's
|
||||
Management calendar event start time blah blah page here a page size zero
|
||||
Current page total pages so let me add a calendar event
|
||||
Do I
|
||||
Reset it again
|
||||
I have no idea what user I am I get anywhere which is really matter
|
||||
I'm so I'm doing like a gathering and I'm going to create an event
|
||||
Then I want to call it
|
||||
F F F F F F F F
|
||||
Or I like to do I'm random so Kiki Q 1 2 3
|
||||
No location. We're just going to do a date time
|
||||
And then
|
||||
In date and time
|
||||
And I got about 40 minutes
|
||||
I I don't know what else I need to add
|
||||
I guess I need to add an event location
|
||||
Growing a dot sandclare
|
||||
All right
|
||||
Creative event. I want to scroll it down here and color
|
||||
When I highlight stuff
|
||||
Are you I used to be real bad about like wiping out stuff
|
||||
When we make this purple I now I just leave it open until the computer starts to die
|
||||
Oops we couldn't create your event. Please try again
|
||||
So
|
||||
kind of weird I
|
||||
May 10 through
|
||||
I don't be in
|
||||
This kind of weird let's go back to the drawing board here
|
||||
Oh, I sorted these wrong anyways
|
||||
So here's our calendar thing we got an okay response
|
||||
And then we got whatever booked
|
||||
Worked fine
|
||||
What do I need to do
|
||||
All right, so I guess I got to go here in a second
|
||||
I'm gonna look at the calendar and see
|
||||
What that looks like I'm highlight the purple and I'm gonna say see calendar
|
||||
and
|
||||
I don't know if that really gave me anything
|
||||
Oh, here we go
|
||||
I scrolled in say anything so this is an event
|
||||
Now the thing about this is is I need to switch to the other user to see if I can see some other users
|
||||
So
|
||||
what we're looking for is our
|
||||
Our target
|
||||
Our target user sentry trace
|
||||
It would be nice to like
|
||||
Take this yeah, that's all user ID so I can look at somebody else's
|
||||
Somebody else's calendar so user ID
|
||||
So I'm using user ID AD now so this is the original request
|
||||
Center repeater
|
||||
Now I'm gonna use
|
||||
Not AD but my other ID which is this F8
|
||||
Let's see if I can read somebody else's calendar
|
||||
Boom goes a diamond for a one-on-authorized day
|
||||
So that means that I can't be logged in as anybody and just see
|
||||
Somebody's arbitrarily calendar right
|
||||
That's that's good that's a good thing
|
||||
So I can go back
|
||||
Do you want to do this and I can say
|
||||
Repeat now I get a 200 okay, so I take it the AI and say
|
||||
Oh, it's the F8
|
||||
Let's see AT
|
||||
Okay, yeah, so I'm picking the response and requests I need to there and I'll say
|
||||
I have a different
|
||||
User ID user
|
||||
On easy actual ID
|
||||
To test with
|
||||
Find any
|
||||
Arbeck
|
||||
Or
|
||||
Top
|
||||
Or Sands top
|
||||
10 test
|
||||
4 each of the Sands
|
||||
Top 10
|
||||
Is that say the goal? The goal is to
|
||||
Find findings for this app using with
|
||||
For what is that but with the
|
||||
That by testing or
|
||||
Testing for the top
|
||||
Sands
|
||||
Issues
|
||||
So I'm just going to enter and go
|
||||
So you know we have three findings one safety PS ones
|
||||
Look up anybody's ID and then one-to-test would be get a user get the license plate
|
||||
Let's see if I can read other peoples
|
||||
Of in numbers and stuff based on their license plate because if they have access to the data
|
||||
They're going to pull it in
|
||||
But maybe not you know so if I can add my license plate and get back my own information
|
||||
Or add by even then number I mean I guess I don't know
|
||||
Anyways, appreciate it take it easy
|
||||
Sometimes these APIs will give you back a bunch of information
|
||||
But you only want the name so like oh put in your social security number and to get your name or put in your name
|
||||
Your social security number and these databases have tons of information and maybe they cough back whatever
|
||||
But the client only takes back you know the name and it's like we put in your social security number and it returned all this other extra information
|
||||
But because the client doesn't need that or an or doesn't want to like worry about
|
||||
They're like oh well, we're just going to drop the you know credit card number or sensitive field and just take the whatever field
|
||||
Well, you know that happens a lot where
|
||||
You put an API request back and you get like a whole bunch of extra information you didn't really need or want
|
||||
Kind of least privileged issue anyways take it easy got to go later
|
||||
You have been listening to the Hacker Public Radio podcast, at hackerpublicradio.org.
|
||||
Today's show was contributed by a HPR listener like yourself.
|
||||
If you ever thought of recording a podcast, then visit the HPR site to find out how easy it really is.
|
||||
Hosting for HPR has been kindly provided by anhonesthost.com, the Internet Archive, rsync.net, and the HPR Community Content Delivery Network.
|
||||
Unless otherwise stated, today's show is released under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.
|
||||
Reference in New Issue
Block a user