概述
什么是接口?
接口是后端设计的一套供给第三方使用的方法
举个例子,fofa提供了第三方api接口来进行调用,使用查询语法获取资产目标资产信息
输入相关参数进行调用
API安全就是围绕着这一个接口进行的,可能存在的漏洞包括:SQL注入、身份验证、信息泄漏、XSS跨站等
1、API分类特征
SOAP - WSDL
Web Service是基于网络的、分布式的模块化组件,通过 Web 进行发布、查找和使用**。**是应用程序组件使用开放协议进行通信, 是独立的(self-contained)并可自我描述, 可通过使用UDDI来发现,可被其他应用程序使用。
交互过程
Web Services 都是放在Web服务器(如IIS)的。
WebService服务器端首先要通过一个WSDL文件来说明自己有什么服务可以对外调用,并注册到UDDI服务器,以便被人查找。
客户根据 WSDL 描述文档,使用XML封装一个 SOAP 请求消息,嵌入在一个HTTP POST请求中,发送到 Web 服务器来。
Web 服务器再把这些请求转发给 Web Services 请求处理器。
由请求处理器解析收到的 SOAP 请求,调用 Web Services,然后再生成相应的 SOAP 应答。
Web 服务器得到 SOAP 应答后,会再通过 HTTP应答的方式把信息送回到客户端。
Web services 三种基本元素:
uudl用于提供发布和查询webservice方法
wsdl是webservice服务描述语言,用于web服务说明,它是一个xml文档,用于说明一组soap消息如何访问接口
soap是简单对象访问协议,用于分布式环境的基于信息交换的同行协议,描述传递信息的格式和规范,它可以用于连接web服务和客户端之间的接口,是一个可以在不同操作系统上运行的不同语言编写的程序之间的传输通信协议,格式为xml,soap消息
OpenApi - Swagger UI
Springboot Actuator
同时也可以测一测heapdump泄漏以及相关命令执行漏洞
2、API检测流程
接口发现,遵循分类,依赖语言,V1/V2多版本等
Method:请求方法
攻击方式:OPTIONS,PUT,MOVE,DELETE
效果:上传恶意文件,修改页面等
URL:唯一资源定位符
攻击方式:猜测,遍历,跳转
效果:未授权访问等
Params:请求参数
攻击方式:构造参数,修改参数,遍历,重发
效果:爆破,越权,未授权访问,突破业务逻辑等
Authorization:认证方式
攻击方式:身份伪造,身份篡改
效果:越权,未授权访问等
Headers:请求消息头
攻击方式:拦截数据包,改Hosts,改Referer,改Content-Type等
效果:绕过身份认证,绕过Referer验证,绕过类型验证,DDOS等
Body:消息体
攻击方式:SQL注入,XML注入,反序列化等
效果:提权,突破业务逻辑,未授权访问等
3、API检测项目
Ready API
需要自行破解使用,只适用于windows,导入接口url就可以进行安全测试,漏洞类型覆盖广,就是测试时间周期较长
测试结果以报告形式展示
Postman 联动Xray
postman设置代理转发
效果如图
APIKIT Burp插件
具体使用
相关配置
进行接口fuzz测试
补一个案例
相关项目链接
https://github.com/lijiejie/swagger-exp
https://github.com/jayus0821/swagger-hack
部分项目下载:
https://github.com/SmartBear/soapui
https://github.com/API-Security/APIKit
https://github.com/lijiejie/swagger-exp
https://github.com/jayus0821/swagger-hack