关于Kiterunner
长期以来,跟“内容搜索”相关的技术一直都是基于文件和文件夹查找来实现的。虽然这种方法对于托管静态文件或响应文件路径的Web服务器来说是有效的,但对于现代Web应用程序来说,这种方法的有效性就没那么高了,尤其是那些使用了API来实现功能的Web应用程序。
随着时间的推移,越来越多的研究人员开始投身于加快内容发现工具的开发上,以便使用更大型的字典,但这种方式仍然没有本质上的革新。
Kiterunner这款工具不仅能够以闪电般的速度执行传统的内容扫描技术,而且还能够在现代应用程序中爆破路由或节点。
现代应用程序框架,例如Flask、Rails、Express、Django等,都遵循显式定义路由的范式,路由需要特定的HTTP方法、头、参数和值。当使用传统的内容发现工具时,这样的路由常常会被遗漏,而且很难被发现。
通过整理Swagger规范的数据集并将其压缩到我们自己的模式中,Kiterunner可以使用此数据集,并通过为它发送的每个请求发送正确的HTTP方法、头、路径、参数和值来爆破API节点。
工具安装
下载Release版本
广大研究人员可以直接点击【这里】下载该工具的预编译拷贝。
源码构建
首先,我们需要使用下列命令将该项目源码克隆至本地:
git clone https://github.com/assetnote/kiterunner.git
接下来,构建源码:
make build
设置代码符号链接:
ln -s $(pwd)/dist/kr /usr/local/bin/kr
编译字典:
kr kb compile routes.json routes.kite
执行扫描:
kr scan hosts.txt -w routes.kite -x 20 -j 100 --ignore-length=1053
JSON格式数据集
-rootes-large.json(压缩后118MB,解压后2.6GB)
-rootes-small.json(压缩后14MB,解压后228MB)
或者,我们也可以直接下载.kite文件:
-routes-large.kite(压缩后40MB,解压后182MB)
-routes-small.kite(压缩后2MB,解压后35MB)
工具使用
快速扫描
其中的<imput>可以是一个文件、域名或者URI:
kr [scan|brute] <input> [flags]
有一个待扫描主机的列表,但是没有字典:
kr scan hosts.txt -A=apiroutes-210328:20000 -x 5 -j 100 --fail-status-codes 400,401,404,403,501,502,426,411
有自己的字典:
kr scan target.com -w routes.kite -A=apiroutes-210328:20000 -x 20 -j 1 --fail-status-codes 400,401,404,403,501,502,426,411
使用前20000个单词进行常规爆破:
kr brute https://target.com/subapp/ -A=aspx-210328:20000 -x 20 -j 1
使用目录搜索风格的字典和%EXT%结合扫描:
kr brute https://target.com/subapp/ -w dirsearch.txt -x 20 -j 1 -exml,asp,aspx,ashx -D
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
项目地址
Kiterunner:https://github.com/assetnote/kiterunner
本文始发于微信公众号(盾山实验室):Kiterunner上下文感知型内容搜索工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论