总览

知识点:

1.HTTP类接口-测评
2.RPC类接口-测评(程序远程调用,客户端和服务的连接,非web协议)
3.Web Service类-测评

内容点:

SOAP(Simple Object Access Protocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP不是Web Service的专有协议。
SOAP使用HTTP来发送XML格式的数据,可以简单理解为:SOAP = HTTP +XML
REST(Representational State Transfer)即表述性状态传递,在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的Web服务开始采用REST风格设计和实现。(程序的远程调用,链接客户端和服务端<非web协议>)
例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。
WSDL(Web Services Description Language)即网络服务描述语言,用于描述Web服务的公共接口。

这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。

接口数据包:

查询语法:
edu inurl:asmx?wsdl
能查出带接口的页面,这种接口会造成
信息泄露
SQL注入

测试:接口提供的信息查询点
API接口测试工具:soapui ,ReadyAPI
网站打开是一堆接口,但是我们需要的是对每一个接口进行进一步的测试
这是大部分扫描工具做不到的

个人对API服务的理解:
接口提供服务,例如:
url/api/get
返回一个{msg:'successs'}
能返回信息,就是api服务

数据包当中的字段等

Method:请求方法
攻击方式:OPTIONS,PUT,MOVE,DELETE
效果:上传恶意文件,修改页面等
URL:唯一资源定位符
攻击方式:猜测,遍历,跳转
效果:未授权访问等
Params:请求参数
攻击方式:构造参数,修改参数,遍历,重发
效果:爆破,越权,未授权访问,突破业务逻辑等
Authorization:认证方式
攻击方式:身份伪造,身份篡改
效果:越权,未授权访问等
Headers:请求消息头
攻击方式:拦截数据包,改Hosts,改Referer,改Content-Type等
效果:绕过身份认证,绕过Referer验证,绕过类型验证,DDOS等
Body:消息体
攻击方式:SQL注入,XML注入,反序列化等
效果:提权,突破业务逻辑,未授权访问等

安全问题:

XSS跨站,信息泄露,暴力破解,文件上传,未授权访问,JWT授权认证,接口滥用等

实例

WebService类-Wsdl&SoapUI

探针:?wsdl
利用:SoapUI&ReadyAPI

SOAP类-Swagger&SoapUI&EXP

探针:目录&JS资源
利用:SoapUI&EXP
https://github.com/lijiejie/swagger-exp
https://github.com/jayus0821/swagger-hack

Swagger     #API接口管理调试,使接口调试更便捷

目录:

/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

找到api文档的配置信息(例如json文件,xml文件 ),上面有各种api信息。

脚本扫

swagger-hack-main   一个Py测试脚本。测漏洞的,必须传入json地址。
# 返回结果:主看URL,status_code, response

HTTP类-Webpack&PackerFuzzer

Webpack:JS打包器


这类接口属于JS渗透

# ajax请求:js请求
# 某些纯JS开发的网站,可以通过网站是否使用Webpack来识别。

探针:插件&JS资源

利用:PackerFuzzer
https://github.com/rtcatc/Packer-Fuzzer

其它:API安全技术与实战.pdf

Postman: 接口测试神器(手工测试方便)