Voltar às atualizações
New releaseJul 22, 2026

httpx v1.10.0

Ferramenta HTTP rápida e multiprobe para reconhecimento e coleta de informações. Testa TLS, CSP, cabeçalhos, pilha tecnológica e CDN. Suporta correspondências, filtros e saída JSON para testes automatizados de segurança.

Compartilhar

httpx

FuncionalidadesInstalaçãoUsoDocumentaçãoNotasEntrar no Discord

httpx é um kit de ferramentas HTTP rápido e multifuncional que permite executar múltiplas sondas usando a biblioteca retryablehttp. É projetado para manter a confiabilidade dos resultados com um número maior de threads.

Funcionalidades

httpx

  • Base de código simples e modular, facilitando a contribuição.
  • Flags rápidas e totalmente configuráveis para sondar múltiplos elementos.
  • Suporta múltiplas sondagens baseadas em HTTP.
  • Fallback automático inteligente de https para http por padrão.
  • Suporta hosts, URLs e CIDR como entrada.
  • Lida com casos extremos realizando retentativas, backoffs etc. para lidar com WAFs.

Sondas suportadas

SondasVerificação padrãoSondasVerificação padrão
URLtrueIPtrue
TítulotrueCNAMEtrue
Código de StatustrueHTTP Brutofalse
Tamanho do ConteúdotrueHTTP2false
Certificado TLStruePipeline HTTPfalse
Cabeçalho CSPtrueHost virtualfalse
Contagem de LinhastrueContagem de Palavrastrue
Cabeçalho de LocalizaçãotrueCDNfalse
Servidor WebtrueCaminhosfalse
WebSockettruePortasfalse
Tempo de RespostatrueMétodo da Requisiçãotrue
Hash de FaviconfalseStatus da Sondafalse
Hash do CorpotrueHash do Cabeçalhotrue
Cadeia de RedirecionamentofalseEsquema da URLtrue
Hash JARMfalseASNfalse

Instruções de Instalação

httpx requer go >=1.25.0 para instalar com sucesso. Execute o seguinte comando para obter o repositório:

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

Para saber mais sobre a instalação do httpx, consulte https://docs.projectdiscovery.io/tools/httpx/install.

Aviso
Este projeto está em desenvolvimento ativo. Espere mudanças que quebrem compatibilidade com versões anteriores nas releases. Revise o changelog antes de atualizar.
Este projeto foi construído principalmente para ser usado como uma ferramenta CLI independente. Executá-lo como serviço pode apresentar riscos de segurança. Recomenda-se usá-lo com cautela e medidas de segurança adicionais.

Uso

httpx -h

Isto exibirá a ajuda da ferramenta. Aqui estão todas as opções suportadas.

httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.

Usage:
  ./httpx [flags]

Flags:
INPUT:
   -l, -list string              arquivo de entrada contendo lista de hosts para processar
   -rr, -request string          arquivo contendo requisição bruta
   -u, -target string[]          host(s) alvo de entrada para sondar
   -im, -input-mode string       modo do arquivo de entrada (burp)

PROBES:
   -sc, -status-code                      exibir código de status da resposta
   -cl, -content-length                   exibir tamanho do conteúdo da resposta
   -ct, -content-type                     exibir tipo de conteúdo da resposta
   -location                              exibir localização de redirecionamento da resposta
   -favicon                               exibir hash mmh3 para o arquivo '/favicon.ico'
   -hash string                           exibir hash do corpo da resposta (suportado: md5,mmh3,simhash,sha1,sha256,sha512)
   -jarm                                  exibir hash de impressão digital jarm
   -rt, -response-time                    exibir tempo de resposta
   -lc, -line-count                       exibir contagem de linhas do corpo da resposta
   -wc, -word-count                       exibir contagem de palavras do corpo da resposta
   -title                                 exibir título da página
   -bp, -body-preview                     exibir primeiros N caracteres do corpo da resposta (padrão 100)
   -server, -web-server                   exibir nome do servidor
   -td, -tech-detect                      exibir tecnologia em uso baseada no conjunto de dados wappalyzer
   -cff, -custom-fingerprint-file string  caminho para um arquivo de impressão digital personalizado para detecção de tecnologia
   -method                                exibir método da requisição HTTP
   -ws, -websocket                        exibir servidor usando websocket
   -ip                                    exibir IP do host
   -cname                                 exibir CNAME do host
   -extract-fqdn, -efqdn                  obter domínio e subdomínios do corpo e cabeçalho da resposta na saída jsonl/csv
   -asn                                   exibir informações ASN do host
   -cdn                                   exibir CDN/WAF em uso (padrão true)
   -probe                                 exibir status da sonda

