← Back to writeups
Chine Zhao
WRITEUP OSINT GEOINT

Introduction

This writeup will present my solving method for the third OSINT challenge of the Midnight CTF. I hope you'll enjoy it! This challenge gave me the most trouble — I followed leads that weren't precise enough, which ended up leading me astray.

Building to identify

The goal of the challenge is to precisely locate a photo of a building. According to the statement, Lin Xiayu was kidnapped at this location.

Initial Research

To begin, I download the image. The name Capture_decran_2026-03-12_194349.png tells me there won't be any metadata. So I run a reverse image search with Google Images:

Google Images search

No conclusive results with Google Images. So I move on to Tineye:

Tineye search

Same negative result. This doesn't surprise me too much, since this image comes from a building in China. Non-Chinese tools are therefore sometimes less powerful in our case. So I head to the Chinese Google, Baidu. More precisely graph.baidu.com.

We get about sixty results:

Baidu results

However, none of them is the place we're looking for.

I then tried to analyze the image to get clues about the location.

First of all, the challenge title "Chine Zhao" seems to be an important clue. Zhao was one of the seven states that made up ancient China around 400 BC. And Handan was its capital.

Handan search

We find the city of Handan on the map. Handan was the city of the first challenge.

Base photo

I then analyze the details of the original image. We can see a statue in front of the building:

Here are the important details noted while observing the photo:

baidu ai

After a translation and a few minutes of photo editing, I get this summary:

photoshop results map

I then tried to search for HuiHui Déstockage and the other keywords in Baidu Maps, but the search wasn't precise enough and I only got false positives.

results map 1

So I tried something else: 邯郸市 家和萬事興

I search the city of Handan for the following proverb: "When the family is united, everything prospers."

results map 2

I get 10 results, but after analyzing each of them, I couldn't locate the photo. I spent more than 5 hours comparing photos, streetview-type views on Baidu Maps, without success.

The next day, with fresh eyes, I restarted the geolocation from another angle. In previous challenges, I had obtained the killer's route on Strava. However, I had only looked at the arrival point. The starting point might also hold clues.

Strava route starting point

So I locate the starting point in Google Maps:

Google Maps coordinates

Coordinates: 36.675199, 114.561075

When going to the precise starting location, Google Maps suggested photos via the "discover" option.

Google Maps discover option

The StreetView preview strongly resembles our photo! And indeed:

Location validation

It's the exact same photo.

Now there's only one thing left to do: find the flag. The format specified in the instructions is peculiar: MCTF{XXXX+XXX}. So the flag isn't coordinates, nor the name of the place. After some research, I discover that this is the syntax used in Google Maps Plus Codes.

Plus Codes explanation

To get this plus code, I need to position myself exactly where the photo was taken.

Precise positioning

A shift of a few meters can change the Plus Code, because to get it, you need to search for the precise coordinates in the search bar. After a few attempts, I manage to get the exact location:

Obtaining the code

Kuromi celebration

Flag

Celebration