Saltar al contenido
Lectura10 minPreview

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 Firefox

Sirve 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 F12 o Ctrl+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 FirefoxPara qué lo uso en un CTF
ElementsInspectorVer elementos ocultos con hidden o display: none
ConsoleConsolaEjecutar JavaScript en la página: atob("..."), llamar funciones
SourcesDepuradorLeer cada .js, buscar con Ctrl+Shift+F, poner breakpoints
NetworkRedVer peticiones, códigos de estado y cabeceras (recargue con la pestaña abierta)
ApplicationAlmacenamientoCookies, 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: curl viene de client URL, "cliente de URL". -i es include: incluye las cabeceras de la respuesta.
  • Qué hace: muestra la respuesta cruda, sin navegador de por medio: cabeceras como Server, Set-Cookie o Location.
curl [OPCIONES] URL
OpciónQué haceEjemplo
-iMuestra cabeceras y cuerpocurl -i http://127.0.0.1:8000/
-ISolo cabeceras (petición HEAD)curl -I http://127.0.0.1:8000/robots.txt
-sSilencioso, sin barra de progresocurl -s URL
-bEnvía una cookiecurl -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 GMT

En 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 server

Nada escucha en ese puerto: el servidor de Python no está corriendo o usa otro.

Uncaught ReferenceError: mostrarPanel is not defined

La 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.