__FRONTMATTER_94_# HTTPX Toolkit Foglio di formaggio
Panoramica¶
HTTPX è un toolkit HTTP veloce e multiuso sviluppato da Project Discovery che permette di eseguire sonde multiple utilizzando la libreria retryablehttp. È progettato per mantenere l'affidabilità dei risultati con i filetti aumentati ed è ottimizzato per la scansione su larga scala. HTTPX può essere utilizzato per eseguire sonde multiple su un elenco di URL o host, consentendo la rapida impronta digitale del server web e la probing.
Ciò che imposta HTTPX a parte altri strumenti HTTP è la sua versatilità e velocità. Può elaborare migliaia di host in pochi minuti fornendo informazioni preziose su ogni obiettivo, inclusi i codici di stato, i titoli, i tipi di contenuti, le tecnologie del server web e altro ancora. HTTPX è comunemente usato nelle fasi di ricognizione delle valutazioni di sicurezza e nella caccia alle taglie dei bug per identificare rapidamente obiettivi interessanti per ulteriori indagini.
HTTPX supporta vari formati di input e può essere facilmente integrato con altri strumenti in una pipeline, rendendolo un componente essenziale in molti flussi di lavoro di test di sicurezza. La sua capacità di filtrare i risultati in base a vari criteri aiuta i professionisti della sicurezza a concentrarsi sugli obiettivi più rilevanti.
Installazione¶
Using Go¶
# Install using Go (requires Go 1.20 or later)
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
# Verify installation
httpx -version
Using Docker¶
# Pull the latest Docker image
docker pull projectdiscovery/httpx:latest
# Run HTTPX using Docker
docker run -it projectdiscovery/httpx:latest -h
Using Homebrew (macOS)¶
Using PDTM (Project Discovery Tools Manager)¶
# Install PDTM first if not already installed
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest
# Install HTTPX using PDTM
pdtm -i httpx
# Verify installation
httpx -version
On Kali Linux¶
Uso di base¶
Probing URLs and Hosts¶
# Probe a single URL
httpx -u https://example.com
# Probe multiple URLs
httpx -u https://example.com,https://projectdiscovery.io
# Probe from a list of URLs/hosts
httpx -l hosts.txt
# Probe from STDIN
cat hosts.txt|httpx
Opzioni di uscita¶
# Save results to a file
httpx -l hosts.txt -o results.txt
# Output in JSON format
httpx -l hosts.txt -json -o results.json
# Output in CSV format
httpx -l hosts.txt -csv -o results.csv
# Silent mode (only URLs)
httpx -l hosts.txt -silent
Filtro di base¶
# Filter by status code
httpx -l hosts.txt -status-code 200
# Filter by content length
httpx -l hosts.txt -content-length 100
# Match specific title
httpx -l hosts.txt -title "Dashboard"
# Match specific technology
httpx -l hosts.txt -tech wordpress
Uso avanzato¶
Port Scanning¶
# Scan default ports (80, 443)
httpx -l hosts.txt
# Scan specific ports
httpx -l hosts.txt -ports 80,443,8080,8443
# Scan top 100 ports
httpx -l hosts.txt -ports top-100
# Scan all ports
httpx -l hosts.txt -ports all
Path Probing¶
# Probe specific paths
httpx -l hosts.txt -path /api/v1,/admin,/login
# Probe from a file containing paths
httpx -l hosts.txt -path-file paths.txt
# Automatically add trailing slash
httpx -l hosts.txt -path /api -add-slash
Opzioni di protocollo¶
# Force HTTPS
httpx -l hosts.txt -https
# Probe both HTTP and HTTPS
httpx -l hosts.txt -probe
# Skip HTTPS verification
httpx -l hosts.txt -no-verify
Richiesta personalizzazione¶
# Set custom headers
httpx -l hosts.txt -H "User-Agent: Mozilla/5.0" -H "Cookie: session=123456"
# Set HTTP method
httpx -l hosts.txt -method POST
# Set request body
httpx -l hosts.txt -method POST -body "username=admin&password=admin"
# Set content type
httpx -l hosts.txt -method POST -H "Content-Type: application/json" -body '\\\\{"username":"admin","password":"admin"\\\\}'
Response Filtering¶
# Match response containing specific string
httpx -l hosts.txt -match-string "admin"
# Match response using regex
httpx -l hosts.txt -match-regex "admin.*panel"
# Filter response not containing string
httpx -l hosts.txt -filter-string "not found"
# Filter response using regex
httpx -l hosts.txt -filter-regex "error|not found"
Screenshot Capture¶
# Capture screenshots
httpx -l hosts.txt -screenshot
# Specify screenshot output directory
httpx -l hosts.txt -screenshot -screenshot-output screenshots/
# Set screenshot timeout
httpx -l hosts.txt -screenshot -screenshot-timeout 20
Technology Detection¶
# Detect web technologies
httpx -l hosts.txt -tech-detect
# Output only specific technologies
httpx -l hosts.txt -tech-detect -match-tech wordpress,nginx
Ottimizzazione delle prestazioni¶
Concurrency and Rate Limiting¶
# Set concurrency (default: 50)
httpx -l hosts.txt -concurrency 100
# Set rate limit
httpx -l hosts.txt -rate-limit 200
# Set request timeout
httpx -l hosts.txt -timeout 10
Retry and Delay Opzioni¶
# Set maximum retries
httpx -l hosts.txt -retries 3
# Set delay between requests
httpx -l hosts.txt -delay 2s
# Set random delay
httpx -l hosts.txt -random-agent
Ottimizzazione per grandi scansioni¶
# Use stream mode for large inputs
httpx -l large-hosts.txt -stream
# Skip default ports probing
httpx -l hosts.txt -no-default-ports
# Skip failed host probes
httpx -l hosts.txt -skip-host-error
Integrazione con altri strumenti¶
Pipeline with Subfinder¶
# Find subdomains and probe them
subfinder -d example.com|httpx
# Find subdomains, probe them, and check for specific paths
subfinder -d example.com|httpx -path /api,/admin -status-code 200
Pipeline with Nuclei¶
# Find active hosts and scan for vulnerabilities
httpx -l hosts.txt -silent|nuclei -t cves/
# Find hosts with specific tech and scan for related vulnerabilities
httpx -l hosts.txt -tech-detect -match-tech wordpress -silent|nuclei -t wordpress/
Pipeline with Naabu¶
# Scan ports and probe HTTP services
naabu -host example.com -top-ports 1000 -silent|httpx
# Scan ports, probe HTTP services, and check for vulnerabilities
naabu -host example.com -top-ports 1000 -silent|httpx -silent|nuclei -t cves/
Personalizzazione dell'uscita¶
Formato di uscita personalizzato¶
# Define custom output format
httpx -l hosts.txt -o results.txt -silent -format "\\\\{\\\\{.StatusCode\\\\}\\\\} \\\\{\\\\{.URL\\\\}\\\\} \\\\{\\\\{.Title\\\\}\\\\}"
# Include specific fields in output
httpx -l hosts.txt -include-response-time -include-chain -include-cdn
Estrazione risposta¶
# Extract title
httpx -l hosts.txt -title
# Extract favicon hash
httpx -l hosts.txt -favicon
# Extract response headers
httpx -l hosts.txt -response-header
# Extract TLS information
httpx -l hosts.txt -tls-grab
Response Storage¶
# Store response bodies
httpx -l hosts.txt -store-response
# Specify response storage directory
httpx -l hosts.txt -store-response -store-response-dir responses/
# Store chain responses
httpx -l hosts.txt -store-chain
Filtro avanzato¶
Codice di stato Filtro¶
# Match specific status codes
httpx -l hosts.txt -status-code 200,301,302
# Filter out specific status codes
httpx -l hosts.txt -exclude-status-code 404,403
Contenuti Filtering¶
# Filter by content length
httpx -l hosts.txt -content-length 100
# Match content length range
httpx -l hosts.txt -content-length-lt 1000 -content-length-gt 100
# Filter by content type
httpx -l hosts.txt -content-type "text/html"
Filtro dell'intestazione¶
# Match specific header
httpx -l hosts.txt -match-header "Server: nginx"
# Filter by header presence
httpx -l hosts.txt -include-headers "Server,Content-Type"
Opzioni proxy e di rete¶
# Use HTTP proxy
httpx -l hosts.txt -proxy http://127.0.0.1:8080
# Use SOCKS5 proxy
httpx -l hosts.txt -proxy socks5://127.0.0.1:1080
# Follow redirects
httpx -l hosts.txt -follow-redirects
# Follow redirects with max depth
httpx -l hosts.txt -follow-redirects -follow-max-redirects 5
# Follow host redirects
httpx -l hosts.txt -follow-host-redirects
Miscellaneous # Caratteristiche¶
CRLF Injection Detection¶
CORS Controllo di configurazione¶
Geolocalizzazione IP
Web Cache Detection¶
Virtual Host Discovery¶
# Probe for virtual hosts
httpx -l hosts.txt -vhost
# Specify vhost wordlist
httpx -l hosts.txt -vhost -vhost-wordlist vhosts.txt
Risoluzione dei problemi¶
Questioni comuni¶
-
♪Connection Timeouts ♪ Traduzione:
-
** Limitare il bersaglio* *
¶
-
** Problemi di memoria ** Traduzione:
-
** Errori TLS/SSL * Traduzione:
Debugging¶
# Enable verbose mode
httpx -l hosts.txt -verbose
# Show request and response details
httpx -l hosts.txt -debug
# Show only failed requests
httpx -l hosts.txt -debug-req -debug-resp -silent
Configurazione¶
Configuration File¶
HTTPX utilizza un file di configurazione situato in $HOME/.config/httpx/config.yaml. È possibile personalizzare varie impostazioni in questo file:
# Example configuration file
concurrency: 50
timeout: 5
retries: 2
rate-limit: 150
verbose: false
silent: false
output: httpx_output.txt
Variabili ambientali¶
# Set HTTPX configuration via environment variables
export HTTPX_CONCURRENCY=50
export HTTPX_TIMEOUT=5
export HTTPX_RETRIES=2
export HTTPX_RATE_LIMIT=150
Riferimento¶
Opzioni di riga di comando¶
Tabella_95_
campi di uscita¶
Tabella_96_
Risorse¶
- [Documentazione ufficiale](URL_91__
- [GitHub Repository]
- Progetto Discovery Discord
*Questo foglio di scacchi fornisce un riferimento completo per l'utilizzo di HTTPX, dalla prova di base al filtraggio avanzato e l'integrazione con altri strumenti. Per le informazioni più aggiornate, consultare sempre la documentazione ufficiale. *