Назад к обновлениям
New releaseJul 22, 2026

httpx v1.10.0

Быстрый, многозондовый HTTP-инструментарий для разведки и сбора информации. Проверяет TLS, CSP, заголовки, технологический стек и CDN. Поддерживает сопоставление, фильтрацию и вывод в JSON для автоматизированного тестирования безопасности.

Поделиться

httpx

ВозможностиУстановкаИспользованиеДокументацияПримечанияПрисоединиться к Discord

httpx — это быстрый и многоцелевой HTTP-инструментарий, позволяющий запускать несколько проверок с использованием библиотеки retryablehttp. Он предназначен для обеспечения надёжности результатов при увеличенном количестве потоков.

Возможности

httpx

  • Простая и модульная кодовая база, упрощающая внесение вклада.
  • Быстрые и полностью настраиваемые флаги для проверки множества элементов.
  • Поддержка нескольких типов HTTP-проверок.
  • Умный автоматический переход с HTTPS на HTTP по умолчанию.
  • Поддержка хостов, URL и CIDR в качестве входных данных.
  • Обработка граничных случаев с повторными попытками, откатами и т.д. для обхода WAF.

Поддерживаемые проверки

ПроверкаПроверка по умолчаниюПроверкаПроверка по умолчанию
URLtrueIPtrue
TitletrueCNAMEtrue
Status CodetrueRaw HTTPfalse
Content LengthtrueHTTP2false
TLS CertificatetrueHTTP Pipelinefalse
CSP HeadertrueVirtual hostfalse
Line CounttrueWord Counttrue
Location HeadertrueCDNfalse
Web ServertruePathsfalse
Web SockettruePortsfalse
Response TimetrueRequest Methodtrue
Favicon HashfalseProbe Statusfalse
Body HashtrueHeader Hashtrue
Redirect chainfalseURL Schemetrue
JARM HashfalseASNfalse

Инструкции по установке

httpx требует go >=1.25.0 для успешной установки. Выполните следующую команду, чтобы получить репозиторий:

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

Чтобы узнать больше об установке httpx, см. https://docs.projectdiscovery.io/tools/httpx/install.

Предупреждение
Этот проект находится в активной разработке. Ожидайте кардинальных изменений в релизах. Перед обновлением просматривайте журнал изменений.
Этот проект в первую очередь создавался как самостоятельный CLI-инструмент. Запуск его в качестве сервиса может представлять угрозу безопасности. Рекомендуется использовать с осторожностью и дополнительными мерами безопасности.

Использование

httpx -h

Эта команда отобразит справку по инструменту. Ниже приведены все поддерживаемые флаги.

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              входной файл со списком хостов для обработки
   -rr, -request string          файл с сырым запросом
   -u, -target string[]          целевой хост(ы) для проверки
   -im, -input-mode string       режим входного файла (burp)

PROBES:
   -sc, -status-code                      отображать код состояния ответа
   -cl, -content-length                   отображать длину тела ответа
   -ct, -content-type                     отображать тип содержимого ответа
   -location                              отображать адрес перенаправления ответа
   -favicon                               отображать mmh3-хэш для файла '/favicon.ico'
   -hash string                           отображать хэш тела ответа (поддерживается: md5,mmh3,simhash,sha1,sha256,sha512)
   -jarm                                  отображать JARM-отпечаток
   -rt, -response-time                    отображать время ответа
   -lc, -line-count                       отображать количество строк в теле ответа
   -wc, -word-count                       отображать количество слов в теле ответа
   -title                                 отображать заголовок страницы
   -bp, -body-preview                     отображать первые N символов тела ответа (по умолчанию 100)
   -server, -web-server                   отображать имя сервера
   -td, -tech-detect                      отображать используемые технологии на основе датасета wappalyzer
   -cff, -custom-fingerprint-file string  путь к файлу пользовательских отпечатков для определения технологии
   -method                                отображать HTTP-метод запроса
   -ws, -websocket                        отображать сервер, использующий websocket
   -ip                                    отображать IP-адрес хоста
   -cname                                 отображать CNAME хоста
   -extract-fqdn, -efqdn                  извлекать домены и поддомены из тела и заголовков ответа в формате jsonl/csv
   -asn                                   отображать информацию ASN хоста
   -cdn                                   отображать используемый CDN/WAF (по умолчанию true)
   -probe                                 отображать статус проверки

