api接口安全测试-Wsdl&Swagger&Webpack

Posted 告白热

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了api接口安全测试-Wsdl&Swagger&Webpack相关的知识,希望对你有一定的参考价值。

0x00 api接口介绍

通常在网站的通讯中,很多会调用api接口去方便更多信息的管理与调用,但是当使用某些api时,在开发人员未对api接口做出访问策略限制或其他的加固,会导致其他的用户发现api的时候可能会从中获取到敏感信息泄露,或者其他的sql注入等等安全问题,本文介绍三种api的利用与发现

0x01 WebService类-Wsdl接口测试

在WebService的开发,特别是和第三方有接口的时候,走的是SOAP协议,然后会有WSDL文件(或网址),这时候可以对wsdl文件进行相关的测似,敏感信息等等。

wsdl指纹探测:“?wsdl”


该api接口的安全问题有以下类型:

Web 应用安全漏洞:
   sql注入
   xss攻击
   命令执行
   越权
   LDAP注入
   缓冲区溢出
   逻辑漏洞
   等等
   
XML 相关的特殊安全漏洞:
   XPath注入
   XQuery注入
   拒绝服务攻击(SOAP 数组溢出、递归的 XML 实体声明、超大消息体)
   信息泄漏(XML External Entity File Disclosure)
   等等

在api的接口里面也可以看到一些信息调用的查询,这里就会参数敏感信息泄露的问题,这个通常可以工具结合是手工去测试发现

对于这些地方都可以进行注入,查询信息等的测试,
工具测试:SoapUI Pro+burp
指纹:“?wsdl” && “edu” && country=“CN”
一篇不错的文章可以学习一下:
https://cloud.tencent.com/developer/article/1666998

0x02 SOAP类-Swagger接口测试

Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。
在对目标信息收集可以验证一下是否存在Swagger接口,以下是特征的目录指纹:

/swagger/
/api/swagger/
/swagger/ui/
/api/swagger/ui/
/swagger-ui.html
/api/swagger-ui.html
/user/swagger-ui.html
/swagger/ui/
/api/swagger/ui/
/libs/swaggerui/
/api/swaggerui/
/swagger-resources/configuration/ui/
/swagger-resources/configuration/security/
Swagger接口漏洞测试类型
接口越权
接口SQL注入(针对所有查询接口)
接口未授权访问(重点针对管理员模块,如对用户的增删改查)
任意文件上传(针对上传接口进行测试)
测试信息泄露(重点针对用户、订单等信息查询接口,以及一些测试数据等)

可能存在文件上传的swagger接口

有存在数据查询的地方也可以测试注入等

工具测试:
https://github.com/lijiejie/swagger-exp
https://github.com/jayus0821/swagger-hack

测试完后可以查看测试结果返回200,是否存在敏感信息

0x03 HTTP类-Webpack测试

​ webpack是一个前端的模块化打包(构建)的工具
​ webpack将一切繁杂的、重复的、机械的工作自动处理,开发者只需要关注于功能的实现的
指纹:使用wapplyzer帮助识别

js指纹:

Webpack漏洞的检测,
工具支持自动模糊提取对应目标站点的API以及API对应的参数内容,并支持对:未授权访问、敏感信息泄露、CORS、SQL注入、水平越权、弱口令、任意文件上传七大漏洞进行模糊高效的快速检测。在扫描结束之后,本工具还支持自动生成扫描报告,您可以选择便于分析的HTML版本以及较为正规的doc、pdf、txt版本。

Packer-Fuzzer:https://github.com/rtcatc/Packer-Fuzzer

python3 PackerFuzzer.py -t adv -u http://chargepoint.com   

接口安全&WebPack&REST&SOAP&WSDL&WebService

知识点

靶场搭建可用蓝易云服务器

😘😘😘😘😘😘点击查看详情

  • HTTP类接口

  • RPC接口

  • Web Server类

  1. HTTP类接口其实是隶属于Web Server的【正常网站的差不多】

  2. RPC接口 其实就是远程调用客户端和服务端,就好比手机登录游戏的账户密码,而登录的这个账户密码会用到RPC接口,而账户密码就是通过这个接口来继续查询验证了【非web】

wsdl接口

inurl:asmx?wsdl
edu.cn inurl:asmx?wsdl
https://www.w3schools.com/xml/tempconvert.asmx?WSDL

这个是我们找到的一个接口泄露的漏洞

访问是这样的

但是我们改一下url就可以看到有哪些接口从而利用了

把后面的WSDL去掉

https://www.w3schools.com/xml/tempconvert.asmx?

两个接口

这里推荐可以有用

readyapi

soapUI

swagger接口

swagger【第三方接口调试工具】

swagger 其实也是api接口

当网站在运行的时候用到了某些接口,你为了调试这些接口能否正常的调用,能正常查询等等的话,就会用到Swagger这个平台去测试,这是就需要在网站上搭建Swagger这个平台,让这个平台来调试接口

那么当用户他用到了这个平台,用户能够通过这个平台队对接口进行调试,那么攻击者也会通过某些手段,利用这个平台Swagger来对接口进行调试

fofa
"Swagger" && title=="Swagger UI"

http://20.151.72.103:8002/swagger-ui.html

判断对方网站是否搭建了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

或者

F12查看加载的文件中有没有带Swagger特殊字样的

swagger工具

https://github.com/jayus0821/swagger-hack

https://github.com/lijiejie/swagger-exp

HTTP类

Webpack&PackerFuzzer

webpack主要是打包,所以其核心存在两个部分,入口出口,你可以把webpack加工想象成香肠加工厂,就是活猪进去,香肠出来的那种,但是如果每次加工都需要员工亲力亲为,那多麻烦那,所以我们考虑到了自动化配置。webpack存在功能类似的配置文件,让webpack通过配置,全自动的执行我们需要的编译操作。
webpack分成四个部分,期中最核心的就是入口和出口,当然在入口和出口配置的同时我们还需要一些加载器和插件,这就是我们所谓的webpack配置文件。这个配置文件我们习惯把其命名为webpack.config.js ,还有webpackfile.js

 注意:webpack共分为四个部分

识别

可以用中间件识别工具去识别

https://staging.expanseservices.com/

F12关键词也可以判断

以上是关于api接口安全测试-Wsdl&Swagger&Webpack的主要内容,如果未能解决你的问题,请参考以下文章

WSDL测试webservice接口记录

API安全JS接口&框架安全&脚本扫描&审计&利用

没有wsdl,怎么使用soapui测试webservice接口?

Swagger的学习

swagger介绍和使用

怎么根据wsdl写相应的接口