如何使用route-detect在Web应用程序路由中扫描身份认证和授权漏洞

关于route-detect

route-detect是一款功能强大的Web应用程序路由安全扫描工具,该工具可以帮助广大研究人员在Web应用程序路由中轻松识别和检测身份认证漏洞和授权漏洞。

Web应用程序HTTP路由中的身份认证(authn)和授权(authz)漏洞是目前最常见的Web安全问题,下列行业标准也足以突出证明了此类安全问题的严重性:

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框架

当前版本的route-detect支持下列Web框架:

Python: Django (django, django-rest-framework), Flask (flask), Sanic (sanic)

PHP: Laravel (laravel), Symfony (symfony), CakePHP (cakephp)

Ruby: Rails* (rails), Grape (grape)

Java: JAX-RS (jax-rs), Spring (spring)

Go: Gorilla (gorilla), Gin (gin), Chi (chi)

JavaScript/TypeScript: Express (express), React (react), Angular (angular)

工具安装

由于该工具使用Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/mschwager/route-detect.git

或者直接使用pip工具安装最新版本的route-detect:

$ python -m pip install --upgrade route-detect

安装完成后,我们可以使用下列命令检测route-detect是否安装成功:

$ 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命令并使用semgrep来搜索路由信息。

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

$ semgrep --config $(routes which django) path/to/django/code

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

$ semgrep --json --config $(routes which django) --output routes.json path/to/django/code

$ routes viz --browser routes.json

如果你不确定目标Web应用程序所使用的框架,可以使用all ID检索和查看:

$ semgrep --json --config $(routes which all) --output routes.json path/to/code

如果你有自己自定义的authn或authz逻辑,可以拷贝route-detect的规则:

$ cp $(routes which django) my-django.yml

我们还可以根据需求修改并运行规则:

$ semgrep --json --config my-django.yml --output routes.json path/to/django/code

$ routes viz --browser routes.json

工具运行截图

许可证协议

本项目的开发与发布遵循BSD-3-Clause开源许可证协议。

项目地址

route-detect:【GitHub传送门】

参考资料

A01 Broken Access Control - OWASP Top 10:2021

A07 Identification and Authentication Failures - OWASP Top 10:2021

API1:2023 Broken Object Level Authorization - OWASP API Security Top 10

API2:2023 Broken Authentication - OWASP API Security Top 10

API5:2023 Broken Function Level Authorization - OWASP API Security Top 10

CWE - 2023 CWE Top 25 Most Dangerous Software Weaknesses

GitHub - semgrep/semgrep: Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言_第一轮笔记_指针

8.1 密码开锁 地址和指针 一般以变量所在的内存单元的第一个字节的地址作为他的地址NULL的值为0,代表空指针 指针变量的定义 类型名 *指针变量名类型名指定指针变量所指向变量的类型指针声明符*在定义指针变量时被使用,说明被定义的那个变量是指针指针变…

44 el-dialog 的 appendToBody 属性, 导致 vue 响应式失效

前言 我们经常会碰到 一些 模型和视图 不同步的问题 通常意义上 主要的问题为 列表的某响应式数据更新着更新着 后面就变成非响应式对象了, 然后 就造成了 数据一直在更新, 但是 视图的渲染后面就未渲染了, 这是一个由于 模型上的问题 导致的数据的不在响应式更新 又或者 是…

这些好玩的Ai网站你不知道我真的会哭

你可能想不到,AI已经发展到了这个程度。。文末提供 AI绘画关键词哦 目录 1.Midjourney 2.DeepFakes 3.StyleGAN 4.Runway AI绘画关键词哦 1.Midjourney Midjourney 是一款工具,更像是一位魔术师,但它的魔法来自人工智能技术的神奇。…

2024-03-26 Android8.1 px30 WI-FI 模块rtl8821cu调试记录

一、kernel 驱动,我这里使用v5.8.1.2_35530.20191025_COEX20191014-4141这个版本,下载这个版本的驱动可以参考下面的文章。 2021-04-12 RK3288 Android7.1 USB wifi bluetooth 模块RTL8821CU 调试记录_rk平台rtl8821cu蓝牙调试-CSDN博客 二、Makefile文…

P6学习:解析P6 WBS-工作分解结构的原则

前言 WBS,及Work Breakdown Structure,中文工作分解结构,是总结工作阶段的项目的层次结构分解。 WBS 就像项目的大纲——它将项目分解为特定的可交付成果或阶段。 然后将活动添加到这些层中以创建项目计划的时间表。 WBS 使用流程会有所不…

Hack The Box-Reminiscent

目录 基本信息 Resume.eml文件 imageinfo.txt flounder-pc-memdump.elf 检查内存镜像 进程 文件 get flag base64解码 基本信息 Resume.eml文件 ┌──(root㉿ru)-[~/…/ctf_quzheng_tools/timu/hackthebox/reminiscent] └─# cat Resume.eml Return-Path: <blood…

【4月】组队打卡《山有木Python特征工程极简入门》

活动名称 CDA Club 第2期《山有木兮Python数据分析极简入门》组队打卡 活动介绍 本次打卡活动由CDA俱乐部旗下学术部主办。目的是通过数据分析科普内容&#xff0c;为数据分析爱好者提供学习和交流的机会。方便大家利用碎片化时间在线学习&#xff0c;以组队打卡的形式提升学…

