🌐 Findme
A detailed write-up of the Web challenge 'Findme' from PicoCTF - 2023
📊 Challenge Overview
Category Details Additional Info 🏆 Event picoGym Event Link 🔰 Category Web 🌐 💎 Points Out of 500 total ⭐ Difficulty 🟡 Medium Personal Rating: 1/10 👤 Author Geoffrey Njogu Profile 🎮 Solves (At the time of flag submission) 20.563 solve rate 📅 Date 10-02-2025 picoGym 🦾 Solved By mH4ck3r0n3 Team:
📝 Challenge Information
Help us test the form by submiting the username as test and password as test!
🎯 Challenge Files & Infrastructure
Provided Files
1Files: None
🔍 Initial Analysis
First Steps
Initially, the website appears as follows:
With a login screen. As suggested by the page description, I tried entering
user=testandpassword=test, but I got the following screen:So I tried entering
user=testandpassword=test!, as suggested by the screen, and managed to log in:Inspecting the page, there was nothing, but looking at the
urlfield in the browser at the moment of login, I noticed tworedirects, so I decided to inspect the request. Let’s move on to exploitation.
🎯 Solution Path
Exploitation Steps
Initial setup
To analyze the request, I did not use
BurpSuitesince it was just two redirects. I enabled theKeep Logcheckbox in theNetworksection ofChromeDevTools, which retains all request logs.
Exploitation
As we can see, by logging in again and inspecting the
Networksection, I managed to intercept the two redirects:From here, I noticed a parameter
idcontaining a strangebase64string, so I decided to decode it:
1echo cGljb0NURntwcm94aWVzX2Fs | base64 -dFinding the first part of the flag. Next, I decoded the second one:
1echo bF90aGVfd2F5XzNkOWUzNjk3fQ== | base64 -dRecovering the second part of the flag. I then concatenated them and decoded once more:
1echo;echo cGljb0NURntwcm94aWVzX2FsbF90aGVfd2F5XzNkOWUzNjk3fQ== | base64 -dPrinting the full flag.
Flag capture
🛠️ Exploitation Process
Approach
The automatic exploit performs the login request and extracts the redirect link from the header, obtaining the first part of the flag. Then, it makes a GET request to the URL formed by
site URL + redirect URL from the header, extracts the second URL containing the second part of the flag using a regex, decodes it from base64, and prints it.
🚩 Flag Capture
Flag
Proof of Execution
🔧 Tools Used
Tool Purpose Python Exploit ChromeDevTools Web Testing
💡 Key Learnings
Skills Improved
- Binary Exploitation
- Reverse Engineering
- Web Exploitation
- Cryptography
- Forensics
- OSINT
- Miscellaneous
📊 Final Statistics
| Metric | Value | Notes |
|---|---|---|
| Time to Solve | 00:03 | From start to flag |
| Global Ranking (At the time of flag submission) | Challenge ranking | |
| Points Earned | Team contribution |
Created: 10-02-2025 • Last Modified: 10-02-2025 *Author: mH4ck3r0n3 • Team: *