一款自动化工具,可同时进行爬取、填写表单、触发错误/调试页面,并从网站的客户端代码中"劫取"机密信息。
要使用该工具,你可以从仓库的 Releases 部分获取任何一个预构建的二进制文件。如果你想自行编译源码,需要 Go > 1.16 环境。直接运行 go build 即可生成可用的二进制文件。
此外,你还需要两个 JSON 文件(lootdb.json 和 regexes.json),它们可以与二进制文件一同从仓库获取。将所有三个文件放在同一文件夹后,即可启动工具。
视频演示:
以下是该工具的帮助使用信息:
$ ./httploot --help
_____
)=(
/ \ H T T P L O O T
( $ ) v0.1
\___/
[+] HTTPLoot by RedHunt Labs - A Modern Attack Surface (ASM) Management Company
[+] Author: Pinaki Mondal (RHL Research Team)
[+] Continuously Track Your Attack Surface using https://redhuntlabs.com/nvadr.
Usage of ./httploot:
-concurrency int
最大并发处理的站点数量(默认 100)
-depth int
爬取时允许的最大深度限制(默认 3)
-form-length int
随机生成用于填写表单字段的字符串长度(默认 5)
-form-string string
工具自动填写表单时使用的值;若不提供则随机生成字符串
-input-file string
包含要处理域名的输入文件路径
-output-file string
CSV 输出文件路径,用于写入结果(默认 "httploot-results.csv")
-parallelism int
每个站点并行爬取的 URL 数量(默认 15)
-submit-forms
是否自动提交表单以触发调试页面
-timeout int
HTTP 请求的默认超时时间(默认 10)
-user-agent string
HTTP 请求期间使用的用户代理(默认 "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0")
-verify-ssl
发起 HTTP 请求时是否验证 SSL 证书
-wildcard-crawl
允许爬取所扫描域名之外的链接
有两个标志用于控制并发扫描:
-concurrency:指定最大并发处理的站点数量。-parallelism:指定每个站点并行爬取的链接数量。-concurrency 和 -parallelism 对工具的性能和结果可靠性都至关重要。
爬取深度可通过 -depth 标志指定。提供的整数值表示在站点上爬取链接的最大链深度。
一个重要标志 -wildcard-crawl 用于指定是否爬取作用域之外域的 URL。
注意:如果爬虫持续发现其他域名的链接,使用此标志在最坏情况下可能导致无限爬取。
如果你希望工具扫描调试页面,需要指定 -submit-forms 参数。这将指示工具自动提交流单,并尝试在成功识别技术栈后触发错误/调试页面。
如果启用了 -submit-forms 标志,你可以控制提交到表单字段的字符串。-form-string 指定要提交的字符串,而 -form-length 控制随机生成字符串的长度,用于填充表单。
标志如:
-timeout - 指定 HTTP 请求的超时时间。-user-agent - 指定 HTTP 请求中使用的用户代理。-verify-ssl - 指定是否验证 SSL 证书。可以使用 -input-file 参数指定要读取的输入文件。你可以提供一个包含待扫描 URL 列表的文件路径。-output-file 标志用于指定结果输出文件路径——默认情况下输出到名为 httploot-results.csv 的文件。
有关促成该工具开发的研究的更多详细信息,请访问我们的 RedHunt Labs 博客。
该工具采用 MIT 许可证。详见 LICENSE 文件。
当前工具版本为 v0.1。
RedHunt Labs 研究团队感谢 shhgit 的创建者和维护者,因为他们在其仓库中提供了正则表达式。