免责声明
❝
由于传播、利用本公众号"隼目安全"所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号"隼目安全"及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉谢谢!
API接口安全
在日常的测试中,我们会经常看到一些接口文档或接口地址,在数字化时代,API成为了数据交互的核心,但同时也带来了安全问题,本文的思路在于总结一些api方面常见的攻击面。笔者在此方向也是一个小白,如有错误,还望各位反馈。
API分类
SOAP – WSDL
soap是简单对象访问协议,用于分布式环境的基本信息交换的同行协议,描述传递信息的格式和规范,它可以用于连接web服务和客户端之间的接口,是一个可以在不同操作系统上运行的不同语言编写的程序之间的传输通信协议,格式为xml。 fofa探针:
?wsdl
像上图所示,即为soap接口文档,或一般后缀为.asmx,即可判断为soap接口,在.asml后添加?wsdl会以xml的形式显示当前接口文档所有信息。
OpenApi – Swagger
OpenAPI是用来描述API的文档,该文档基于控制器中的xml注释以及实体类属性attribue特性,它是OpenAPI流程的核心。 Swagger我们就比较常见了,Swagger是一套围绕OpenApi规范构建的开源工具,可以帮助设计、构建、记录和使用Open API。 fofa探针:
Swagger-UI
RESTful – /v1/api
Rest 是web服务的一种架构风格,一种设计风格,是一种思想;同时Rest不是针对某一种编程语言的。
如何判断目前网站是否使用何种接口
wsdl
方法1:一般站点在传参时url为.asmx时,可能为wsdl接口
方法2:在其IP下其他端口存在如此类似站点,可能使用wsdl接口
swagger
方法1:查看js资源中有没有请求swagger
方法2:目录扫描,有以下类似格式的目录或文件代表可能存在swagger
/swagger
/api/swagger
/swagger/ui
/api/swagger/ui
/swagger-ui.html
/api/swagger-ui.html
/user/swagger-ui.html
/libs/swaggerui
/api/swaggerui
/swagger-resources/configuration/ui
/swagger-resources/configuration/security
工具测试API
wsdl 工具测试
这里我们选择New Security Test后选择API Definition输入我们所获得的wsdl url地址
下一步选择测试安全选项,可进行sql注入、xml测试等漏洞。
以下就开始了安全测试
swagger 工具测试
常见的测试工具有:
https://github.com/lijiejie/swagger-exp
https://github.com/jayus0821/swagger-hack
这里我习惯用的是swagger-hack,在启动后它会自动化爬取并测试所有swagger API接口。 运行非常的简单,直接在命令行后输入swagger首页的url地址即可
python3 swagger-hack2.0.py -u http://x.x.x.x:8080/swagger/v1/swagger.json
ApiKit burp插件使用
APIKit是基于BurpSuite提供的JavaAPI开发的插件。 APIKit可以主动/被动扫描发现应用泄露的API文档,并将API文档解析成BurpSuite中的数据包用于API安全测试。 以下是APIKit所支持探测并扫描应用泄露的API分类
下载链接:
https://github.com/API-Security/APIKit
安装也非常的简单,在burp的Extensions中选择安装APIkit插件即可
安装成功之后,APIKit中有两个选项默认是没有被勾选的
这两个选项的意思分别是:
Auto request sending 对子API进行自动化鉴权测试,快速发现API未授权访问漏洞。 Send with cookie 开启Cookie,可以把包的Cookie存下来,生成请求的时候保留Cookie。 在平时测试时,第一个Auto request sending 一定要慎重勾选,它会将爬取到的所有子API自动传参跑一遍,非常容易影响业务(吃牢饭) 安装好之后,就可以被动扫描应用泄露的API文档
这里可以看到它也自动给我们构造好了参数,我们可以直接放到Repeater中发包进行测试
原文始发于微信公众号(隼目安全):【相关分享】简述API安全
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论