DevTools, view-source y curl -i
Para un reto web de nivel inicial alcanzan tres herramientas: dos vienen en el navegador y la tercera en la terminal de Linux, macOS y Windows 10 u 11.
Ficha de view-source
- Nombre: view source, "ver el código fuente".
- Qué hace: muestra el HTML tal como llegó del servidor, antes de que el JavaScript lo cambie. Ahí aparecen los comentarios
<!-- ... -->, que la página no dibuja.
view-source:URL en la barra de direcciones
Ctrl+U atajo en Chrome, Edge y FirefoxSirve con archivos locales (view-source:file:///home/ana/reto/index.html). Busque con Ctrl+F: <!--, TODO, password, admin, flag.
Ficha de DevTools
- Nombre: Developer Tools, "herramientas para desarrolladores". Se abren con
F12oCtrl+Shift+I. - Qué hace: muestra el estado actual de la página: el DOM ya modificado por JavaScript, los archivos cargados, el tráfico y lo guardado en el navegador.
| Panel (Chrome y Edge) | En Firefox | Para qué lo uso en un CTF |
|---|---|---|
| Elements | Inspector | Ver elementos ocultos con hidden o display: none |
| Console | Consola | Ejecutar JavaScript en la página: atob("..."), llamar funciones |
| Sources | Depurador | Leer cada .js, buscar con Ctrl+Shift+F, poner breakpoints |
| Network | Red | Ver peticiones, códigos de estado y cabeceras (recargue con la pestaña abierta) |
| Application | Almacenamiento | Cookies, Local Storage y Session Storage de ese origen |
Un breakpoint es una pausa: clic en el número de línea en Sources y el código se detiene ahí, con sus variables locales a la vista de la consola. Para saltarse una condición suele bastar menos: si la función es global, se llama desde la consola.
Ficha de curl -i
- Nombre:
curlviene de client URL, "cliente de URL".-ies include: incluye las cabeceras de la respuesta. - Qué hace: muestra la respuesta cruda, sin navegador de por medio: cabeceras como
Server,Set-CookieoLocation.
curl [OPCIONES] URL| Opción | Qué hace | Ejemplo |
|---|---|---|
-i | Muestra cabeceras y cuerpo | curl -i http://127.0.0.1:8000/ |
-I | Solo cabeceras (petición HEAD) | curl -I http://127.0.0.1:8000/robots.txt |
-s | Silencioso, sin barra de progreso | curl -s URL |
-b | Envía una cookie | curl -b "sesion=abc" URL |
$ curl -I http://127.0.0.1:8000/robots.txt
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.12.3
Date: Wed, 21 Oct 2026 15:04:10 GMT
Content-type: text/plain
Content-Length: 57
Last-Modified: Thu, 01 Jan 2026 06:00:00 GMTEn Windows PowerShell 5.1, curl es un alias de Invoke-WebRequest y no entiende -i. Escriba curl.exe -i; en PowerShell 7 ese alias ya no existe.
Errores frecuentes
curl: (7) Failed to connect to 127.0.0.1 port 8000 after 0 ms: Couldn't connect to serverNada escucha en ese puerto: el servidor de Python no está corriendo o usa otro.
Uncaught ReferenceError: mostrarPanel is not definedLa consola trabaja sobre la página abierta en esa pestaña. Si está en index.html, no ve las funciones de un script que solo carga login.html.
Warning: Don't paste code into the DevTools Console that you don't understand or haven't reviewed yourself. [...] Please type 'allow pasting' below and press Enter to allow pasting.Chrome y Firefox bloquean el primer pegado en la consola para frenar estafas. Escriba allow pasting, Enter, y pegue de nuevo; en su propio reto, sí; en una página ajena porque alguien se lo pidió por WhatsApp, nunca.