(35.2)【接口漏洞专题】接口遍历、接口调用重放、接口参数篡改、接口未授权访问

  • Post author:
  • Post category:其他



目录


一、接口调用遍历:


1.1、原理:


1.1.1、初期


1.1.2、编码


1.1.3、实现


1.2、示例:


1.3、漏洞产生的原因:


1.3.1、明文传输:


1.3.2、无Session检验:


1.4、利用过程:


1.4.1、抓包拦截


1.4.2、产生数据包


1.4.3、过滤数据包


1.4.4、接口遍历


二、接口调用重放:


2.1、原理:


2.2、产生的地方:


2.3、漏洞产生的原因:


2.4、利用过程:


2.4.1、截取


2.4.2、重发


2.4.3、执行


三、接口调用参数篡改:


3.1、原理:


3.2、参数的加密:


3.2.1、规则


3.2.2、加密


3.2.3、发送


3.2.4、解密


3.2.5、验证


3.3、产生漏洞原因:


3.4、产生的地方


3.5、利用过程:


3.5.1、提交


3.5.2、修改


3.5.3、实现


四、接口未授权访问:


4.1、原理:


4.2、产生原因:


4.2.1、未使用检验方法:


4.3、 利用过程:


4.3.1、发现


4.3.2、利用


五、相关介绍


5.1、webservice:


5.1.1、原理:


5.1.2、测试链接:


5.2、callback自定义:


5.2.1、原理:


5.2.2、示例



一、接口调用遍历:


1.1、原理:


1.1.1、初期

在对功能进行设计的时候,就会相应的设计接口(方便去调用这些功能)。


1.1.2、编码

接口根据具体的功能需求进行封装(各部分可以直接调用)


1.1.3、实现

通过客户端传入的不同参数,获取对应数据,或执行相应的功能


1.2、示例:

查询功能,客户端通过对应的接口,传入userID等相应的参数,筛选出对应userID的信息,并返回给客户端。


1.3、漏洞产生的原因:


1.3.1、明文传输:

没有使用HTTPS等安全协议进行加密传输,直接将敏感的信息通过明文在客户端与服务器之间传输


1.3.2、无Session检验:

如果没有对userID参数与对应的Session进行一致性验证,可能存在非法的越权访问


1.4、利用过程:


1.4.1、抓包拦截

使用burpsuite等抓包工具代理


1.4.2、产生数据包

在网站上点击各种地方(登录,查询等等),burpsuite会对整站的数据包进行爬取,并保存在site map(网站地址)中


1.4.3、过滤数据包

使用burpsuite的过滤器,对数据包进行过滤,找到含id参数的请求数据包


1.4.4、接口遍历

对于找到的数据包发送到Intruder中,对id参数进行遍历,并分析响应信息



二、接口调用重放:


2.1、原理:

顾名思义,就是将截获的正常数据包,再次发送给服务器(已经接过该数据包),且能被服务器执行,重发次数多了就崩了。


2.2、产生的地方:

支付接口、发送短信接口、发送邮件接口、验证码接口、订单生成接口、评论提交接口……


2.3、漏洞产生的原因:

(1)未采取验证或验证不全面

(2)未控制数据包相关限制,就好比上限等(未做好输入控制)

(3)对应的唯一的token,和token使用后失效,失效时间

(4)为对数据包中的参数进行过滤,导致恶意语句执行

(5)没有判断时间戳的机制

(6)未做好输出控制


2.4、利用过程:


2.4.1、截取

攻击者通过网络监听或抓包等方法获取到了正常的请求数据包


2.4.2、重发

虽然这个数据包已经被服务器成功接收到了,但是因为服务器验证机制漏洞,再次把数据包发送给服务器,达到欺骗服务器目的


2.4.3、执行

数据包中恶意操作被服务器执行



三、接口调用参数篡改:


3.1、原理:

顾名思义,通过对漏洞的利用(或者抓包),对传入接口的参数进行修改。


3.2、参数的加密:


3.2.1、规则

客户端和服务端约定的加密方法、加密秘钥等


3.2.2、加密

使用秘钥对参数加密(得签名值signature),将签名值放入参数中


3.2.3、发送

发送到服务器


3.2.4、解密

根据约定好的秘钥解密(得签名值autograph)


3.2.5、验证

对比2次签名值(signature和autograph的值),一样则合法,反之不合法


3.3、产生漏洞原因:

(1)Session覆盖问题(Session中存储重要的凭证),如果是从客户请求的参数中获取相关凭证,就可能接收到是被篡改的参数

(2)从前端获取的相关凭证,要与Session中的凭证相符合

(3)没有对前后端进行分离


3.4、产生的地方

(短信、邮政……)短信验证码、邮件验证码……


3.5、利用过程:


3.5.1、提交

输入正确的手机号或邮箱地址参数提交


3.5.2、修改

通过Session覆盖等手段修改手机号或邮箱,改为目标手机号/邮箱


3.5.3、实现

如果修改了对应请求中参数后,修改后的目标能收到信息,则表示接口参数修改并成功执行,存在篡改漏洞



四、接口未授权访问:


4.1、原理:

在很多功能设计的时候,特定功能的接口调用,需要进行身份验证通过后,才能调用使用特定功能,通过各种漏洞去访问无权访问的,就属于未授权。


4.2、产生原因:


4.2.1、未使用检验方法:

(1)未使用Token验证,或者Token使用后未失效,被攻击者利用

(2)未对会话状态进行验证(即是否是登录状态)

(3)未进行Session验证(Session中包含身份凭据)

(4)未对请求者身份与所请求数据所有者是否进行验证(唯一性)


4.3、 利用过程:


4.3.1、发现

寻找接口身份验证的不足(如未做身份验证或校验不足)


4.3.2、利用

利用漏洞(身份认证的缺陷),进行非授权访问(越权,垂直越权和水平越权)调用接口



五、相关介绍


5.1、webservice:


5.1.1、原理:

字面意思是web服务意思(分布式计算技术),网络上存在可用的API(接口),即可直接在网络环境进行调用的方法(远程调用)


5.1.2、测试链接:


WebService测试链接


5.2、callback自定义:


5.2.1、原理:

被作为实参传入另一函数,并在该外部函数内被调用,用以来完成某些任务的函数,称为回调函数(官方文档)


5.2.2、示例

这个就是好像C语言中import<>一样,调用系统库里面的代码(导入模块)。



版权声明:本文为qq_53079406原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。