HTTPX
httpx is a fast and multi-purpose HTTP toolkit built to support running multiple probes using a public library. Probes are specific tests or checks to gather information about web servers, URLs, or other HTTP elements. Httpx is designed to maintain result reliability with an increased number of threads.
Usage
Usage: httpx [options]
Options
Option Description -l, -listinput file containing list of hosts to process -rr, -requestfile containing raw request -u, -targetinput target host(s) to probe
Probes
Option Description -sc, -status-codedisplay response status-code -cl, -content-lengthdisplay response content-length -ct, -content-typedisplay response content-type -locationdisplay response redirect location -favicondisplay mmh3 hash for ‘/favicon.ico’ file -hash stringdisplay response body hash (supported: md5, mmh3, simhash, sha1, sha256, sha512) -jarmdisplay jarm fingerprint hash -rt, -response-timedisplay response time -lc, -line-countdisplay response body line count -wc, -word-countdisplay response body word count -titledisplay page title -bp, -body-previewdisplay first N characters of response body (default 100) -server, -web-serverdisplay server name -td, -tech-detectdisplay technology in use based on wappalyzer dataset -methoddisplay http request method -websocketdisplay server using websocket -ipdisplay host ip -cnamedisplay host cname -extract-fqdn, -efqdnget domain and subdomains from response body and header in jsonl/csv output -asndisplay host asn information -cdndisplay cdn/waf in use (default true) -probedisplay probe status
Headless
Option Description -ss, -screenshotenable saving screenshot of the page using headless browser -system-chromeenable using local installed chrome for screenshot -ho, -headless-optionsstart headless chrome with additional options -esb, -exclude-screenshot-bytesenable excluding screenshot bytes from json output -ehb, -exclude-headless-bodyenable excluding headless header from json output -no-screenshot-full-pagedisable saving full page screenshot -st, -screenshot-timeoutset timeout for screenshot in seconds (default 10s) -sid, -screenshot-idleset idle time before taking screenshot in seconds (default 1s)
Matchers
Option Description -mc, -match-codematch response with specified status code (-mc 200,302) -ml, -match-lengthmatch response with specified content length (-ml 100,102) -mlc, -match-line-countmatch response body with specified line count (-mlc 423,532) -mwc, -match-word-countmatch response body with specified word count (-mwc 43,55) -mfc, -match-faviconmatch response with specified favicon hash (-mfc 1494302000) -ms, -match-stringmatch response with specified string (-ms admin) -mr, -match-regexmatch response with specified regex (-mr admin) -mcdn, -match-cdnmatch host with specified cdn provider (cloudfront, fastly, gcore, gocache, google) -mrt, -match-response-timematch response with specified response time in seconds (-mrt ’< 1’) -mdc, -match-conditionmatch response with dsl expression condition
Option Description -er, -extract-regexdisplay response content with matched regex -ep, -extract-presetdisplay response content matched by a pre-defined regex (mail, url, ipv4)
Filters
Option Description -fc, -filter-codefilter response with specified status code (-fc 403,401) -fep, -filter-error-pagefilter response with ML based error page detection -fd, -filter-duplicatesfilter out near-duplicate responses (only first response is retained) -fl, -filter-lengthfilter response with specified content length (-fl 23,33) -flc, -filter-line-countfilter response body with specified line count (-flc 423,532) -fwc, -filter-word-countfilter response body with specified word count (-fwc 423,532) -ffc, -filter-faviconfilter response with specified favicon hash (-ffc 1494302000) -fs, -filter-stringfilter response with specified string (-fs admin) -fe, -filter-regexfilter response with specified regex (-fe admin) -fcdn, -filter-cdnfilter host with specified cdn provider (cloudfront, fastly, gcore, gocache, google) -frt, -filter-response-timefilter response with specified response time in seconds (-frt ’> 1’) -fdc, -filter-conditionfilter response with dsl expression condition -stripstrips all tags in response. supported formats: html,xml (default html)
Rate-Limit
Option Description -t, -threadsnumber of threads to use (default 50) -rl, -rate-limitmaximum requests to send per second (default 150) -rlm, -rate-limit-minutemaximum number of requests to send per minute
Misc
Option Description -pa, -probe-all-ipsprobe all the IPs associated with same host -p, -portsports to probe (nmap syntax: eg http:1,2-10,11,https:80) -pathpath or list of paths to probe (comma-separated, file) -tls-probesend http probes on the extracted TLS domains (dns_name) -csp-probesend http probes on the extracted CSP domains -tls-grabperform TLS(SSL) data grabbing -pipelineprobe and display server supporting HTTP1.1 pipeline -http2probe and display server supporting HTTP2 -vhostprobe and display server supporting VHOST -ldv, -list-dsl-variableslist json output field keys name that support dsl matcher/filter
Update
Option Description -up, -updateupdate httpx to latest version -duc, -disable-update-checkdisable automatic httpx update check
Output
Option Description -o, -outputfile to write output results -oa, -output-allfilename to write output results in all formats -sr, -store-responsestore http response to output directory -srd, -store-response-dirstore http response to custom directory -ob, -omit-bodyomit response body in output -csvstore output in csv format -csvo, -csv-output-encodingdefine output encoding -j, -jsonstore output in JSONL(ines) format -irh, -include-response-headerinclude http response (headers) in JSON output (-json only) -irr, -include-responseinclude http request/response (headers + body) in JSON output (-json only) -irrb, -include-response-base64include base64 encoded http request/response in JSON output (-json only) -include-chaininclude redirect http chain in JSON output (-json only) -store-chaininclude http redirect chain in responses (-sr only) -svrc, -store-vision-recon-clusterinclude visual recon clusters (-ss and -sr only) -pr, -protocolprotocol to use (unknown, http11) -fepp, -filter-error-page-pathpath to store filtered error pages (default “filtered_error_page.json”)
Configurations
Option Description -configpath to the httpx configuration file (default $HOME/.config/httpx/config.yaml) -r, -resolverslist of custom resolver (file or comma separated) -allowallowed list of IP/CIDR’s to process (file or comma separated) -denydenied list of IP/CIDR’s to process (file or comma separated) -sni, -sni-namecustom TLS SNI name -random-agentenable Random User-Agent to use (default true) -H, -headercustom http headers to send with request -http-proxy, -proxyproxy (http/socks) to use (eg http://127.0.0.1:8080 ) -unsafesend raw requests skipping golang normalization -resumeresume scan using resume.cfg -fr, -follow-redirectsfollow http redirects -maxr, -max-redirectsmax number of redirects to follow per host (default 10) -fhr, -follow-host-redirectsfollow redirects on the same host -rhsts, -respect-hstsrespect HSTS response headers for redirect requests -vhost-inputget a list of vhosts as input -xrequest methods to probe, use ‘all’ to probe all HTTP methods -bodypost body to include in http request -s, -streamstream mode - start elaborating input targets without sorting -sd, -skip-dedupedisable dedupe input items (only used with stream mode) -ldp, -leave-default-portsleave default http/https ports in host header (eg. http://host:80 - https://host:443 ) -ztlsuse ztls library with autofallback to standard one for tls13 -no-decodeavoid decoding body -tlsi, -tls-impersonateenable experimental client hello (ja3) tls randomization -no-stdinDisable Stdin processing -hae, -http-api-endpointexperimental http api endpoint
Debug
Option Description -health-check, -hcrun diagnostic check up -debugdisplay request/response content in cli -debug-reqdisplay request content in cli -debug-respdisplay response content in cli -versiondisplay httpx version -statsdisplay scan statistic -profile-memoptional httpx memory profile dump file -silentsilent mode -v, -verboseverbose mode -si, -stats-intervalnumber of seconds to wait between showing statistics update (default: 5) -nc, -no-colordisable colors in cli output -tr, -tracetrace
Optimizations
Option Description -nf, -no-fallbackdisplay both probed protocol (HTTPS and HTTP) -nfs, -no-fallback-schemeprobe with protocol scheme specified in input -maxhr, -max-host-errormax error count per host before skipping remaining path/s (default 30) -e, -excludeexclude host matching specified filter (‘cdn’, ‘private-ips’, cidr, ip, regex) -retriesnumber of retries -timeouttimeout in seconds (default 10) -delayduration between each http request (eg: 200ms, 1s) (default -1ns) -rsts, -response-size-to-savemax response size to save in bytes (default 2147483647) -rstr, -response-size-to-readmax response size to read in bytes (default 2147483647)
Cloud
Option Description -authconfigure projectdiscovery cloud (pdcp) api key (default true) -ac, -auth-configconfigure projectdiscovery cloud (pdcp) api key credential file -pd, -dashboardupload / view output in projectdiscovery cloud (pdcp) UI dashboard -tid, -team-idupload asset results to given team id (optional) -aid, -asset-idupload new assets to existing asset id (optional) -aname, -asset-nameassets group name to set (optional) -pdu, -dashboard-uploadupload httpx output file (jsonl) in projectdiscovery cloud (pdcp) UI dashboard