Skip to content

Commit 3ce81db

Browse files
committed
APISecurity社区APIKit正式发布
1 parent 5c29005 commit 3ce81db

File tree

77 files changed

+3975
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+3975
-1
lines changed

.idea/.gitignore

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/artifacts/APIKit_jar.xml

+12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/compiler.xml

+16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/jarRepositories.xml

+20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Maven__com_google_code_gson_gson_2_8_7.xml

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Maven__junit_junit_4_12.xml

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Maven__net_portswigger_burp_extender_burp_extender_api_1_7_22.xml

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Maven__org_yaml_snakeyaml_1_27.xml

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

APIKit.iml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
4+
<output url="file://$MODULE_DIR$/target/classes" />
5+
<output-test url="file://$MODULE_DIR$/target/test-classes" />
6+
<content url="file://$MODULE_DIR$">
7+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8+
<excludeFolder url="file://$MODULE_DIR$/target" />
9+
</content>
10+
<orderEntry type="inheritedJdk" />
11+
<orderEntry type="sourceFolder" forTests="false" />
12+
<orderEntry type="module-library">
13+
<library name="Maven: com.predic8:soa-model-core:1.6.4">
14+
<CLASSES>
15+
<root url="jar://$MODULE_DIR$/soa-model-core-1.6.4-SNAPSHOT-patched-jar-with-dependencies.jar!/" />
16+
</CLASSES>
17+
<JAVADOC />
18+
<SOURCES />
19+
</library>
20+
</orderEntry>
21+
<orderEntry type="library" name="Maven: net.portswigger.burp.extender:burp-extender-api:1.7.22" level="project" />
22+
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
23+
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
24+
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
25+
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.7" level="project" />
26+
</component>
27+
</module>

README.md

