Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
route-detect — 在 Web 应用程序路由中查找身份验证 (authn) 和授权 (authz) 安全漏洞。 | Kitploit
工具/GitHubGitHub/mschwager/route-detect
静态分析漏洞分析Web安全身份验证
GitHubmschwager/route-detect

route-detect

在 Web 应用程序路由中查找身份验证 (authn) 和授权 (authz) 安全漏洞。

查看仓库
2801311个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

route-detect

CI Python 版本 PyPI 版本

在 Web 应用程序路由中发现认证(authn)和授权(authz)安全漏洞:

路由演示

来自 koel 流媒体服务器的路由

Web 应用程序 HTTP 路由认证和授权漏洞是当今最常见的安全问题之一。以下行业标准资源强调了问题的严重性:

  • 2021 OWASP Top 10 #1 - 损坏的访问控制
  • 2021 OWASP Top 10 #7 - 身份识别与认证失败(原损坏的认证)
  • 2023 OWASP API Top 10 #1 - 损坏的对象级授权
  • 2023 OWASP API Top 10 #2 - 损坏的认证
  • 2023 OWASP API Top 10 #5 - 损坏的功能级授权
  • 2023 CWE Top 25 #11 - CWE-862: 缺失授权
  • 2023 CWE Top 25 #13 - CWE-287: 不正确的认证
  • 2023 CWE Top 25 #20 - CWE-306: 关键功能缺少认证
  • 2023 CWE Top 25 #24 - CWE-863: 不正确的授权

支持的 Web 框架

安装

使用 pip 安装 route-detect:

root@kitploit:~
$ python -m pip install --upgrade route-detect

你可以通过以下命令检查 route-detect 是否安装正确:

root@kitploit:~
$ echo 'print(1 == 1)' | semgrep --config $(routes which test-route-detect) -
Scanning 1 file.

Findings:

  /tmp/stdin
     routes.rules.test-route-detect
        Found '1 == 1', your route-detect installation is working correctly

          1┆ print(1 == 1)


Ran 1 rule on 1 file: 1 finding.

使用

route-detect 使用 routes CLI 命令,并提供以下命令树:

  • routes
    • which
    • viz

Semgrep

首先,确保已安装 semgrep 并将其包含在 PATH 中。

[!重要] route-detect 用来显示代码片段的 Semgrep 功能已被移到了他们的云应用后面。详情请参见 #10762。不过,早期版本的 Semgrep 仍支持此行为。使用 route-detect 时,请确保安装 1.97.0 之前的 Semgrep 版本。可以通过以下命令完成:python -m pip install 'semgrep<1.97.0'。

使用 which 子命令让 semgrep 指向正确的 Web 应用程序规则:

root@kitploit:~
$ semgrep --config $(routes which django) path/to/django/code

使用 viz 子命令在浏览器中可视化路由信息:

root@kitploit:~
$ semgrep --json --config $(routes which django) --output routes.json path/to/django/code
$ routes viz --browser routes.json

如果不确定要查找哪个框架,可以使用特殊的 all ID 检查所有:

root@kitploit:~
$ semgrep --json --config $(routes which all) --output routes.json path/to/code

如果有自定义的认证或授权逻辑,可以复制 route-detect 的规则:

root@kitploit:~
$ cp $(routes which django) my-django.yml

然后根据需要修改规则,像上面一样运行:

root@kitploit:~
$ semgrep --json --config my-django.yml --output routes.json path/to/django/code
$ routes viz --browser routes.json

CodeQL

首先,确保已安装 codeql 并将其包含在 PATH 中。

使用 which 子命令首先安装包的依赖,然后运行相应的查询:

root@kitploit:~
$ codeql pack install $(poetry run routes which -c rails)
root@kitploit:~
$ codeql database analyze \
    --output routes.sarif \
    --format sarif-latest \
    --sarif-add-file-contents \
    --no-group-results \
    -- \
    /path/to/codeql/db \
    $(routes which --codeql rails)

使用 viz 子命令在浏览器中可视化路由信息:

root@kitploit:~
$ routes viz --codeql --browser routes.sarif

贡献

route-detect 使用 poetry 进行依赖和配置管理。

在开始之前,使用以下命令安装项目依赖:

root@kitploit:~
$ poetry install --with dev

代码检查

使用以下命令检查所有项目文件:

root@kitploit:~
$ poetry run pre-commit run --all-files

测试

使用以下命令运行 Python 测试:

root@kitploit:~
$ poetry run pytest --cov

使用以下命令运行 Semgrep 规则测试:

root@kitploit:~
$ poetry run semgrep --test --config routes/rules/ tests/test_rules/

使用以下命令运行 CodeQL 查询测试:

root@kitploit:~
$ codeql test run routes/queries/rails/test/
下载工具
语言框架SemgrepCodeQL
PythonDjango✅❌
PythonDjango REST framework✅❌
PythonFlask✅❌
PythonSanic✅❌
PythonFastAPI✅❌
PHPLaravel✅❌
PHPSymfony✅❌
PHPCakePHP✅❌
RubyRails❌✅
RubyGrape✅❌
JavaJAX-RS✅❌
JavaSpring✅❌
GoGorilla✅❌
GoGin✅❌
GoChi✅❌
JavaScript/TypeScriptExpress✅❌
JavaScript/TypeScriptReact✅❌
JavaScript/TypeScriptAngular✅❌