APIKiller 简介

一款高度可定制化的DAST&API Security平台
一款漏洞扫描(神)器
API Security Tool

项目背景

去年有幸进入字节无恒实验室实习,并负责抖音的安全SDLC工作,在期间也有不错的产出,但发现很多问题都是IDOR这类的越权问题,当时想的就是能不能自动化识别啥的,毕竟一直这样也挺低效的(其实字节是有IDOR相关的DAST工具,只是有些没覆盖到),所以项目名称原本叫IDORKiller。但是最近写着写着,想着索性做成工程化的工具,于是在原有的基础上,进行整体结构上的优化,时期能够保证高效、易拓展的特性,于是就有了现在的APIKiller项目。

项目介绍

项目架构

1-12

功能

  • 支持HTTP/HTTPS流量检测

  • 多来源检测

  • 支持流量监听

  • 支持历史流量回扫

  • 多功能扫描模块

  • 越权检测模块,高效精准,支持多情景检测

  • 具备多角色账号、单角色账号测试能力【单角色账号测试暂不启用,黑盒师傅有想法的可以直接看文档中的介绍,或私下交流】

  • 多维度、特征化判断引擎

  • csrf检测模块

  • 支持token检测

  • 常见的referer、origin检测

  • 【欢迎大家一起来开发新的模块】

  • 多功能Filter处理,默认自带多个filter

  • 针对性扫描,例如只对 baidu.com域名进行扫描

  • 去重扫描,提高效率

  • 自动过滤静态文件(js,gif,jpg,png,css,jpeg,xml,img,svg…)

  • API 运维

  • 提供简易的API Security运维平台

  • 多方式漏洞发现提醒

  • Lark飞书

  • 对抗常见风控手段

  • 频控

  • 【重磅】以上都可以快速进行拓展&二次开发

由于多处核心组件采用了抽象的方式,所以可以给有需要的使用者进行快速的二次开发(二次开发的文档,后续将会补齐)

越权检测模块

越权检测既定分为三个子模块:未授权检测模块、单角色检测模块、多角色检测模块;但单角色检测模块和未授权检测模块存在较大优化空间,所以当前采用简易模式,仅能够适用于甲方日常,如果想用去扫描,则可以手动开启,或加以改造

2-9

越权判断引擎

3-6

未授权检测模块

4-5

单角色检测模块

5-2

多角色检测模块

6-2

CSRF检测模块

7-1

API运营平台

8-1

后期计划

  • 添加基于poc的扫描模块
  • 403bypass module
  • 完善其他通知方式的支持
  • 支持扫描代理功能
  • 提供docker版快速搭建能力
  • 其他

食用宝典

安装好数据库环境(我个人采用的是docker)

  1. docker pull 数据库镜像
sudo docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306  mysql:5.7
  1. 导入apikiller.sql文件
sudo docker cp /tmp/apikiller.sql bteye-mysql:/tmp/apikiller.sql
  1. 登入mysql
docker exec -it mysql-server mysql -uroot -p123456 source /tmp/apikiller.sql

在 config.json 中配置好

1-13

安装根目录下的https证书[windows环境]

  1. 找到根目录下的ca.crt证书

2-10

  1. 点击安装即可,将其添加到系统根信任证书颁发位置

3-7

配置成功后,当发现漏洞时,会立即推送漏洞信息

4-6

一键启动【所有的配置都在config.json】

5-3

5-1-1

  1. ding~,发现新漏洞,快去看鸭

检测效果展示

这里基于VAPI越权靶场 进行实战模拟 配好环境后,先根据项目鉴权机制,拿两个账号,配置好config.json

6-3

然后启动项目,访问接口

7-2

8-2

成功检测出越权和csrf

9-1

项目地址

GitHub:https://github.com/Aur0ra-m/APIKiller