HEADLESS:
   -ss, -screenshot                 habilitar captura de tela da página usando navegador headless
   -system-chrome                   habilitar uso do Chrome local instalado para captura de tela
   -ho, -headless-options string[]  iniciar chrome headless com opções adicionais
   -esb, -exclude-screenshot-bytes  habilitar exclusão de bytes de captura de tela da saída JSON
   -ehb, -exclude-headless-body     habilitar exclusão de cabeçalho headless da saída JSON
   -no-screenshot-full-page         desabilitar captura de tela de página inteira
   -st, -screenshot-timeout value   definir tempo limite para captura de tela em segundos (padrão 10s)
   -sid, -screenshot-idle value     definir tempo ocioso antes de capturar a tela em segundos (padrão 1s)
   -jsc, -javascript-code string[]  executar código JavaScript após navegação

MATCHERS:
   -mc, -match-code string            corresponder resposta com código de status especificado (-mc 200,302)
   -ml, -match-length string          corresponder resposta com tamanho de conteúdo especificado (-ml 100,102)
   -mlc, -match-line-count string     corresponder corpo da resposta com contagem de linhas especificada (-mlc 423,532)
   -mwc, -match-word-count string     corresponder corpo da resposta com contagem de palavras especificada (-mwc 43,55)
   -mfc, -match-favicon string[]      corresponder resposta com hash de favicon especificado (-mfc 1494302000)
   -ms, -match-string string[]        corresponder resposta com string especificada (-ms admin)
   -mr, -match-regex string[]         corresponder resposta com regex especificada (-mr admin)
   -mcdn, -match-cdn string[]         corresponder host com provedor CDN especificado (cloudfront, fastly, google, etc.)
   -mrt, -match-response-time string  corresponder resposta com tempo de resposta especificado em segundos (-mrt '< 1')
   -mdc, -match-condition string      corresponder resposta com condição de expressão DSL

EXTRACTOR:
   -er, -extract-regex string[]   exibir conteúdo da resposta com regex correspondente
   -ep, -extract-preset string[]  exibir conteúdo da resposta correspondido por um regex predefinido (url,ipv4,mail)

FILTERS:
   -fc, -filter-code string               filtrar resposta com código de status especificado (-fc 403,401)
   -fpt, -filter-page-type string[]       filtrar resposta com tipo de página especificado (e.g. -fpt login,captcha,parked)
   -fep, -filter-error-page               [DEPRECATED: use -fpt] filtrar resposta com detecção de página de erro baseada em ML
   -fd, -filter-duplicates                filtrar respostas quase duplicadas (apenas a primeira resposta é mantida)
   -fl, -filter-length string             filtrar resposta com tamanho de conteúdo especificado (-fl 23,33)
   -flc, -filter-line-count string        filtrar corpo da resposta com contagem de linhas especificada (-flc 423,532)
   -fwc, -filter-word-count string        filtrar corpo da resposta com contagem de palavras especificada (-fwc 423,532)
   -ffc, -filter-favicon string[]         filtrar resposta com hash de favicon especificado (-ffc 1494302000)
   -fs, -filter-string string[]           filtrar resposta com string especificada (-fs admin)
   -fe, -filter-regex string[]            filtrar resposta com regex especificada (-fe admin)
   -fcdn, -filter-cdn string[]            filtrar host com provedor CDN especificado (cloudfront, fastly, google, etc.)
   -frt, -filter-response-time string     filtrar resposta com tempo de resposta especificado em segundos (-frt '> 1')
   -fdc, -filter-condition string         filtrar resposta com condição de expressão DSL
   -strip                                  remove todas as tags na resposta. formatos suportados: html,xml (padrão html)
   -lof, -list-output-fields              listar campos de saída (separados por vírgula)
   -eof, -exclude-output-fields string[]  excluir campos de saída com base em uma condição

RATE-LIMIT:
   -t, -threads int              número de threads a usar (padrão 50)
   -rl, -rate-limit int          máximo de requisições por segundo (padrão 150)
   -rlm, -rate-limit-minute int  número máximo de requisições por minuto

MISCELLANEOUS:
   -pa, -probe-all-ips        sondar todos os IPs associados ao mesmo host
   -p, -ports string[]        portas para sondar (sintaxe nmap: ex http:1,2-10,11,https:80)
   -path string               caminho ou lista de caminhos para sondar (separados por vírgula, arquivo)
   -tls-probe                 enviar sondas HTTP nos domínios TLS extraídos (dns_name)
   -csp-probe                 enviar sondas HTTP nos domínios CSP extraídos
   -tls-grab                  realizar captura de dados TLS(SSL)
   -pipeline                  sondar e exibir servidores compatíveis com HTTP1.1 pipeline
   -http2                     sondar e exibir servidores compatíveis com HTTP2
   -vhost                     sondar e exibir servidores compatíveis com VHOST
   -ldv, -list-dsl-variables  listar nomes das chaves de campos de saída JSON que suportam matcher/filter DSL

