接口安全测试
接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口。
接口(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和 事件作为成员。
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。(我们主要关注其安全性)
接口分类
从平台划分:分为内部接口和外部接口
从类型/协议来说:分为http接口和soap (webservice)接口
http接口 :通过get和post来获取数据,在数据处理上效率比较高
webservice接口:通过soap协议来获取数据,比起http来说能处理更加复杂的数据类型
但从实质上来说soap请求也是http类型的请求,只不过把http类型加封一层 webservice协议,
所以就变成了soap类型请求
http接口:基于HTTP协议的开发接口.这个并不能排除没有使用其他的协议。
api接口:API(Application Programming Interface)应用程序编程接口,应用也包括网络应用程序,就像api文档基本上就是使用说明书,API接口可以简单理解成“应用程序使用接口”。
RPC接口:Remote Procedure Calls 远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。 RPC(远程过程调用)是一项广泛用于支持分布式应用程序(不同组件分布在不同计算机上的应用程序)的技术。RPC 的主要目的是为组件提供一种相互通信的方式,使这些组件之间能够相互发出请求并传递这些请求的结果。 没有语言限制。
RMI:RMI(Remote Method Invocation,远程方法调用)RMI是针对于java语言的, RMI 允许您使用Java编写分布式对象
Webservice接口:Webservice是系统对外的接口,比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
RESTful : 简称 REST,是描述了一个架构样式的网络系统,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。REST提出设计概念和准则为:
1.网络上的所有事物都可以被抽象为资源(resource)
2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
3.所有的操作都是无状态的
http和webservice接口区别:
httpservice通过post和get得到你想要的东西
webservice就是使用soap协议得到你想要的东西,相比httpservice能处理些更加复杂的数据类型
http协议传输的都是字符串了,webservice则是包装成了更复杂的对象。
hessian类似于webservice,但是它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。
测试工具
Burp Suite,代理拦截,跟踪通信过程和结果,对通信进行重放和二次处理等
SOAP, WebService通过Http协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息头的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用WebService。
AWVS, 扫描工具,就不在废话了
SOAP测试方法
first
我们要先将我们想要测试的接口找到 可以利用Google hacking 当然要是目标测试就简单了 我们可以寻找类似的关键词
inurl:jws?wsdl | inurl:asmx?wsdl |
---|---|
inurl:aspx?wsdl | inurl:ascx?wsdl |
inurl:ashx?wsdl | inurl:dll?wsdl |
inurl:exe?wsdl | inurl:php?wsdl |
inurl:pl?wsdl | inurl:?wsdl |
filetype:jws | filetype:asmx |
second
接下来我们要开始利用工具了 打开SOAP这个工具,网上就有破解版,就不细说了直接去百度下载就好了
利用功能加入目标链接如上图,我们就可以开始我们的手动测试了,当然这只是我们测试的起点,我们还是要可以完成机械测试的
thread
选择好相对应的参数来进行针对性的测试
接下来就可以进行安全探测了
利用安全测试进行机械扫描
利用burp进行代理测试
其实和浏览器的代理设置类似,原理是一样的,只要在软件中设置代理就可以完成burp的使用了
配置好了链接,我们就可以愉快的利用burp进行测试了
AWVS批量扫描
这个就不细说了,安装破解,请自行百度去
打开以后直接输入链接开始你的扫描就好了
接口漏洞说明
我从网上总结出来的导向图,这里很明显的写明了测试内容及方法等
我们单独拿出一个安全测试案例来讲一下.
我们打开一个微信的小程序进行抓包
我们抓取人的接口数据,发现内容包含答案字段
类似这样的数据返回包
我们这就可以根据这个字段来进行回答问题了,写上一个批量发送的角本就可以进行答题了,不管是什么问题都可以回答正确了.
同类型漏洞请参考:https://testerhome.com/topics/11450
来源:freebuf.com 2020-07-09 16:41:15 by: Loren麟
请登录后发表评论
注册