httpx
v1.6.9
기능 • 설치 • 사용법 • 문서 • 참고 • Discord 가입
httpx
retryablehttp 라이브러리를 사용하여 여러 프로브를 실행할 수 있는 빠르고 다목적 HTTP 도구 키트입니다. 스레드 수를 늘려 결과 신뢰성을 유지하도록 설계되었습니다.
프로브 | 기본 확인 | 프로브 | 기본 확인 |
---|---|---|---|
URL | 진실 | IP | 진실 |
제목 | 진실 | CNAME | 진실 |
상태 코드 | 진실 | 원시 HTTP | 거짓 |
콘텐츠 길이 | 진실 | HTTP2 | 거짓 |
TLS 인증서 | 진실 | HTTP 파이프라인 | 거짓 |
CSP 헤더 | 진실 | 가상 호스트 | 거짓 |
줄 수 | 진실 | 단어 수 | 진실 |
위치 헤더 | 진실 | CDN | 거짓 |
웹 서버 | 진실 | 경로 | 거짓 |
웹 소켓 | 진실 | 포트 | 거짓 |
응답 시간 | 진실 | 요청 방법 | 진실 |
파비콘 해시 | 거짓 | 프로브 상태 | 거짓 |
바디 해시 | 진실 | 헤더 해시 | 진실 |
리디렉션 체인 | 거짓 | URL 체계 | 진실 |
JARM 해시 | 거짓 | ASN | 거짓 |
httpx
성공적으로 설치하려면 go1.21이 필요합니다. 저장소를 얻으려면 다음 명령을 실행하십시오.
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
httpx 설치에 대한 자세한 내용은 https://docs.projectdiscovery.io/tools/httpx/install을 참조하세요.
❗ 면책조항 |
---|
이 프로젝트는 활발하게 개발 중입니다 . 릴리스와 함께 주요 변경 사항이 예상됩니다. 업데이트하기 전에 변경 로그를 검토하세요. |
이 프로젝트는 주로 독립형 CLI 도구로 사용되도록 제작되었습니다. 서비스로 실행하면 보안 위험이 발생할 수 있습니다. 주의 깊게 사용하고 추가 보안 조치를 취하는 것이 좋습니다. |
httpx -h
그러면 도구에 대한 도움말이 표시됩니다. 지원하는 모든 스위치는 다음과 같습니다.
Usage:
./httpx [flags]
Flags:
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 input file containing list of hosts to process
-rr, -request string file containing raw request
-u, -target string[] input target host(s) to probe
PROBES:
-sc, -status-code display response status-code
-cl, -content-length display response content-length
-ct, -content-type display response content-type
-location display response redirect location
-favicon display mmh3 hash for '/favicon.ico' file
-hash string display response body hash (supported: md5,mmh3,simhash,sha1,sha256,sha512)
-jarm display jarm fingerprint hash
-rt, -response-time display response time
-lc, -line-count display response body line count
-wc, -word-count display response body word count
-title display page title
-bp, -body-preview display first N characters of response body (default 100)
-server, -web-server display server name
-td, -tech-detect display technology in use based on wappalyzer dataset
-method display http request method
-websocket display server using websocket
-ip display host ip
-cname display host cname
-extract-fqdn, -efqdn get domain and subdomains from response body and header in jsonl/csv output
-asn display host asn information
-cdn display cdn/waf in use (default true)
-probe display probe status
HEADLESS:
-ss, -screenshot enable saving screenshot of the page using headless browser
-system-chrome enable using local installed chrome for screenshot
-ho, -headless-options string[] start headless chrome with additional options
-esb, -exclude-screenshot-bytes enable excluding screenshot bytes from json output
-ehb, -exclude-headless-body enable excluding headless header from json output
-st, -screenshot-timeout value set timeout for screenshot in seconds (default 10s)
-sid, -screenshot-idle value set idle time before taking screenshot in seconds (default 1s)
MATCHERS:
-mc, -match-code string match response with specified status code (-mc 200,302)
-ml, -match-length string match response with specified content length (-ml 100,102)
-mlc, -match-line-count string match response body with specified line count (-mlc 423,532)
-mwc, -match-word-count string match response body with specified word count (-mwc 43,55)
-mfc, -match-favicon string[] match response with specified favicon hash (-mfc 1494302000)
-ms, -match-string string[] match response with specified string (-ms admin)
-mr, -match-regex string[] match response with specified regex (-mr admin)
-mcdn, -match-cdn string[] match host with specified cdn provider (cloudfront, fastly, google)
-mrt, -match-response-time string match response with specified response time in seconds (-mrt '< 1')
-mdc, -match-condition string match response with dsl expression condition
EXTRACTOR:
-er, -extract-regex string[] display response content with matched regex
-ep, -extract-preset string[] display response content matched by a pre-defined regex (url,ipv4,mail)
FILTERS:
-fc, -filter-code string filter response with specified status code (-fc 403,401)
-fep, -filter-error-page filter response with ML based error page detection
-fd, -filter-duplicates filter out near-duplicate responses (only first response is retained)
-fl, -filter-length string filter response with specified content length (-fl 23,33)
-flc, -filter-line-count string filter response body with specified line count (-flc 423,532)
-fwc, -filter-word-count string filter response body with specified word count (-fwc 423,532)
-ffc, -filter-favicon string[] filter response with specified favicon hash (-ffc 1494302000)
-fs, -filter-string string[] filter response with specified string (-fs admin)
-fe, -filter-regex string[] filter response with specified regex (-fe admin)
-fcdn, -filter-cdn string[] filter host with specified cdn provider (cloudfront, fastly, google)
-frt, -filter-response-time string filter response with specified response time in seconds (-frt '> 1')
-fdc, -filter-condition string filter response with dsl expression condition
-strip strips all tags in response. supported formats: html,xml (default html)
RATE-LIMIT:
-t, -threads int number of threads to use (default 50)
-rl, -rate-limit int maximum requests to send per second (default 150)
-rlm, -rate-limit-minute int maximum number of requests to send per minute
MISCELLANEOUS:
-pa, -probe-all-ips probe all the ips associated with same host
-p, -ports string[] ports to probe (nmap syntax: eg http:1,2-10,11,https:80)
-path string path or list of paths to probe (comma-separated, file)
-tls-probe send http probes on the extracted TLS domains (dns_name)
-csp-probe send http probes on the extracted CSP domains
-tls-grab perform TLS(SSL) data grabbing
-pipeline probe and display server supporting HTTP1.1 pipeline
-http2 probe and display server supporting HTTP2
-vhost probe and display server supporting VHOST
-ldv, -list-dsl-variables list json output field keys name that support dsl matcher/filter
UPDATE:
-up, -update update httpx to latest version
-duc, -disable-update-check disable automatic httpx update check
OUTPUT:
-o, -output string file to write output results
-oa, -output-all filename to write output results in all formats
-sr, -store-response store http response to output directory
-srd, -store-response-dir string store http response to custom directory
-ob, -omit-body omit response body in output
-csv store output in csv format
-csvo, -csv-output-encoding string define output encoding
-j, -json store output in JSONL(ines) format
-irh, -include-response-header include http response (headers) in JSON output (-json only)
-irr, -include-response include http request/response (headers + body) in JSON output (-json only)
-irrb, -include-response-base64 include base64 encoded http request/response in JSON output (-json only)
-include-chain include redirect http chain in JSON output (-json only)
-store-chain include http redirect chain in responses (-sr only)
-svrc, -store-vision-recon-cluster include visual recon clusters (-ss and -sr only)
-pr, -protocol string protocol to use (unknown, http11)
-fepp, -filter-error-page-path string path to store filtered error pages (default "filtered_error_page.json")
CONFIGURATIONS:
-config string path to the httpx configuration file (default $HOME/.config/httpx/config.yaml)
-r, -resolvers string[] list of custom resolver (file or comma separated)
-allow string[] allowed list of IP/CIDR's to process (file or comma separated)
-deny string[] denied list of IP/CIDR's to process (file or comma separated)
-sni, -sni-name string custom TLS SNI name
-random-agent enable Random User-Agent to use (default true)
-H, -header string[] custom http headers to send with request
-http-proxy, -proxy string http proxy to use (eg http://127.0.0.1:8080)
-unsafe send raw requests skipping golang normalization
-resume resume scan using resume.cfg
-fr, -follow-redirects follow http redirects
-maxr, -max-redirects int max number of redirects to follow per host (default 10)
-fhr, -follow-host-redirects follow redirects on the same host
-rhsts, -respect-hsts respect HSTS response headers for redirect requests
-vhost-input get a list of vhosts as input
-x string request methods to probe, use 'all' to probe all HTTP methods
-body string post body to include in http request
-s, -stream stream mode - start elaborating input targets without sorting
-sd, -skip-dedupe disable dedupe input items (only used with stream mode)
-ldp, -leave-default-ports leave default http/https ports in host header (eg. http://host:80 - https://host:443
-ztls use ztls library with autofallback to standard one for tls13
-no-decode avoid decoding body
-tlsi, -tls-impersonate enable experimental client hello (ja3) tls randomization
-no-stdin Disable Stdin processing
-hae, -http-api-endpoint string experimental http api endpoint
DEBUG:
-health-check, -hc run diagnostic check up
-debug display request/response content in cli
-debug-req display request content in cli
-debug-resp display response content in cli
-version display httpx version
-stats display scan statistic
-profile-mem string optional httpx memory profile dump file
-silent silent mode
-v, -verbose verbose mode
-si, -stats-interval int number of seconds to wait between showing a statistics update (default: 5)
-nc, -no-color disable colors in cli output
-tr, -trace trace
OPTIMIZATIONS:
-nf, -no-fallback display both probed protocol (HTTPS and HTTP)
-nfs, -no-fallback-scheme probe with protocol scheme specified in input
-maxhr, -max-host-error int max error count per host before skipping remaining path/s (default 30)
-e, -exclude string[] exclude host matching specified filter ('cdn', 'private-ips', cidr, ip, regex)
-retries int number of retries
-timeout int timeout in seconds (default 10)
-delay value duration between each http request (eg: 200ms, 1s) (default -1ns)
-rsts, -response-size-to-save int max response size to save in bytes (default 2147483647)
-rstr, -response-size-to-read int max response size to read in bytes (default 2147483647)
CLOUD:
-auth configure projectdiscovery cloud (pdcp) api key (default true)
-ac, -auth-config string configure projectdiscovery cloud (pdcp) api key credential file
-pd, -dashboard upload / view output in projectdiscovery cloud (pdcp) UI dashboard
-tid, -team-id string upload asset results to given team id (optional)
-aid, -asset-id string upload new assets to existing asset id (optional)
-aname, -asset-name string assets group name to set (optional)
-pdu, -dashboard-upload string upload httpx output file (jsonl) in projectdiscovery cloud (pdcp) UI dashboard
httpx 실행에 대한 자세한 내용은 https://docs.projectdiscovery.io/tools/httpx/running을 참조하세요.
httpx
라이브러리로 사용 Option
구조체의 인스턴스를 생성하고 CLI를 통해 지정되는 것과 동일한 옵션으로 채워서 httpx
라이브러리로 사용할 수 있습니다. 유효성이 검사되면 구조체를 실행기 인스턴스에 전달하고(프로그램 종료 시 닫힘) RunEnumeration
메서드를 호출해야 합니다. 이를 수행하는 방법에 대한 최소한의 예는 예제 폴더에 있습니다.
httpx
프로브는 HTTPS 에 연결할 수 없는 경우에만 HTTP 로 대체됩니다.-no-fallback
플래그를 사용하면 HTTP 및 HTTPS 결과를 모두 조사하고 표시할 수 있습니다.-ports http:443,http:80,https:8443
protocol:resolver:port
(예: udp:127.0.0.1:53
) 형식으로 여러 프로토콜( doh|tcp|udp )을 지원합니다.-ports
-path
-vhost
-screenshot
-csp-probe
-tls-probe
-favicon
-http2
-pipeline
-tls-impersonate
프로빙 기능은 @tomnomnom/httprobe 작업에서 영감을 받았습니다 ❤️
httpx
는 ? 프로젝트 발견 팀에 의해 MIT 라이선스에 따라 배포됩니다.