Browse by type
APIKiller-企业API安全保护神简介 • 架构 • Feature • 食用宝典 • 二次开发文档 • 更新 • 项目社区 • 致谢
一款高度可定制化的DAST&API Security平台
详细参考: 快看~项目精髓

详细请查看:https://github.com/Aur0ra-m/APIKiller/wiki 1. 安装好数据库环境(我个人采用的是docker) 1. 一键部署 1. 将项目clone到服务器后,直接运行
sudo bash dbDeploy.sh

2. 根据返回的数据,在config.yaml中完成相关配置
<img src="https://github.com/Aur0ra-m/APIKiller/raw/main/static/img/img_6.png" alt="img_6.png" width="80%;" />
手动部署
shell
sudo docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysqlshell
sudo docker cp /tmp/apikiller.sql mysql-server:/tmp/apikiller.sqlshell
docker exec -it mysql-server mysql -uroot -p123456
source /tmp/apikiller.sql【重点】在 config.yaml 中进行相关配置

安装根目录下的https证书[windows环境]
找到根目录下的ca.crt证书
<img src="https://github.com/Aur0ra-m/APIKiller/raw/main/static/img/img.png" alt="img.png" height="233" />
点击安装即可,将其添加到系统根信任证书颁发位置
配置漏洞发现通知Webhook
根据飞书指导,开启一个bot,并复制相关的webhook【支持secret鉴权操作】
在根路径下的config.json中进行配置(如果有secret,就进行配置)
<img src="https://github.com/Aur0ra-m/APIKiller/raw/main/static/img/img_1.png" alt="img_1.png" width="80%;" />
配置成功后,当发现漏洞时,会立即推送漏洞信息

一键启动【配置文件位于./config/目录下(默认是config.release.yaml),或自己指定】


ding~,发现新漏洞,快去看鸭
漏洞运营,及时对漏洞进行研判和修复

基本配置:数据库模块、过滤器模块、通知模块
除基本配置外,还必须进行如下的模块配置。(其中的option必须配置为1,才代表启动该模块)
这里基于VAPI越权靶场 进行实战模拟 配好环境后,先根据项目鉴权机制,提供另一个不同权限的账号,配置好config.yaml 1. 根据企业开发规范,配置好越权模块的相关配置
<img src="https://github.com/Aur0ra-m/APIKiller/raw/main/static/img/img_20.png" alt="img_1.png" width="80%;" />
启动项目,访问接口


成功检测出越权和csrf

当前可以进行大小写、path fuzz、api版本降级等方式,来进行探测


基于pikachu靶场,进行漏洞检测
处理csrf模块的配置
<img src="https://github.com/Aur0ra-m/APIKiller/raw/main/static/img/img_030103.png" alt="img.png" width="80%;" />
<img src="https://github.com/Aur0ra-m/APIKiller/raw/main/static/img/img_25.png" alt="img_1.png" width="80%;" />
<img src="https://github.com/Aur0ra-m/APIKiller/raw/main/static/img/img_24.png" alt="img.png" width="80%;" />
为避免扫描时造成过无效流量,可以通过提供的HTTP HOOK机制,对请求流量自定义修改,例如添加header,来区分测试流量和实际流量
【注意】当前由于golang plugin机制特性,暂不支持windows下的流量修改
HTTP HOOK 样例 ```go package main
import ( "fmt" "net/http" )
type RequestHook interface { HookBefore(http.Request) // hook before initiating http newReq HookAfter(http.Request) // hook after finishing http newReq }
type AddHeaderHook struct { }
func (a AddHeaderHook) HookBefore(newReq *http.Request) { fmt.Println("HOOK Before: hhhhhhh") // .... }
func (a AddHeaderHook) HookAfter(newReq *http.Request) {
}
// Hook this is exported, and this name must be set Hook var Hook AddHeaderHook ```
【严格按照上面的代码规范,其中最后一行代码,命名必须设置为Hook】
生成对应的so链接库
shell
go build -buildmode=plugin APIKillerHookSample.go
shell
$ ls
APIKillerHookSample.go APIKillerHookSample.so go.mod
3. 将生成的so放置到项目的hooks目录下
shell
$ ls ./hooks
APIKillerHookSample.so
4. 启动项目即可完成流量更改
https://github.com/Aur0ra-m/APIKiller/wiki
如想对项目进行深入了解,或加入研发团队欢迎加入APIKiller项目社区。
群二维码失效可加我微信,备注:私聊回复APIKiller 实时进群

【最后感谢项目中所使用到的各种开源组件的作者】
browse all types & interfaces →
$ claude mcp add APIKiller \
-- python -m otcore.mcp_server <graph>