+110-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,110 @@
1-
# APIKit
1+
APIKit:Discovery, Scan and Audit APIs Toolkit All In One.
2+
===
3+
4+
# 介绍
5+
**APIKit**[APISecurity社区](https://github.com/API-Security)发布的第一个开源项目。
6+
7+
**APIKit**是基于`BurpSuite`提供的`JavaAPI`开发的插件。
8+
9+
**APIKit**可以主动/被动扫描发现应用泄露的`API文档`,并将`API文档`解析成`BurpSuite`中的数据包用于**API安全测试**
10+
11+
![](./img/APIKit_ch.png)
12+
13+
实际使用效果如图:
14+
![](./img/demo.png)
15+
16+
# API技术指纹支持
17+
APIKit v1.0支持的API技术的指纹有:
18+
- [x] GraphQL
19+
- [x] OpenAPI-Swagger
20+
- [x] SpringbootActuator
21+
- [x] SOAP-WSDL
22+
23+
更多的API指纹正在努力更新~
24+
- [ ] REST-WADL
25+
- [ ] gRPC
26+
- [ ] UPnP
27+
- [ ] 更多主流API技术...
28+
29+
30+
31+
# 安装
32+
打开`BurpSuite`页面,点击Extender然后选择Extensions,添加APIKit.jar。
33+
![](./img/install.png)
34+
然后APIKit会对进入到`BurpSuite`的流量进行被动扫描。解析完成后可以在APIKit面板查看结果,同样Burpsuite的DashBoard也会有issue提示。
35+
![](./img/demo.png)
36+
![](./img/dashboard.png)
37+
38+
# 配置
39+
默认情况下Request和Cookie都不开启。
40+
![](./img/config.png)
41+
## Send with Cookie
42+
开启Cookie,可以把包的Cookie存下来,生成请求的时候保留Cookie。
43+
44+
## Auto Request Sending
45+
开启对API的请求,注意开启API请求后。你需要明确以下几点:
46+
47+
**1. 本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。**
48+
49+
**2. 在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行请求。**
50+
51+
**3. 如您在使用本工具的过程中存在任何非法行为或造成其他损失,您需自行承担相应后果,我们将不承担任何法律及连带责任。**
52+
53+
**4. 在安装并使用本工具前,请您务必审慎阅读、充分理解各条款内容,限制、免责条款或者其他涉及您重大权益的条款可能会以加粗、加下划线等形式提示您重点注意。 除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要安装并使用本工具。您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。**
54+
55+
选择开启Auto Request Sending后,可以对子API进行自动化鉴权测试,快速发现API未授权访问漏洞。
56+
![](./img/req.png)
57+
58+
# 被动扫描
59+
默认情况下流经BurpSuite的流量都会进行API探测解析和扫描。
60+
# 主动扫描
61+
在任何一个Burpsuite可以右键打开更多选项的页面中,都可以**点击右键**,选择**Do API scan**来发起一次主动扫描。
62+
![](./img/activescan.jpg)
63+
64+
65+
# API漏洞自动扫描
66+
所有与`BurpSuite`联动的工具均可联动APIKit。比如xray。
67+
## xray配置
68+
```shell
69+
./xray_darwin_amd64 webscan --listen 127.0.0.1:7777 --html-output APIKit.html
70+
```
71+
![](./img/xray.png)
72+
## BurpSuite配置
73+
![](./img/xrayburp.png)
74+
75+
# 实战案例
76+
1. 某授权项目站点为/xxgateway/index,APIKit帮助发现/xxgateway/actuator并最后完成RCE。
77+
2. 某SRC站点使用了swagger,使用APIKit和xray联动遍历所有的API,最终发现多个高危严重漏洞。
78+
3. 更多白/黑盒测试...
79+
80+
# TODO
81+
## 更多的API指纹
82+
- Jolokia
83+
- REST-WADL
84+
- gRPC
85+
- UPnP
86+
- 更多主流API技术...
87+
## 更多实用功能
88+
- Fuzz鉴权绕过漏洞
89+
- 检测请求返回包中敏感信息
90+
— 发现js中泄露的API
91+
— 常见数据解析依赖库识别,比如Fastjson等
92+
- 更多实用功能...
93+
94+
# 项目地址
95+
96+
https://github.com/API-Security/APIKit
97+
![](./img/APISecurity.png)
98+
**API Security是一个分享一切和API安全相关的工具、漏洞环境、书籍、技术文章、新闻资讯、最佳实践白皮书等资料的社区。**
99+
100+
**API Security知识星球永久免费,欢迎对API安全感兴趣的信息安全爱好者一起学习交流。**
101+
102+
**BUG、需求、PR都非常欢迎社区的小伙伴们提交。同时有疑问和意见也可以提出,我们虚心采纳。**
103+
![](./img/zsxq.jpg)
104+
105+
106+
有更多想法可以加微信yuligesec聊聊~
107+
108+
109+
![](./img/wx.jpg)
110+

assembly.xml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<assembly
2+
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
5+
<id>jar-with-dependencies</id>
6+
<formats>
7+
<format>jar</format>
8+
</formats>
9+
<includeBaseDirectory>false</includeBaseDirectory>
10+
<dependencySets>
11+
<dependencySet>
12+
<outputDirectory>/</outputDirectory>
13+
<useProjectArtifact>true</useProjectArtifact>
14+
<unpack>true</unpack>
15+
<scope>runtime</scope>
16+
</dependencySet>
17+
<dependencySet>
18+
<outputDirectory>/</outputDirectory>
19+
<unpack>true</unpack>
20+
<scope>system</scope>
21+
</dependencySet>
22+
</dependencySets>
23+
24+
</assembly>

img/.DS_Store

6 KB
Binary file not shown.

img/APIKit_ch.png

118 KB
Loading

img/APIKit_en.png

151 KB
Loading

img/APISecurity.png

2.66 MB
Loading

img/TheMindMap.png

269 KB
Loading

img/activescan.jpg

246 KB
Loading

img/config.png

12 KB
Loading

img/dashboard.png

155 KB
Loading

img/demo.png

157 KB
Loading

img/install.png

156 KB
Loading

img/req.png

200 KB
Loading

img/wx.jpg

39.8 KB
Loading

img/xray.png

50.3 KB
Loading

img/xrayburp.png

167 KB
Loading

img/zsxq.jpg

32.1 KB
Loading

0 commit comments

Comments
 (0)