SessionProbe 是一个多线程渗透测试工具,旨在协助评估 Web 应用程序中的用户权限。它接收用户的会话令牌,并检查一系列 URL 是否可访问,从而突出潜在的授权问题。SessionProbe 会去重 URL 列表,并提供实时日志和进度跟踪。
SessionProbe 旨在与 Burp Suite 的 Target 选项卡中的“复制此主机中的 URL”功能配合使用(该功能在免费的 Community Edition 中可用)。
注意:您可能需要在 Burp 的 Target 选项卡中修改 filter 以包含文件或图片。否则,这些 URL 将不会被“复制此主机中的 URL”复制,也不会被 SessionProbe 测试。
帮助是内置的!
sessionprobe --help - 输出帮助信息。用法:
sessionprobe [flags]
标志:
-u, --urls string 包含待检查 URL 的文件(必需)
-H, --headers string 请求中使用的 HTTP 头,格式为 "Key1:Value1;Key2:Value2;..."
-h, --help sessionprobe 的帮助信息
--ignore-css 忽略以 .css 结尾的 URL(默认 true)
--ignore-js 忽略以 .js 结尾的 URL(默认 true)
-o, --out string 输出文件(默认 "output.txt")
-p, --proxy string 代理 URL(默认: "")
-r, --filter-regex string 使用正则表达式排除 HTTP 响应。响应体匹配该正则的将不会出现在输出中。
-l, --filter-lengths string 按响应体长度排除 HTTP 响应。可以指定以逗号分隔的长度(例如 "123,456,789")。
--skip-verification 跳过 SSL 证书验证(默认 false)
-t, --threads int 线程数(默认 10)
--check-all 检查 POST、DELETE、PUT 和 PATCH 方法(默认 false)
--check-delete 检查 DELETE 方法(默认 false)
--check-patch 检查 PATCH 方法(默认 false)
--check-post 检查 POST 方法(默认 false)
--check-put 检查 PUT 方法(默认 false)
示例:
./sessionprobe -u ./urls.txt
./sessionprobe -u ./urls.txt --out ./unauthenticated-test.txt --threads 15
./sessionprobe -u ./urls.txt -H "Cookie: .AspNetCore.Cookies=<cookie>" -o ./output.txt
./sessionprobe -u ./urls.txt -H "Authorization: Bearer <token>" --proxy http://localhost:8080
./sessionprobe -u ./urls.txt -r "Page Not Found"
./sessionprobe -u ./urls.txt -H "Cookie: .AspNetCore.Cookies=<cookie>;Cookie: <another-cookie>=<another_value>"
URLs 文件 的目录。docker run -it --rm -v "$(pwd):/app/files" --name sessionprobe fw10/sessionprobe [flags]
URLs 文件 必须在当前目录中,并且您的 输出文件 也将在该目录中。--proxy 选项,需要让 Burp 监听器 在所有接口上运行。go run . 从源代码运行此工具。go build 自行构建工具。docker build . -t fw10/sessionprobe 自行构建 Docker 镜像。go test 或 go test -v(获取更多细节)。.css、.js)对 URL 进行排序,并显示长度Burp 的工具状态码为 200 的响应:
https://example.com/<some-path> => 长度: 12345
https://example.com/<some-path> => 长度: 40
...
状态码为 301 的响应:
https://example.com/<some-path> => 长度: 890
https://example.com/<some-path> => 长度: 434
...
状态码为 302 的响应:
https://example.com/<some-path> => 长度: 0
...
状态码为 404 的响应:
...
状态码为 502 的响应:
...
Releases 部分包含一些已编译的二进制文件,以便您可能无需自行构建工具。Mac 发布版,您的 Mac 可能会弹出警告(“无法打开,因为它来自未识别的开发者”)
设置)如果您发现了一个错误,请直接在 GitHub 上提交一个 Issue,我将尽力及时解决。