【安全工具】Httpx信息收集

news2024/9/21 14:41:22

文章目录

  • 前言
  • 一、下载
  • 二、使用步骤
    • 1.帮助文档
    • 2.常用命令
    • 常用组合命令:
  • 总结


前言

  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 命令可以避免对响应体进行解码,并快速地扫描目标网站。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[计算机图形学]相机与透镜(前瞻预习/复习回顾)

一、相机 1.成像方法 成像方法有两种&#xff0c;合成和捕捉&#xff0c;我们之前所说的光栅化和光线追踪都属于合成的方法&#xff0c;也就是实际上不存在的东西。而另一种成像方法叫做捕捉成像&#xff0c;也就是把真实世界中存在的一些东西变成照片这就是捕捉成像&#xf…

【量化课程】01_投资与量化投资

文章目录 1.1 什么是投资1.1.1 经济意义上的投资1.1.2 投资的分类1.1.3 金融投资1.1.4 个人投资者投资品种1.1.5 投资VS投机 1.2 股票投资的基本流程1.3 常见的股票投资分析流派1.3.1 投资者分析流派 1.4 什么是量化投资1.4.1 量化投资基本概念1.4.2 量化投资的优势1.4.3 量化投…

C多线程、锁、同步、信号量

文章目录 一 线程函数1.1 创建线程1.2 线程退出1.3 线程回收1.4 线程分离&#xff1a;1.5 其他线程函数1.5.1 线程取消1.5.2 线程ID比较 二 线程同步2.1 互斥锁2.1.1定义2.1.2 初始化2.1.3 销毁2.1.4 加锁 、 常试锁、解锁2.1.5 互斥锁使用 2.2 死锁2.3 如何避免死锁2.4 读写锁…

05_从0运行,重定位,初始化,中断再到定时器

总结 这边简单讲讲,代码上电后从0开始发生了什么,为什么要重定位把代码复制到sdram, bin文件前面几条跳转函数都跳转去哪 中断产生后发生什么 重定位问题 1.为什么需要重定位 把程序从一个位置移到另一个位置 叫重定位 可以只重定位部分段的数据 也可以把所有的都重定位到sd…

Linux运维之shell基础

一.流程控制 1.if判断 基本语法&#xff1a; if [ 条件判断式 ] then 程序 elif [ 条件判断式 ] then 程序 else 程序 fi注意事项&#xff1a; ①[ 条件判断式 ]&#xff0c;中括号和条件判断式之间必须有空格②if 后要有空格 例如&#xff0c;现在写一个if.sh脚本文件 #…

echarts关于自定义饼图数据刷新和颜色渲染问题

在使用echarts的自定义饼图Customized Pie时&#xff0c;定义的动态数据会发生颜色无法渲染的问题&#xff0c;如下图所示&#xff1a; 该图表的颜色是根据itemStyle内的color属性而来&#xff0c;如下&#xff1a; itemStyle: {color: #4d90fe, /* 图表的颜色 */shadowBlur:…

【python知识】importlib包详解

importlib — The implementation of import — Python 3.11.3 documentation 目录 一、说明 二、 模块导入简介 2.1 最简单的 importlib用途 2.2 importlib 包的目的有三个 2.3 import_module() 和__import__() 三、高级模块使用 3.1 动态引入 3.2 模块引入检查 3…

SpringBoot整合Mybatis-Plus、Jwt实现登录token设置

Spring Boot整合Mybatis-plus实现登录常常需要使用JWT来生成用户的token并设置用户权限的拦截器。本文将为您介绍JWT的核心讲解、示例代码和使用规范&#xff0c;以及如何实现token的生成和拦截器的使用。 一、JWT的核心讲解 JWT&#xff08;JSON Web Token&#xff09;是一种…

JavaWeb——HTML和CSS

HTML和CSS定义 标记语言 :比如XML:可扩展的标记语言&#xff0c;标签可以自己定义&#xff0c;解析时需要按照定义的规则去解析。 学习目的:掌握常见标签和常见样式的使用 HTML 结构: 特点: 1.不区分大小写&#xff0c;不管是<html>还是<HTML>都是一样的作用 …

