【渗透工具系列】渗透测试每个API

您所在的位置:网站首页 钓鱼源码分享网 【渗透工具系列】渗透测试每个API

【渗透工具系列】渗透测试每个API

#【渗透工具系列】渗透测试每个API | 来源: 网络整理| 查看: 265

相关阅读 渗透工具渗透测试工具视频讲解系列 视频讲解

当面对API端点时,之前的一些扫描工具往往会显得效果很差,因为他们的扫描仅仅基于目录字典,而API端点通常会有一定的结构,并且不断更新。现代,有太多流行的框架,如flask、rails、express、django等。本期视频我们将分享一个API端点渗透测试的神器KiteRunner,它是一个强大的工具,可以帮助你发现API路由。掌握了这个工具,你就可以发现别人不知道的API漏洞……

备用播放线路 图文讲解 KiteRunner Github项目地址KiteRunner Release包下载 安装方式

进入KiteRunner Release页面,找到适合自己操作系统的版本,如kiterunner_1.0.2_linux_amd64.tar.gz

图片[1]-【渗透工具系列】渗透测试每个API | KiteRunner-FancyPig's blog

然后将文件解压就可以使用了

图片[2]-【渗透工具系列】渗透测试每个API | KiteRunner-FancyPig's blog 为什么使用KiteRunner

长期以来,内容发现一直集中在寻找文件和文件夹上。虽然这种方法对承载静态文件的传统网络服务器是有效的,或者对部分路径的响应是3xx,但对现代网络应用,特别是API,已经不再有效。

随着时间的推移,我们已经看到在使内容发现工具变得更快方面投入了大量的时间,以便可以使用更大的词表,然而内容发现的艺术并没有得到创新。

Kiterunner是一个工具,它不仅能够以闪电般的速度进行传统的内容发现,而且能够在现代应用中对路由/端点进行暴力破解。

现代应用框架,如Flask、Rails、Express、Django和其他框架,都遵循明确定义路由的范式,有特定的HTTP方法、标头、参数和值。

当使用传统的内容发现工具时,这样的路由经常被遗漏,而且不容易被发现。

通过整理Swagger规范的数据集并将其浓缩到我们自己的模式中,Kiterunner可以使用这个数据集,通过为每个请求发送正确的HTTP方法、标头、路径、参数和值来破解API端点。

Swagger文件是从一些数据源收集的,包括在互联网上扫描40多个最常见的Swagger路径。其他数据源包括通过BigQuery的GitHub,以及APIs.guru。

API扫描

扫描单个目标

kr scan https://target.com:8443/ -w routes.kite -A=apiroutes-210228:20000 -x 10 --ignore-length=34

扫描单个目标,同时尝试HTTP、HTTPS

kr scan target.com -w routes.kite -A=apiroutes-210228:20000 -x 10 --ignore-length=34

扫描多个目标

kr scan targets.txt -w routes.kite -A=apiroutes-210228:20000 -x 10 --ignore-length=34 使用现有字典扫描 kr brute https://target.com -A=raft-large-words -A=apiroutes-210228:20000 -x 10 -d=0 --ignore-length=34 -ejson,txt 自定义字典扫描

当你有一个传统的字典dirsearch.txt,在词表中有%EXT%时,你可以使用-D替换路径中存在%EXT%的扩展名

kr brute https://target.com -w dirsearch.txt -x 10 -d=0 --ignore-length=34 -ejson,txt -D 图片[3]-【渗透工具系列】渗透测试每个API | KiteRunner-FancyPig's blog 查看系统内置字典 kr wordlist list

这个字典是定期更新的,因此这个工具扫描体验还是非常棒的。

图片[4]-【渗透工具系列】渗透测试每个API | KiteRunner-FancyPig's blog 自定义字典如何转化成KiteRunner相关格式

可以进行相应的格式转换

wordlist.kite wordlist.json wordlist.txt kr kb convert wordlist.txt wordlist.kite kr kb convert wordlist.kite wordlist.json kr kb convert wordlist.kite wordlist.txt 重放请求

当你从kiterunner收到一堆输出时,你可能很难立即理解为什么一个请求会导致一个特定的响应代码/长度。Kiterunner提供了一种从所使用的词表重建请求的方法,包括所有头和正文参数。

你可以通过将完整的响应输出复制粘贴到kb replay命令中来重放一个请求。你可以指定一个–代理来转发你的请求,这样你就可以使用第三方工具修改/重复/拦截请求,如果你愿意的话。由于默认的golang规范的实现方式(不幸的是),golang net/http客户端将对你的请求进行一些额外的修改。

❯ go run ./cmd/kiterunner kb replay -q --proxy=http://localhost:8080 -w routes.kite "POST 403 [ 287, 10, 1] https://target.com/dedalo/lib/dedalo/publication/server_api/v1/json/thesaurus_parents 0cc39f76702ea287ec3e93f4b4710db9c8a86251" 11:25AM INF Raw reconstructed request POST /dedalo/lib/dedalo/publication/server_api/v1/json/thesaurus_parents?ar_fields=48637466&code=66132381&db_name=08791392&lang=lg-eng&recursive=false&term_id=72336471 HTTP/1.1 Content-Type: any 11:25AM INF Outbound request POST /dedalo/lib/dedalo/publication/server_api/v1/json/thesaurus_parents?ar_fields=48637466&code=66132381&db_name=08791392&lang=lg-eng&recursive=false&term_id=72336471 HTTP/1.1 Host: target.com User-Agent: Go-http-client/1.1 Content-Length: 0 Content-Type: any Accept-Encoding: gzip 11:25AM INF Response After Redirects HTTP/1.1 403 Forbidden Connection: close Content-Length: 45 Content-Type: application/json Date: Wed, 07 Apr 2021 01:25:28 GMT X-Amzn-Requestid: 7e6b2ea1-c662-4671-9eaa-e8cd31b463f2 User is not authorized to perform this action


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3