UPDATE:
   -up, -update                 atualizar httpx para a versão mais recente
   -duc, -disable-update-check  desabilitar verificação automática de atualização do httpx

OUTPUT:
   -o, -output string                     arquivo para escrever resultados de saída
   -oa, -output-all                       nome do arquivo para escrever resultados em todos os formatos
   -sr, -store-response                   armazenar resposta HTTP no diretório de saída
   -srd, -store-response-dir string       armazenar resposta HTTP em diretório personalizado
   -ob, -omit-body                        omitir corpo da resposta na saída
   -csv                                   armazenar saída no formato csv
   -csvo, -csv-output-encoding string     definir codificação da saída
   -j, -json                              armazenar saída no formato JSONL(ines)
   -irh, -include-response-header         incluir cabeçalho da resposta HTTP na saída JSON (apenas -json)
   -irr, -include-response                incluir requisição/resposta HTTP (cabeçalhos + corpo) na saída JSON (apenas -json)
   -irrb, -include-response-base64        incluir requisição/resposta HTTP codificada em base64 na saída JSON (apenas -json)
   -include-chain                         incluir cadeia de redirecionamento HTTP na saída JSON (apenas -json)
   -store-chain                           incluir cadeia de redirecionamento HTTP nas respostas (apenas -sr)
   -svrc, -store-vision-recon-cluster     incluir clusters de reconhecimento visual (-ss e -sr apenas)
   -pr, -protocol string                  protocolo a usar (unknown, http11, http2, http3)
   -fepp, -filter-error-page-path string  caminho para armazenar páginas de erro filtradas (padrão "filtered_error_page.json")
   -rdb, -result-db                       armazenar resultados em banco de dados
   -rdbc, -result-db-config string        caminho para arquivo de configuração do banco de dados
   -rdbt, -result-db-type string          tipo de banco de dados (mongodb, postgres, mysql)
   -rdbcs, -result-db-conn string         string de conexão do banco de dados (env: HTTPX_DB_CONNECTION_STRING)
   -rdbn, -result-db-name string          nome do banco de dados (padrão "httpx")
   -rdbtb, -result-db-table string        nome da tabela/coleção (padrão "results")
   -rdbbs, -result-db-batch-size int      tamanho do lote para inserções no banco de dados (padrão 100)
   -rdbor, -result-db-omit-raw            omitir dados brutos de requisição/resposta do banco de dados

