Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/y1nglamore/IDOR_detect_tool
一款API水平越权漏洞检测工具
https://github.com/y1nglamore/IDOR_detect_tool
Last synced: 22 days ago
JSON representation
一款API水平越权漏洞检测工具
- Host: GitHub
- URL: https://github.com/y1nglamore/IDOR_detect_tool
- Owner: y1nglamore
- License: gpl-3.0
- Created: 2023-01-26T15:06:30.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-06-27T02:45:06.000Z (over 1 year ago)
- Last Synced: 2024-08-05T17:43:42.458Z (4 months ago)
- Language: Python
- Homepage: https://www.gem-love.com/2023/01/26/%E6%B0%B4%E5%B9%B3%E8%B6%8A%E6%9D%83%E6%8C%96%E6%8E%98%E6%8A%80%E5%B7%A7%E4%B8%8E%E8%87%AA%E5%8A%A8%E5%8C%96%E8%B6%8A%E6%9D%83%E6%BC%8F%E6%B4%9E%E6%A3%80%E6%B5%8B/
- Size: 34.2 KB
- Stars: 723
- Watchers: 4
- Forks: 65
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - y1nglamore/IDOR_detect_tool - 一款API水平越权漏洞检测工具 (Python)
README
# API越权漏洞检测工具
## 概述
通过替换认证信息后重放请求,并对比数据包结果,判断接口是否存在越权漏洞
详细介绍:[水平越权挖掘技巧与自动化越权漏洞检测](https://www.gem-love.com/2023/01/26/%E6%B0%B4%E5%B9%B3%E8%B6%8A%E6%9D%83%E6%8C%96%E6%8E%98%E6%8A%80%E5%B7%A7%E4%B8%8E%E8%87%AA%E5%8A%A8%E5%8C%96%E8%B6%8A%E6%9D%83%E6%BC%8F%E6%B4%9E%E6%A3%80%E6%B5%8B/)
本工具仅供用于越权漏洞自动化测试的学习交流只用,工具本身只是个DEMO,其使用效果尚未得到充分的验证。
## 特点
1. 支持HTTPS
2. 自动过滤图片/js/css/html页面等静态内容
3. 多线程检测,避免阻塞
4. 支持输出报表与完整的URL、请求、响应## 安装和使用
### 安装依赖
```
python3 -m pip install -r requirements.txt
```### 启动
```
python3 start.py
```即可监听socks5://127.0.0.1:8889。
### 安装证书
使用SwitchOmega等插件连接该代理,并访问[mitm.it](http://mitm.it)即可进入证书安装页面,根据操作系统进行证书安装。
以MacOS为例:
![175143_y7wfgR](http://cdn2.pic.y1ng.vip/uPic/2023/01/25/175143_y7wfgR.png)
下载安装后,打开钥匙串访问,找到mitmproxy证书,修改为alwaystrust
![175302_B8WD5s](http://cdn2.pic.y1ng.vip/uPic/2023/01/25/175302_B8WD5s.png)
### 检测漏洞
首先准备好目标系统的A、B两账号,根据系统的鉴权逻辑(Cookie、header、参数等)将A账号信息配置config/config.yml,之后登录B账号
![175522_XdPt84](http://cdn2.pic.y1ng.vip/uPic/2023/01/25/175522_XdPt84.png)
使用B账号访问,脚本会自动替换鉴权信息并重放,根据响应结果判断是否存在越权漏洞
![175435_PFm3WY](http://cdn2.pic.y1ng.vip/uPic/2023/01/25/175435_PFm3WY.png)
### 生成报表
每次有新漏洞都会自动添加到report/result.html中,通过浏览器打开:
![181645_PaztjA](http://cdn2.pic.y1ng.vip/uPic/2023/01/25/181645_PaztjA.png)
点击具体条目可以展开/折叠对应的请求和响应:
![181811_HJMDoo](http://cdn2.pic.y1ng.vip/uPic/2023/01/25/181811_HJMDoo.png)
## 检测逻辑
1. 流量清洗:过滤掉静态资源和非json响应的请求
2. 公共接口清洗:过滤掉无需参数即可访问的GET请求(例如/api/getCurrentTime)此类公共接口无需鉴权,因此无越权问题
3. 长度卡点:判断响应长度是否大于100,用来去除一些空接口(只返回JSON骨架)
4. 相似度检查:以Levenshtein距离计算相似度,相似度大于87%认为是相同的响应
5. 关键字检查:对于响应长度小于100的请求判断是否包含“成功”“完成”等关键词。## 测试用例
DEMO中给出了一个测试用代码,其中存在两个水平越权漏洞。
## 架构图
![](http://cdn2.pic.y1ng.vip/uPic/2023/05/22/121355_Tl3PPC.png)