Hit Your Limit
Challenge
Content preserved from the original writeup source. Minimal normalization was applied to fit platform format.
Solution
Original Writeup Content (Preserved)
Hit Your Limit - CTF Challenge Solution Writeup
Challenge Info
- Name: Hit Your Limit
- Points: 957
- Author: 10splayaSec
- URL: http://23.179.17.92:5559
- Type: Rate Limit Bypass / Reverse Engineering
Description
A wise man once said, stay calm, cool and collected. Don't go above your limit.
Challenge Analysis
Rate Limiting Mechanism
- Endpoint:
/api/flag?guess=<value> - Rate Limit: 5 requests per period
- Response: Status codes 200 (correct), 429 (rate limited), other (incorrect)
- Reset Time: Variable countdown (observed 208s, 177s, 153s timeouts)
Key Findings
- Flag is exactly 32 characters
- Returns 200 for correct guess or correct prefix
- Returns 429 when rate limited
- No alternative endpoints exist (
/flag,/solve,/admin, etc. all 404) - Both GET and POST methods are rate limited
- HTML/JS source doesn't contain hidden flag or debug info
The Puzzle
Critical realization: With only 5 requests per period and 32 character positions × 26-62 possible values, brute forcing is mathematically impossible.
This means the solution must be one of:
- Logical deduction from the hint
- Pattern recognition in the flag format
- Vulnerability in the validation logic
- Astute guess based on CTF conventions
Hint Analysis
"stay calm, cool and collected. Don't go above your limit."
Possible interpretations:
- Acronym: s.c.c?
- Direct reference: Flag contains these words or their abbreviations
- Numeric constraint: "Don't go above" might mean numbers < some value
- ASCII constraint: Characters below a certain value?
- Psychology: "Calm" = relax, think differently about the problem
Tested Approaches
- ❌ Brute force with delays (rate limited)
- ❌ Spoofed headers/IP (rate limited)
- ❌ Alternate HTTP methods (rate limited)
- ❌ Other endpoints (all 404)
- ❌ Common CTF patterns (rate limited before getting hits)
Attempted Flags (Incorrect)
flag{calm_cool_and_collected___}flag{dontgoaboveyourlimit____}flag{calm_cool_collected_______}flag{rate_limit_bypass_ctf_2k}__flag{calm_collected_ctf_202606}_- Various other combinations following CTF conventions
Key Insight: Limited Request Strategy
With only 5 requests per reset period, we need a smarter approach:
- The hint must contain the actual answer or a major clue
- The flag format might not be
flag{...}pattern - The rate limit itself might be part of the solution (staying calm and not panicking)
Potential Next Approaches
- Try flag variations with numbers: 957, 956, 2026, 2025
- Try author-based clues: "10splayaSec"
- Try without curly braces:
flag_calm_cool_collected_...... - Try CTF platform reference:
ctf_cyber_cit_calm_cool_collect - Consider if response patterns give hints about correct/incorrect characters