CONFIGURATIONS:
   -config string                   caminho para o arquivo de configuração do httpx (padrão $HOME/.config/httpx/config.yaml)
   -r, -resolvers string[]          lista de resolvedores personalizados (arquivo ou separado por vírgula)
   -allow string[]                  lista de IPs/CIDRs permitidos para processar (arquivo ou separado por vírgula)
   -deny string[]                   lista de IPs/CIDRs negados para processar (arquivo ou separado por vírgula)
   -sni, -sni-name string           nome TLS SNI personalizado
   -random-agent                    habilitar User-Agent aleatório (padrão true)
   -auto-referer                    definir cabeçalho Referer para a URL atual
   -H, -header string[]             cabeçalhos HTTP personalizados para enviar com a requisição
   -http-proxy, -proxy string       proxy (http|socks) para usar (ex http://127.0.0.1:8080)
   -unsafe                          enviar requisições brutas ignorando normalização do golang
   -resume                          retomar varredura usando resume.cfg
   -fr, -follow-redirects           seguir redirecionamentos HTTP
   -maxr, -max-redirects int        número máximo de redirecionamentos por host (padrão 10)
   -fhr, -follow-host-redirects     seguir redirecionamentos no mesmo host
   -rhsts, -respect-hsts            respeitar cabeçalhos de resposta HSTS para requisições de redirecionamento
   -vhost-input                     obter lista de vhosts como entrada
   -x string                        métodos de requisição para sondar, use 'all' para sondar todos os métodos HTTP
   -body string                     corpo POST para incluir na requisição HTTP
   -s, -stream                      modo stream - começar a elaborar alvos de entrada sem ordenar
   -sd, -skip-dedupe                desabilitar deduplicação de itens de entrada (usado apenas com modo stream)
   -ldp, -leave-default-ports       deixar portas http/https padrão no cabeçalho Host (ex. http://host:80 - https://host:443)
   -ztls                            usar biblioteca ztls com fallback automático para a padrão para tls13
   -no-decode                       evitar decodificação do corpo
   -tlsi, -tls-impersonate          habilitar randomização experimental de client hello (ja3) TLS
   -no-stdin                        Desabilitar processamento de Stdin
   -hae, -http-api-endpoint string  endpoint experimental de API HTTP
   -sf, -secret-file string         caminho para arquivo de segredos para autenticação

DEBUG:
   -health-check, -hc        executar diagnóstico
   -debug                    exibir conteúdo de requisição/resposta no CLI
   -debug-req                exibir conteúdo da requisição no CLI
   -debug-resp               exibir conteúdo da resposta no CLI
   -version                  exibir versão do httpx
   -stats                    exibir estatísticas da varredura
   -profile-mem string       arquivo opcional de dump de memória do httpx
   -silent                   modo silencioso
   -v, -verbose              modo verbose
   -si, -stats-interval int  número de segundos entre atualizações de estatísticas (padrão: 5)
   -nc, -no-color            desabilitar cores na saída do CLI
   -tr, -trace               trace

OPTIMIZATIONS:
   -nf, -no-fallback                  exibir ambos os protocolos sondados (HTTPS e HTTP)
   -nfs, -no-fallback-scheme          sondar com esquema de protocolo especificado na entrada
   -maxhr, -max-host-error int        número máximo de erros por host antes de pular caminhos restantes (padrão 30)
   -e, -exclude string[]              excluir host que corresponde ao filtro especificado ('cdn', 'private-ips', cidr, ip, regex)
   -retries int                       número de retentativas
   -timeout int                       tempo limite em segundos (padrão 10)
   -delay value                       duração entre cada requisição HTTP (ex: 200ms, 1s) (padrão -1ns)
   -rsts, -response-size-to-save int  tamanho máximo da resposta para salvar em bytes (padrão 50000000)
   -rstr, -response-size-to-read int  tamanho máximo da resposta para ler em bytes (padrão 50000000)

CLOUD:
   -auth                           configurar chave API do projectdiscovery cloud (pdcp) (padrão true)
   -ac, -auth-config string        configurar arquivo de credenciais da chave API do projectdiscovery cloud (pdcp)
   -pd, -dashboard                 enviar / visualizar saída no painel UI do projectdiscovery cloud (pdcp)
   -tid, -team-id string           enviar resultados de ativos para o ID da equipe fornecido (opcional)
   -aid, -asset-id string          enviar novos ativos para um ID de ativo existente (opcional)
   -aname, -asset-name string      nome do grupo de ativos para definir (opcional)
   -pdu, -dashboard-upload string  enviar arquivo de saída do httpx (jsonl) no painel UI do projectdiscovery cloud (pdcp)

Executando o httpx

Para detalhes sobre como executar o httpx, consulte https://docs.projectdiscovery.io/tools/httpx/running.

Usando httpx como biblioteca

httpx pode ser usado como biblioteca criando uma instância da struct Option e preenchendo-a com as mesmas opções que seriam especificadas via CLI. Uma vez validada, a struct deve ser passada para uma instância do runner (a ser fechada ao final do programa) e o método RunEnumeration deve ser chamado. Um exemplo mínimo de como fazer isso está na pasta examples.

Notas

  • Por padrão, o httpx sonda com esquema HTTPS e faz fallback para HTTP apenas se HTTPS não estiver acessível.
  • Exportações XML do Burp Suite podem ser usadas como entrada com -l burp-export.xml -im burp
  • A flag -no-fallback pode ser usada para sondar e exibir ambos os resultados HTTP e HTTPS.
  • Esquema personalizado para portas pode ser definido, por exemplo -ports http:443,http:80,https:8443
  • Resolvedor personalizado suporta múltiplos protocolos (doh|tcp|udp) na forma protocolo:resolvedor:porta (ex. udp:127.0.0.1:53)
  • Arquivos de segredos podem ser usados para autenticação baseada em domínio via -sf secrets.yaml. Tipos de autenticação suportados: BasicAuth, BearerToken, Header, Cookie, Query. Exemplo:
    id: example-auth
    info:
      name: Exemplo de Config de Autenticação
    static:
      - type: Header
        domains:
          - api.example.com
        headers:
          - key: X-API-Key
            value: chave-secreta-aqui
      - type: BasicAuth
        domains-regex:
          - ".*\\.internal\\.com$"
        username: admin
        password: secreta
    
  • As seguintes flags devem ser usadas para casos de uso específicos, em vez de executá-las como padrão com outras sondas:
    • -ports
    • -path
    • -vhost
    • -screenshot
    • -csp-probe
    • -tls-probe
    • -favicon
    • -http2
    • -pipeline
    • -tls-impersonate

Agradecimento

A funcionalidade de sondagem é inspirada no trabalho de @tomnomnom/httprobe ❤️


httpx é feito com 💙 pela equipe projectdiscovery e distribuído sob Licença MIT.

Entrar no Discord

Categorias