【安全工具】Httpx信息收集


前言

  1. HTTPX 是一个功能强大的 HTTP 客户端工具,用于执行各种网络任务,例如发现 Web 应用程序漏洞、探测域名和端口等。它使用了 retryablehttp 库来运行多个探测器,旨在通过增加线程数来提高结果的可靠性。
  2. HTTPX 支持多种 HTTP 请求方法,可以使用自定义标头和数据,并且可以设置请求超时时间、重试次数和批处理大小等选项。此外,HTTPX 还支持代理、SSL 和身份验证,并且可以查找和打印链接、横幅和技术指纹等信息。
  3. HTTPX 还内置了 Wappalyzer 技术检测集成,可以自动识别网站所使用的 CMS 和 Web 服务器,并且可以保存输出为 JSON 格式,方便进一步处理。HTTPX 还有许多其他有用的参数和选项,可以帮助您更好地执行各种网络任务。

提示:以下是本篇文章正文内容,下面案例可供参考

一、下载

Gethub:https://github.com/projectdiscovery/httpx
我们直接用编译好的exe文件:
在这里插入图片描述

二、使用步骤

1.帮助文档

httpx.exe -h

标志:
输入:
-l,-list string      包含要处理的主机列表的输入文件
-rr,-request string  包含原始请求的文件
-u,-target string[]  要探测的目标主机

探测器:
-sc,-status-code     显示响应的状态码
-cl,-content-length  显示响应的内容长度
-ct,-content-type    显示响应的内容类型
-location             显示重定向位置
-favicon              显示 /favicon.ico 文件的 mmh3 哈希值
-hash string          显示响应体散列值(支持的算法:md5,mmh3,simhash,sha1,sha256,sha512)
-jarm                 显示 jarm 指纹哈希值
-rt,-response-time   显示响应时间
-lc,-line-count      显示响应体行数
-wc,-word-count      显示响应体单词数
-title                显示页面标题
-server, -web-server  显示服务器名称
-td, -tech-detect     基于 wappalyzer 数据集显示正在使用的技术
-method               显示 HTTP 请求方法
-websocket            显示使用 websocket 的服务器
-ip                   显示主机 IP
-cname                显示主机 CNAME
-asn                  显示主机 ASN 信息
-cdn                  显示正在使用的 CDN
-probe                显示探针状态

无头:
-ss,-screenshot       启用使用 headless 浏览器保存页面截图
-system-chrome         启用使用本地安装的 Chrome 进行截屏

匹配器:
-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[]      匹配具有指定 favicon 哈希值的响应(例如:-mfc 1494302000)
-ms,-match-string string          匹配具有指定字符串的响应(例如:-ms admin)
-mr,-match-regex string           匹配具有指定正则表达式的响应(例如:-mr admin)
-mcdn,-match-cdn string[]         匹配使用指定 CDN 提供商的主机(例如:cloudfront、fastly、google、leaseweb)
-mrt,-match-response-time string  匹配指定响应时间的响应,单位为秒(例如:-mrt '< 1')
-mdc,-match-condition string      使用 DSL 表达式条件匹配响应

提取器:
-er,-extract-regex string[]   显示与匹配的正则表达式相匹配的响应内容
-ep,-extract-preset string[]  显示由预定义的正则表达式(url、ipv4、mail)匹配的响应内容
-fc,-filter-code string     过滤具有指定状态码的响应(例如:-fc 403,401)
-fl,-filter-length string          过滤具有指定内容长度的响应(例如:-fl 23,33)
-flc,-filter-line-count string     过滤响应体具有指定行数的响应(例如:-flc 423,532)
-fw,-filter-word string[]          过滤包含指定单词的响应体(例如:-fw admin,password)
-fcdn,-filter-cdn string[]         过滤使用指定 CDN 提供商的主机(例如:cloudfront、fastly、google、leaseweb)
-frt,-filter-response-time string  过滤指定响应时间的响应,单位为秒(例如:-frt '>2')
-fdc,-filter-condition string      使用 DSL 表达式条件过滤响应。

速率限制:
-t,-threads int              要使用的线程数 (默认值为 50)
-rl,-rate-limit int          每秒发送的最大请求数 (默认值为 150)
-rlm,-rate-limit-minute int  每分钟发送的最大请求数

杂项:
-pa,-probe-all-ips        探测与同一主机关联的所有 IP
-p,-ports string[]        要探测的端口 (nmap 语法: 如 http:1,2-10,11,https:80)
-path string               要探测的路径或路径列表(逗号分隔的文件)
-tls-probe                 在提取的 TLS 域名上发送 http 探针 (dns_name)
-csp-probe                 在提取的 CSP 域上发送 http 探针
-tls-grab                  执行 TLS(SSL) 数据抓取
-pipeline                  探测和显示支持 HTTP1.1 管道的服务器
-http2                     探测和显示支持 HTTP2 的服务器
-vhost                     探测并显示支持 VHOST 的服务器
-ldv,-list-dsl-variables  列出支持 dsl 匹配器/过滤器的 json 输出字段键名

更新:
-up,-update                 将 httpx 更新到最新版本
-duc,-disable-update-check  禁用 httpx 的自动更新检查