Transformer的前世今生 day08(Positional Encoding)

前情提要 Attention的优点&#xff1a;解决了长序列依赖问题&#xff0c;可以并行。Attention的缺点&#xff1a;开销变大了&#xff0c;而且不存在位置关系为了解决Attention中不存在位置关系的缺点&#xff0c;我们通过位置编码的形式加上位置关系 Positional Encoding&…

独享IP可以避免被封禁或限制访问的风险

在一些网站或服务中&#xff0c;存在对共享IP的封禁或限制访问的情况&#xff0c;这给用户带来了不便。而使用独享IP可以有效规避这一问题&#xff0c;保障用户正常访问需求。例如&#xff0c;在进行搜索引擎优化、社交媒体营销或广告投放时&#xff0c;独享IP可以确保用户的网…

第二证券策略:关注工程机械、新能源以及金融等行业的投资机会

第二证券认为&#xff0c;近来商场表现为高位题材股分解加剧呈现退潮痕迹&#xff0c;短期获利回吐压力较高&#xff0c;商场风格进行凹凸切换。人民币汇率短期呈现动摇&#xff0c;汇率商场呈现短期不合&#xff0c;但随着我国经济根本面预期的改进&#xff0c;外汇商场表现或…

SpringMVC面试题

1、SpringMVC执行流程 [参考内容&#xff1a;SpringMVC的执行流程] 2、常用注解及作用 2.1 Controller 名称&#xff1a;Controller类型&#xff1a;类注解位置&#xff1a;SpringMVC控制器类定义上方作用&#xff1a;设定SpringMVC的核心控制器bean范例 Controller publi…

【C++教程从0到1入门编程】第十三篇:STL中list类的模拟实现

一、list的模拟实现 #include<iostream> #include<assert.h> #pragma once namespace jyr {template<class T>struct _list_node{_list_node<T>* _next;_list_node<T>* _prev;T _data;_list_node(const T& val T()):_next(nullptr), _prev(…

主流公链 - Filecoin

探索Filecoin&#xff1a;去中心化存储网络 1. Filecoin简介 Filecoin是一个去中心化的存储网络&#xff0c;旨在通过区块链技术实现全球性的分布式文件存储和检索市场。Filecoin允许用户将文件存储在网络中的节点上&#xff0c;并通过加密、分片和复制等技术保证数据的安全性…

数据结构

一、栈 先进后出 二、队列 先进先出 三、数组 查询快&#xff0c;增加修改慢 四、链表 查询慢&#xff0c;增加修改慢 五、二叉树 节点&#xff1a; 查找二叉树 二叉查找树的特点 二叉查找树,又称二叉排序树或者二叉搜索树 每一个节点上最多有两个子节点 左子树上所…

QQ屠龙者终成为恶龙!工作与生活的平衡:挑战与解决方案——早读(逆天打工人爬取热门微信文章解读)

屠龙者终成为恶龙 引言Python 代码第一篇 洞见 看了上海临时工睡桥洞的现场&#xff0c;我不敢让老板知道上班苦第二篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 昔日斩棘披荆的屠龙勇士 历经岁月涤荡 竟在不知不觉间铸就了自己心中的铁壁铜墙 终有一日 赫然发现…

【智能计算模拟:DFT+MD+ML深度融合及科研实践应用】

第一性原理、分子动力学与机器学习三者的交汇融合已在相关研究领域展现强劲的研究热潮。借助第一性原理计算揭示材料内在的量子特性&#xff0c;并结合分子动力学模拟探究材料在实际环境下的动态行为&#xff1b;运用机器学习算法与上述方法结合&#xff0c;开发高性能预测模型…

智能医疗-方案优势

实时更新&#xff0c;信息展示更便利 电子标签床头信息卡可设计特定的信息模板展示病患信息&#xff0c;并可根据治疗进展实时更新&#xff0c;病患通过床头电子标签即可了解病情信息。 —签多能&#xff0c;医护管理更高效 电子墨水屏技术改进了传统院内展示内容单一、更换成…

edga 0x800704cf错误码(同步失败)

edga 0x800704cf错误码(同步失败) 执行此操作需要 Internet。 你似乎没有连接到 Internet。请检查你的连接&#xff0c;然后再试一次。 0x800704cf 发送反馈 取消windows键R&#xff0c; 输入services.msc 进入本地服务管理&#xff0c; 重启 Microsoft Account Sign-in Assi…

【探索Linux】—— 强大的命令行工具 P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )

阅读导航 引言一、序列化反序列化概念二、各种语言序列化反序列化常用库三、C的JSON序列化库1. RapidJSON库&#xff08;1&#xff09;头文件&#xff08;2&#xff09;相关函数&#xff08;3&#xff09;参数&#xff08;4&#xff09;特点 &#xff08;5&#xff09;使用示例…

零拷贝技术、常见实现方案、Kafka中的零拷贝技术的使用、Kafka为什么这么快

目录 1. 普通拷贝 2. 数据拷贝基础过程 2.1 仅CPU方式 2.2 CPU&DMA方式 3.普通模式数据交互 4. 零拷贝技术 4.1 出现原因 4.2 解决思路 4.2.1 mmap方式 4.2.2 sendfile方式 4.2.3 sendfileDMA收集 4.2.4 splice方式 5. Kafka中使用到的零拷贝技术 参考链接 本…