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

举报
黑色地带(崛起) 发表于 2023/02/16 22:47:51 2023/02/16
【摘要】 【接口漏洞专题】接口遍历、接口调用重放、接口参数篡改、接口未授权访问

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

 目录

一、接口调用遍历:

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<>一样,调用系统库里面的代码(导入模块)。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。