# httpx: sondeo HTTP y fingerprinting web para recon

> Cómo instalar y ejecutar httpx, leer su salida JSON y cómo Tandera lo usa para convertir una lista de hostnames en una superficie de ataque viva y fingerprinteada.

`httpx` toma una lista de hosts y dice cuáles sirven HTTP de verdad, y qué son. Es el paso que convierte un montón de hostnames especulativos en una superficie de ataque real — status codes, títulos, tecnologías, detalles de TLS, cadenas de redirección.

No lo confundas con `httpx`, el cliente HTTP de Python en PyPI. Proyecto distinto, mismo nombre.

## Instalación

```bash
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
```

Si también tienes instalado el `httpx` de Python, los binarios colisionan. Renombra uno o llama a este por su ruta absoluta.

## Comandos principales

```bash
# sondea una lista de hosts, conserva solo lo que responde
httpx -l hosts.txt -silent

# la pasada de fingerprinting que conviene ejecutar por defecto
httpx -l hosts.txt -silent -title -tech-detect -status-code -content-length

# detalle completo en líneas JSON
httpx -l hosts.txt -json -o probe.jsonl -tls-grab -favicon -jarm

# puertos no estándar
httpx -l hosts.txt -ports 80,443,8080,8443,8000,9000 -silent
```

`-tech-detect` usa fingerprints de Wappalyzer y es la flag que justifica su costo — así encuentras la instalación de WordPress que nadie mencionó. `-favicon` devuelve un hash mmh3, que es como pivotas a Shodan y encuentras todo otro host que ejecuta la misma aplicación.

## Salida

```json
{"timestamp":"2026-08-29T10:00:00Z","url":"https://api.example.com","status_code":200,
 "title":"Example API","tech":["nginx","OpenResty"],"webserver":"nginx",
 "content_length":1544,"favicon":"-1545961456","host":"93.184.216.34"}
```

## Dónde encaja en Tandera

httpx es el paso de **fingerprint** en `recon_web_lite`, `recon_web_full` y `recon_api` — la única herramienta agendada en los tres flujos orientados a web. Todo lo que viene después depende del conjunto de hosts vivos que produce.

Tandera también lo ejecuta una segunda vez como `httpx_screenshot` en la fase de **enrich**, capturando screenshots de página que se convierten en evidencia adjunta a los findings. Un screenshot es lo que hace legible un panel de administración expuesto para un cliente que lee el informe meses después.

## Uso en un pentest

**Sondea más allá de 80 y 443.** El comportamiento por defecto se pierde la aplicación en 8443 que nadie documentó, que es exactamente donde están las cosas interesantes.

**Presta atención a los status aburridos.** Un muro de 403 en un rango de subdominios suele significar un WAF o un vhost por defecto, no una aplicación endurecida — y te dice que el hostname resuelve a infraestructura compartida. Un 401 es más interesante que un 200: hay algo ahí y quiere credenciales.

**Los hashes de favicon son un pivote, no un finding.** Cógelos con `-favicon`, luego busca el hash en Shodan para encontrar hosts hermanos que las fuentes pasivas se perdieron.

```bash
subfinder -d example.com -silent | dnsx -silent | \
  httpx -silent -title -tech-detect -status-code -favicon -json -o live.jsonl
```

---

Canonical: https://tandera.io/es/tools/httpx
This page as markdown: https://tandera.io/es/tools/httpx.md
Index for agents: https://tandera.io/llms.txt

Every page here is also available as markdown: append `.md` to the path (e.g. `/recon.md`, `/index.md` for this homepage, `/blog/<slug>.md`), or request the canonical path with `Accept: text/markdown`.
