Beautiful jewelry
Beautiful jewelry
Platform: CUSTOM | Category: Web | Type: Challenge | Difficulty: Easy | OS: N/A | **Author: XESXOR Techniques: directory_enumeration, common_filename_guessing, media_directory_access
Summary
Walkthrough of the CUSTOM Web Beautiful jewelry. Credentials provided: ctf_user;ctf_password
Challenge Info
- Event: grodno_new_year_2026
- Task ID: 410
- Category: Web
- Difficulty: Easy
- Points: 500
Description
Никогда ещё не видел таких красивых украшений. (I've never seen such beautiful jewelry before.)
http://ctf.mf.grsu.by/web_tasks/ice_shop/
PS: Используйте данные от задачи Shop robbery (Use the data from the Shop robbery task)
Credentials provided: ctf_user;ctf_password
Analysis
Initial Reconnaissance
- Accessed the jewelry shop website at
http://ctf.mf.grsu.by/web_tasks/ice_shop/ - Logged in using credentials:
username=ctf_user,password=ctf_password - Discovered a Django-based e-commerce site with 9 jewelry products
- User profile showed balance of 0$, preventing any purchases
Investigation Steps Attempted
Several common web vulnerabilities were tested:
| Attack Vector | Result |
|---|---|
| SQL injection in search/sort | Not vulnerable |
| IDOR on product IDs (negative, large numbers) | Not vulnerable |
| Price manipulation in order creation | Not vulnerable |
| Django admin panel at /admin/ | Accessible but credentials unknown |
| Image steganography analysis | No hidden data found |
| EXIF metadata analysis | Nothing interesting |
| Review of user comments | Found hint about user "nickley" but couldn't exploit |
| |
Key Discovery
While investigating the /media/ directory where product images were stored, I attempted to access common filenames that might contain sensitive information:
bash read-only • copy allowed# Testing common secret filenames curl -s "http://ctf.mf.grsu.by/web_tasks/ice_shop/media/flag.txt" curl -s "http://ctf.mf.grsu.by/web_tasks/ice_shop/media/secret.txt"
The second request returned the flag!
Solution
Flag Location
The flag was stored in a plaintext file accessible at:
http://ctf.mf.grsu.by/web_tasks/ice_shop/media/secret.txt
One-liner Solution
bash read-only • copy allowedcurl -s "http://ctf.mf.grsu.by/web_tasks/ice_shop/media/secret.txt"
Vulnerability Analysis
Type: Information Disclosure / Insecure Direct Object Reference
The secret.txt file was placed in the publicly accessible /media/ directory without any access controls. In Django applications, the /media/ directory is typically used for user-uploaded content and is served directly by the web server without authentication.
The flag name REDACTED (half of path traversal) hints that this was an intentional information disclosure vulnerability - the "half" suggests that while path traversal wasn't needed, the concept of accessing files through predictable paths was key.
Common Files to Check
/media/flag.txt
/media/secret.txt
/media/.htaccess
/media/backup.sql
/static/flag.txt
/uploads/flag.txt
Lessons Learned
- Always enumerate accessible directories - Media/upload directories often contain unprotected files
- Try common filenames -
flag.txt,secret.txt,backup.sql, etc. - Pay attention to hints - The challenge name "Beautiful jewelry" pointed to looking at media/images
- Check Django defaults -
/media/and/static/are common Django directory patterns - Don't overcomplicate - Sometimes the simplest approach (guessing filenames) works
Tools Used
| Tool | Purpose |
|---|---|
| curl | HTTP requests to test file access |
| Browser | Initial reconnaissance and login |
| |
Key Takeaways / Lessons
- Mastering directory_enumeration, common_filename_guessing, media_directory_access was key to this challenge.
- Always check for common misconfigurations and verify assumptions.
Crafted by XESXOR Research • 2026-01-10 • CUSTOM • Beautiful jewelry • Difficulty: Easy