错题笔记第一篇

目录 1. strlen的用法2. case3. switch4. 二分查找 1. strlen的用法 正确答案 &#xff1a;C strlen计算的是字符串的长度&#xff0c;二字符串是以\0结尾&#xff0c;而咱们并没有存储\0&#xff0c;后序的空间是未知的&#xff0c;strlen找不到\0就会一直找&#xff0c;所以它…

如何使 VSCode 中 CMake Debug 的输出显示在 cmd 上而不是自带的 debug console

如何使 VSCode 中 CMake Debug 的输出显示在 cmd 上而不是自带的 debug console 首先需要明确的一点是从 VSCode 插件商店下载的 CMake 是默认打印输出的结果在 debug console 中的&#xff0c;就像下面这样&#xff1a; 可以看到&#xff0c;一个问题是在加载 dll 时候会频繁…

82. Python split方法-分割字符串

82. split方法-分割字符串 文章目录 82. split方法-分割字符串1. 什么是split( )函数2. split( )方法的语法格式如下&#xff1a;3. 实操练习4. 列表索引取值知识回顾5. 用split方法分解网址提取有效信息6. 从地址信息中拆分省、市、区信息 1. 什么是split( )函数 split[splɪ…

深度学习模型压缩与优化加速

1. 简介 深度学习&#xff08;Deep Learning&#xff09;因其计算复杂度或参数冗余&#xff0c;在一些场景和设备上限制了相应的模型部署&#xff0c;需要借助模型压缩、系统优化加速、异构计算等方法突破瓶颈&#xff0c;即分别在算法模型、计算图或算子优化以及硬件加速等层…

《LearnUE——基础指南:上篇—2》——GamePlay架构之Level和World

目录 听说世界是由多个Level组成的 1.2.1 引言 1.2.2 建造大陆&#xff08;ULevel&#xff09; 1.2.3构建世界&#xff08;World&#xff09; 1.2.4总结 听说世界是由多个Level组成的 1.2.1 引言 上小节谈到Actor和Component的关系&#xff0c;UE利用Actor的概念组成了世…

GitLab统计代码量

gitlab官方文档&#xff1a;https://docs.gitlab.com/ee/api/index.html 1、生成密钥 登录gitlab&#xff0c;编辑个人资料&#xff0c;设置访问令牌 2、获取当前用户所有可见的项目 接口地址 GET请求 http://gitlab访问地址/api/v4/projects?private_tokenxxx 返回参数 …

【文章学习系列之模型】Non-stationary Transformers

本章内容 文章概况总体结构主要模块Series Stationarization&#xff08;序列平稳化模块&#xff09;De-stationary Attention&#xff08;逆平稳化注意力模块&#xff09; 实验结果消融实验总结 文章概况 《Non-stationary Transformers:Exploring the Stationarity in Time …

Docker 存储

Docker 存储 docker 默认存储方式docker 持久化存储Volumes &#xff08;卷&#xff09;简介推荐使用情况 Bind mounts &#xff08;绑定挂载&#xff09;简介推荐使用情况 绑定挂载与卷注意点 docker 非持久化存储tmpfs mounts &#xff08;tmpfs 挂载&#xff09;简介推荐使用…

leetcode100——相同的树

文章目录 题目详情分析Java完整代码 题目详情 leetcode100 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例&#xff1a; 分析 主要想法…

vue3头像上传组件

用到了自定义组件v-model的双向绑定使用input的typefile这个原生html元素&#xff0c;通过监听change事件&#xff0c;获取到选择的文件&#xff08;注意&#xff0c;选择完文件值后&#xff0c;要把这个隐藏的input的typefile元素的value置为空&#xff0c;否则&#xff0c;下…

【关于C++中----异常】

文章目录 一、C语言中处理错误的方式二、C异常概念三、异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异常体系五、C标准库的异常体系六、异常的优缺点 一、C语言中处理错误的方式 C语言中常见的错误类型包括&#xff1a;语法错误、逻…