HEADLESS:
   -ss, -screenshot                 включить сохранение скриншота страницы с помощью безголового браузера
   -system-chrome                   включить использование локально установленного Chrome для скриншотов
   -ho, -headless-options string[]  запустить безголовый Chrome с дополнительными параметрами
   -esb, -exclude-screenshot-bytes  исключить байты скриншота из JSON-вывода
   -ehb, -exclude-headless-body     исключить безголовый заголовок из JSON-вывода
   -no-screenshot-full-page         отключить сохранение полноразмерного скриншота страницы
   -st, -screenshot-timeout value   установить тайм-аут для скриншота в секундах (по умолчанию 10s)
   -sid, -screenshot-idle value     установить время ожидания перед созданием скриншота в секундах (по умолчанию 1s)
   -jsc, -javascript-code string[]  выполнить JavaScript-код после навигации

MATCHERS:
   -mc, -match-code string            сопоставить ответ с указанным кодом состояния (-mc 200,302)
   -ml, -match-length string          сопоставить ответ с указанной длиной содержимого (-ml 100,102)
   -mlc, -match-line-count string     сопоставить тело ответа с указанным количеством строк (-mlc 423,532)
   -mwc, -match-word-count string     сопоставить тело ответа с указанным количеством слов (-mwc 43,55)
   -mfc, -match-favicon string[]      сопоставить ответ с указанным хэшем фавикона (-mfc 1494302000)
   -ms, -match-string string[]        сопоставить ответ с указанной строкой (-ms admin)
   -mr, -match-regex string[]         сопоставить ответ с указанным regex (-mr admin)
   -mcdn, -match-cdn string[]         сопоставить хост с указанным CDN-провайдером (cloudfront, fastly, google и т.д.)
   -mrt, -match-response-time string  сопоставить ответ с указанным временем ответа в секундах (-mrt '< 1')
   -mdc, -match-condition string      сопоставить ответ с условием DSL-выражения

EXTRACTOR:
   -er, -extract-regex string[]   отображать содержимое ответа, совпадающее с regex
   -ep, -extract-preset string[]  отображать содержимое ответа, совпадающее с предопределённым regex (url,ipv4,mail)

FILTERS:
   -fc, -filter-code string               фильтровать ответы по указанному коду состояния (-fc 403,401)
   -fpt, -filter-page-type string[]       фильтровать ответы по указанному типу страницы (например, -fpt login,captcha,parked)
   -fep, -filter-error-page               [УСТАРЕЛО: используйте -fpt] фильтровать ответы с помощью ML-определения страниц ошибок
   -fd, -filter-duplicates                отфильтровать почти дублирующиеся ответы (сохраняется только первый ответ)
   -fl, -filter-length string             фильтровать ответы по указанной длине содержимого (-fl 23,33)
   -flc, -filter-line-count string        фильтровать тело ответа по указанному количеству строк (-flc 423,532)
   -fwc, -filter-word-count string        фильтровать тело ответа по указанному количеству слов (-fwc 423,532)
   -ffc, -filter-favicon string[]         фильтровать ответы по указанному хэшу фавикона (-ffc 1494302000)
   -fs, -filter-string string[]           фильтровать ответы по указанной строке (-fs admin)
   -fe, -filter-regex string[]            фильтровать ответы по указанному regex (-fe admin)
   -fcdn, -filter-cdn string[]            фильтровать хост по указанному CDN-провайдеру (cloudfront, fastly, google и т.д.)
   -frt, -filter-response-time string     фильтровать ответы по указанному времени ответа в секундах (-frt '> 1')
   -fdc, -filter-condition string         фильтровать ответы по условию DSL-выражения
   -strip                                 удаляет все теги в ответе. Поддерживаемые форматы: html,xml (по умолчанию html)
   -lof, -list-output-fields              список полей для вывода (через запятую)
   -eof, -exclude-output-fields string[]  исключить поля вывода на основе условия

RATE-LIMIT:
   -t, -threads int              количество потоков (по умолчанию 50)
   -rl, -rate-limit int          максимальное количество запросов в секунду (по умолчанию 150)
   -rlm, -rate-limit-minute int  максимальное количество запросов в минуту

MISCELLANEOUS:
   -pa, -probe-all-ips        проверять все IP-адреса, связанные с одним хостом
   -p, -ports string[]        порты для проверки (синтаксис nmap: например http:1,2-10,11,https:80)
   -path string               путь или список путей для проверки (через запятую, файл)
   -tls-probe                 отправлять HTTP-проверки на извлечённые TLS-домены (dns_name)
   -csp-probe                 отправлять HTTP-проверки на извлечённые CSP-домены
   -tls-grab                  выполнять сбор данных TLS(SSL)
   -pipeline                  проверять и отображать серверы, поддерживающие HTTP1.1 pipeline
   -http2                     проверять и отображать серверы, поддерживающие HTTP2
   -vhost                     проверять и отображать серверы, поддерживающие VHOST
   -ldv, -list-dsl-variables  вывести имена ключей полей JSON-вывода, поддерживающие DSL-матчер/фильтр