输出:
-o,-output string                  要写入输出结果的文件
-sr,-store-response                将 http 响应存储到输出目录
-srd,-store-response-dir string    将 http 响应存储到自定义目录
-csv                                以 csv 格式存储输出
-csvo,-csv-output-encoding string  定义输出编码
-json                               以 JSONL(ines) 格式存储输出
-irr,-include-response             在 JSON 输出中包含 http 请求/响应 (-json only)
-irrb,-include-response-base64     在 JSON 输出中包含 base64 编码的 http 请求/响应 (-json only)
-include-chain                      在 JSON 输出中包含重定向 http 链 (-json only)
-store-chain                        在响应中包含 http 重定向链 (-sr only)

配置:
-r,-resolvers string[]       自定义解析器列表 (文件或逗号分隔)
-allow string[]               允许处理的 IP/CIDR 列表 (文件或逗号分隔)
-deny string[]                拒绝处理的 IP/CIDR 列表 (文件或逗号分隔)
-sni, -sni-name string        自定义 TLS SNI 名称
-random-agent                 启用随机 User-Agent 使用 (默认为 true)
-H, -header string[]          自定义要发送的 http 请求头
-http-proxy, -proxy string    要使用的 http 代理 (例如 http://127.0.0.1:8080)
-unsafe                       发送跳过 golang 规范化的原始请求
-resume                       使用 resume.cfg 恢复扫描
-fr, -follow-redirects        跟踪 http 重定向
-maxr, -max-redirects int     每个主机要跟踪的最大重定向数量 (默认值为 10)
-fhr, -follow-host-redirects  在同一主机上跟踪重定向
-vhost-input                  获取一个 vhosts 列表作为输入
-x string                     要探测的请求方法,使用 'all' 探测所有 HTTP 方法
-body string                  在 http 请求中包含 post body
-s, -stream                   流模式 - 开始详细说明输入目标而不进行排序
-sd, -skip-dedupe             禁用去重输入项(仅与流模式一起使用)
-ldp, -leave-default-ports    在 host header 中保留默认的 http/https 端口 (例如 http://host:80 - https://host:443
-ztls                         使用 ztls 库,并自动回退到 tls13 的标准库
-no-decode                    避免解码响应体

调试:
-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 输出中的颜色

优化:
-nf, -no-fallback                  显示探测的协议 (HTTPS 和 HTTP)
-nfs, -no-fallback-scheme          使用输入中指定的协议方案进行探测
-maxhr, -max-host-error int        跳过剩余路径/ s 前每个主机的最大错误计数 (默认值为 30)
-ec, -exclude-cdn                  跳过 CDNs 的完整端口扫描 (仅检查 80、443)
-retries int                       重试次数
-timeout int                       超时时间,单位为秒 (默认值为 10)
-delay duration                    每个 http 请求之间的持续时间 (例如:200ms,1s) (默认值为-1ns)
-rsts, -response-size-to-save int  要保存的最大响应体字节数 (默认值为 2147483647)
-rstr, -response-size-to-read int  要读取的最大响应体字节数 (默认值为 2147483647)

2.常用命令

探测网址的基本信息:.\httpx.exe -u https://www.example.com

在这里插入图片描述

从文件中扫描多个网址:.\httpx.exe -l targets.txt

在这里插入图片描述

使用自定义请求头进行扫描:.\httpx.exe -u https://www.example.com -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

在这里插入图片描述

禁止重定向并设置超时:./httpx -u http://sdfadsf.com  -timeout 10

在这里插入图片描述

显示 Web 服务器和 CDN 信息:.\httpx.exe -u https://baidu.com -cdn -web-server

在这里插入图片描述

根据指定的状态码过滤响应:.\httpx.exe -l .\url.txt -fc 403,404

在这里插入图片描述

启用随机 User-Agent 并避免解码响应体:httpx -url https://www.example.com -random-agent -no-decode

在这里插入图片描述

常用组合命令:

批量探测
.\httpx.exe -l .\url.txt -cdn -web-server -fc 404,500 -o output.txt -random-agent -timeout 10 

在这里插入图片描述

批量二:探测成功的url输出
.\httpx.exe -l .\url.txt -cdn  -fc 404,500,400,403 -o output.txt -random-agent -timeout 10 

在这里插入图片描述
httpx可以使用代理进行扫描这里不在演示


总结

  1. 准备目标列表:在使用 Httpx 工具之前,请确保您有一个包含所有目标网址的列表或文件。这可以是手动创建的文本文件或从其他源生成的文本文件。
    选择扫描模式:Httpx 提供了两种扫描模式:stream 和 standard。其中 stream 模式可用于未排序的大型目标列表。使用 standard 模式进行有序扫描以获得更好的结果。
  2. 启用多线程:为了加快扫描速度并节省时间,可以使用 -threads 参数设置要使用的线程数。
  3. 过滤响应结果:使用 -fc、-fs 和 -fe 参数,可以根据状态码、字符串和正则表达式来过滤响应结果。
  4. 探测 CDN 和 Web 服务器:使用 -cdn 和 -web-server 参数进行探测。
  5. 使用自定义请求头:使用 -H 参数添加自定义请求头进行扫描。
  6. 禁止跟随重定向:使用 -no-follow-redirects 来禁止跟随重定向。
  7. 使用代理:在某些情况下,您可能需要使用代理来扫描目标网址。使用 -proxy 参数指定要使用的代理地址。
  8. 启用随机 User-Agent:使用 -random-agent 命令启用随机 User-Agent 来避免被识别并提高扫描成功率。
  9. 尝试避免解码响应体:使用 -no-decode 命令可以避免对响应体进行解码,并快速地扫描目标网站。
  • 14
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cun'zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值