DUCTF'23: Faraday
This was a pretty interesting OSINT challenge which made use of GSMA’s Location API, to determine a target’s location using their phone number. It verifies if the device location is within a requested area based on their network activity (cell tower triangulation, GPS and Wi-Fi hotspot data)
The Challenge
The link leads to a RESTful API site. Toggling POST, we are greeted by this:
Explanation
To pinpoint the target’s location, we had to make queries to the API using Faraday’s phone number, location, and the radius.
Solution
Clicking on try it out
on FastAPI, I was able to send the POST requests directly on the website. The initial (default) request body is:
The first thing I did was to input Faraday’s phone number, +61491578888
into the phoneNumber field. I then used Google Maps to zoom into Victoria. I clicked into the middle of it to retrieve the latitude and longitude of it, inputting into the request. Additionally, I used the largest possible radius allowed to check if I was on track.
Unfortunately, my result was FALSE
.
Knowing that it was not within 200km of the centre of Victoria, I used Google Map’s measure distance
feature to go around 200km East.
And I got a true!
Knowing that the point is within 200km of this point, I reduced the radius until I got a FALSE
with this coordinates. At around the radius of 40km, it returned false. Which is a good thing! It means that the location is around 50km of that point. I then moved around by changing the coordinates, using trial and error to find the point. Eventually, I got to a really close one:
Typing the coordinates into Google Maps, I got this:
Which gave us our flag, DUCTF{Milawa}
!