UPDATE:
   -up, -update                 обновить httpx до последней версии
   -duc, -disable-update-check  отключить автоматическую проверку обновлений httpx

OUTPUT:
   -o, -output string                     файл для записи результатов
   -oa, -output-all                       имя файла для записи результатов во всех форматах
   -sr, -store-response                   сохранять HTTP-ответы в выходную директорию
   -srd, -store-response-dir string       сохранять HTTP-ответы в пользовательскую директорию
   -ob, -omit-body                        исключить тело ответа из вывода
   -csv                                   сохранять вывод в формате CSV
   -csvo, -csv-output-encoding string     задать кодировку вывода
   -j, -json                              сохранять вывод в формате JSONL(ines)
   -irh, -include-response-header         включать HTTP-заголовки ответа в JSON-вывод (только -json)
   -irr, -include-response                включать HTTP-запрос/ответ (заголовки + тело) в JSON-вывод (только -json)
   -irrb, -include-response-base64        включать HTTP-запрос/ответ в кодировке base64 в JSON-вывод (только -json)
   -include-chain                         включать цепочку перенаправлений HTTP в JSON-вывод (только -json)
   -store-chain                           включать цепочку перенаправлений HTTP в ответы (только -sr)
   -svrc, -store-vision-recon-cluster     включать кластеры визуальной разведки (только -ss и -sr)
   -pr, -protocol string                  используемый протокол (unknown, http11, http2, http3)
   -fepp, -filter-error-page-path string  путь для сохранения отфильтрованных страниц ошибок (по умолчанию "filtered_error_page.json")
   -rdb, -result-db                       сохранять результаты в базе данных
   -rdbc, -result-db-config string        путь к файлу конфигурации базы данных
   -rdbt, -result-db-type string          тип базы данных (mongodb, postgres, mysql)
   -rdbcs, -result-db-conn string         строка подключения к БД (env: HTTPX_DB_CONNECTION_STRING)
   -rdbn, -result-db-name string          имя базы данных (по умолчанию "httpx")
   -rdbtb, -result-db-table string        имя таблицы/коллекции (по умолчанию "results")
   -rdbbs, -result-db-batch-size int      размер пакета для вставок в БД (по умолчанию 100)
   -rdbor, -result-db-omit-raw            исключать сырые данные запроса/ответа из БД

