用于发现反向代理背后的原始主机的工具。可用于绕过 WAF 及其他反向代理。
此工具首先向您提供的主机名/URL 发起 HTTP 请求并存储响应,然后向您提供的每个 IP 地址通过 HTTP(80)和 HTTPS(443)默认发起请求(更多端口可通过选项指定),并将 Host 头设置为原始主机(:port)。随后使用 Levenshtein 算法将每个响应与原始响应进行比较,以确定相似度。如果响应相似,则视为匹配。
通过 stdin 提供 IP 地址列表,并通过 -h 选项提供原始主机名。例如:
prips 93.184.216.0/24 | hakoriginfinder -h https://example.com:443/foo
您可以使用 -l 设置 Levenshtein 距离阈值。数值越小,匹配所需的相似度越高,默认为 5。
线程数可通过 -t 设置,默认为 32。
主机名通过 -h 设置,无默认值。
通过 stdin 提供的 IP 地址所使用的端口通过 -p 设置,默认为 80,443。
输出为三列,以空格分隔。第一列为 "MATCH" 或 "NOMATCH",取决于是否达到 Levenshtein 阈值。第二列为正在测试的 URL,第三列为 Levenshtein 分数。
$ prips 1.1.1.0/24 | hakoriginfinder -h http://one.one.one.one:80/index.html -p 80,443,8080,8443
Redirect 301 to: https://one.one.one.one/index.html
Redirect 308 to: https://one.one.one.one/
NOMATCH http://1.1.1.31:443/ 56290
NOMATCH http://1.1.1.17:443/ 56290
NOMATCH http://1.1.1.4:443/ 56290
NOMATCH http://1.1.1.0:443/ 56290
NOMATCH http://1.1.1.27:443/ 56290
NOMATCH http://1.1.1.1:443/ 56290
NOMATCH http://1.1.1.11:443/ 56290
NOMATCH http://1.1.1.3:443/ 56290
NOMATCH http://1.1.1.25:443/ 56290
NOMATCH http://1.1.1.5:443/ 56290
NOMATCH http://1.1.1.24:443/ 56290
... 为简洁起见已省略 ...
NOMATCH http://1.1.1.185:8443/ 56290
NOMATCH http://1.1.1.183:8443/ 56290
MATCH https://1.1.1.1:443/ 0
... 为简洁起见已省略 ...
NOMATCH http://1.1.1.253:8443/ 56290
NOMATCH http://1.1.1.252:8443/ 56290
MATCH https://1.1.1.1:8443/ 0
安装 golang,然后运行:
go install github.com/hakluke/hakoriginfinder@latest