CONFIGURATIONS:
   -config string                   путь к файлу конфигурации httpx (по умолчанию $HOME/.config/httpx/config.yaml)
   -r, -resolvers string[]          список пользовательских резолверов (файл или через запятую)
   -allow string[]                  разрешённый список IP/CIDR для обработки (файл или через запятую)
   -deny string[]                   запрещённый список IP/CIDR для обработки (файл или через запятую)
   -sni, -sni-name string           пользовательское TLS SNI-имя
   -random-agent                    включить случайный User-Agent (по умолчанию true)
   -auto-referer                    устанавливать заголовок Referer равным текущему URL
   -H, -header string[]             пользовательские HTTP-заголовки для отправки с запросом
   -http-proxy, -proxy string       прокси (http|socks) для использования (например http://127.0.0.1:8080)
   -unsafe                          отправлять сырые запросы, минуя нормализацию Go
   -resume                          возобновить сканирование с использованием resume.cfg
   -fr, -follow-redirects           следовать HTTP-перенаправлениям
   -maxr, -max-redirects int        максимальное количество перенаправлений на хост (по умолчанию 10)
   -fhr, -follow-host-redirects     следовать перенаправлениям на том же хосте
   -rhsts, -respect-hsts            соблюдать заголовки HSTS при запросах перенаправления
   -vhost-input                     получить список vhost'ов в качестве входных данных
   -x string                        проверяемые HTTP-методы, используйте 'all' для проверки всех методов
   -body string                     тело POST-запроса для включения в HTTP-запрос
   -s, -stream                      потоковый режим — начать обработку входных целей без сортировки
   -sd, -skip-dedupe                отключить дедупликацию входных элементов (только в потоковом режиме)
   -ldp, -leave-default-ports       оставлять порты HTTP/HTTPS по умолчанию в заголовке Host (например http://host:80 - https://host:443)
   -ztls                            использовать библиотеку ztls с автоматическим переходом на стандартную для tls13
   -no-decode                       не декодировать тело
   -tlsi, -tls-impersonate          включить экспериментальную рандомизацию TLS (ja3) client hello
   -no-stdin                        отключить обработку Stdin
   -hae, -http-api-endpoint string  экспериментальный HTTP API-эндпоинт
   -sf, -secret-file string         путь к файлу секретов для аутентификации

DEBUG:
   -health-check, -hc        выполнить диагностическую проверку
   -debug                    отображать содержимое запроса/ответа в CLI
   -debug-req                отображать содержимое запроса в CLI
   -debug-resp               отображать содержимое ответа в CLI
   -version                  отобразить версию httpx
   -stats                    отображать статистику сканирования
   -profile-mem string       необязательный файл дампа памяти httpx
   -silent                   тихий режим
   -v, -verbose              подробный режим
   -si, -stats-interval int  количество секунд между обновлениями статистики (по умолчанию: 5)
   -nc, -no-color            отключить цвета в выводе CLI
   -tr, -trace               трассировка

OPTIMIZATIONS:
   -nf, -no-fallback                  отображать оба проверенных протокола (HTTPS и HTTP)
   -nfs, -no-fallback-scheme          проверять с протоколом, указанным во входных данных
   -maxhr, -max-host-error int        максимальное количество ошибок на хост перед пропуском оставшихся путей (по умолчанию 30)
   -e, -exclude string[]              исключить хост, соответствующий указанному фильтру ('cdn', 'private-ips', cidr, ip, regex)
   -retries int                       количество повторных попыток
   -timeout int                       тайм-аут в секундах (по умолчанию 10)
   -delay value                       задержка между HTTP-запросами (например: 200ms, 1s) (по умолчанию -1ns)
   -rsts, -response-size-to-save int  максимальный размер сохраняемого ответа в байтах (по умолчанию 50000000)
   -rstr, -response-size-to-read int  максимальный размер читаемого ответа в байтах (по умолчанию 50000000)

CLOUD:
   -auth                           настроить API-ключ projectdiscovery cloud (pdcp) (по умолчанию true)
   -ac, -auth-config string        настроить файл учётных данных API-ключа projectdiscovery cloud (pdcp)
   -pd, -dashboard                 загрузить/просмотреть вывод в панели управления projectdiscovery cloud (pdcp)
   -tid, -team-id string           загрузить результаты активов для указанного ID команды (необязательно)
   -aid, -asset-id string          загрузить новые активы в существующий ID актива (необязательно)
   -aname, -asset-name string      задать имя группы активов (необязательно)
   -pdu, -dashboard-upload string  загрузить файл вывода httpx (jsonl) в панель управления projectdiscovery cloud (pdcp)

Запуск httpx

Подробнее о запуске httpx см. https://docs.projectdiscovery.io/tools/httpx/running.

Использование httpx как библиотеки

httpx можно использовать как библиотеку, создав экземпляр структуры Option и заполнив её теми же параметрами, которые задаются через CLI. После проверки структура передаётся экземпляру runner (который следует закрыть в конце программы), и вызывается метод RunEnumeration. Минимальный пример находится в папке examples.

Примечания

  • По умолчанию httpx проверяет схему HTTPS и переходит на HTTP, только если HTTPS недоступен.
  • Экспорт Burp Suite в формате XML можно использовать как входные данные с помощью -l burp-export.xml -im burp.
  • Флаг -no-fallback позволяет проверять и отображать результаты как для HTTP, так и для HTTPS.
  • Можно задать пользовательскую схему для портов, например -ports http:443,http:80,https:8443.
  • Пользовательский резолвер поддерживает несколько протоколов (doh|tcp|udp) в формате protocol:resolver:port (например, udp:127.0.0.1:53).
  • Файлы секретов можно использовать для аутентификации на основе доменов с помощью -sf secrets.yaml. Поддерживаемые типы аутентификации: BasicAuth, BearerToken, Header, Cookie, Query. Пример:
    id: example-auth
    info:
      name: Example Auth Config
    static:
      - type: Header
        domains:
          - api.example.com
        headers:
          - key: X-API-Key
            value: secret-key-here
      - type: BasicAuth
        domains-regex:
          - ".*\\.internal\\.com$"
        username: admin
        password: secret
    
  • Следующие флаги следует использовать для конкретных сценариев, а не запускать вместе с другими проверками по умолчанию:
    • -ports
    • -path
    • -vhost
    • -screenshot
    • -csp-probe
    • -tls-probe
    • -favicon
    • -http2
    • -pipeline
    • -tls-impersonate

Благодарности

Функция проверки вдохновлена работой @tomnomnom/httprobe ❤️


httpx создан с 💙 командой projectdiscovery и распространяется под лицензией MIT.

Join Discord

Категории