首页 > 其他分享 >安全测试实践-万家APP越权逻辑漏洞挖掘

安全测试实践-万家APP越权逻辑漏洞挖掘

时间:2023-05-30 10:12:10浏览次数:43  
标签:APP 用户 接口 漏洞 cookie 测试 越权

逻辑漏洞会导致业务面临着巨大的经济损失隐患与敏感数据泄露的风险,本文从安全测试的角度,以越权逻辑漏洞为例,介绍逻辑漏洞的挖掘方法和实践过程。

一、什么是越权逻辑漏洞

定义: 指由于系统的权限控制逻辑不够严谨,使得系统用户可以访问或操作未授权的数据和功能。包括水平越权和垂直越权。

水平越权: 指当系统存在多个相同权限的用户时,A用户可以访问或操作到其他用户的资源。如图1.1所示,用户A、B、C、D都是普通用户,当用户A可以访问到用户B或者其他用户资源时,就产生了水平越权。

垂直越权: 指当系统存在不同权限的用户时,低权限用户可以访问或操作到高权限用户的资源。如图1.1所示,当普通用户或者其他低权限用户可以访问到比自己权限高的用户资源时,就产生了垂直越权。

图1.1

二、越权逻辑漏洞挖掘方法

基于越权逻辑漏洞的定义和分类,从模拟攻击者攻击漏洞的角度出发,可以总结出以下两种挖掘方法。

2.1 未授权访问测试

指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问的页面或者信息。具体流程为:

1)统计测试接口;

2)使用抓包工具获取接口入参;

3)不填写cookie或者填写无效cookie重新请求;

4)查看请求结果,如果返回了正确cookie才能取得的结果,说明该接口存在未授权访问漏洞。

2.2 越权访问测试

通过抓包修改参数的方式绕过客户端实施攻击,从而测试是否存在越权漏洞。具体流程为:

1)统计测试接口;

2)使用抓包工具获取接口入参;

3)水平越权测试:分析入参中是否标识用户身份的敏感信息,如果存在,则修改为其他测试用户信息,重新请求查看返回结果,若返回结果正确,则该接口存在水平越权漏洞;

4)垂直越权测试:分析高级权限用户的请求入参,将高权限用户信息替换为低级权限用户的信息,重新请求查看返回结果,若返回结果正确,则该接口存在垂直越权漏洞。

三、万家系统越权逻辑漏洞挖掘实践

3.1 实现工具和平台

抓包工具: 使用Charles,它是一个 HTTP 代理、HTTP 监视器、反向代理工具,可以帮助开发人员查看他们的机器和Internet之间的所有HTTP和SSL、HTTPS 流量,包括请求、响应和 HTTP头(其中包含cookie和缓存信息)。官网安装链接:https://www.charlesproxy.com/documentation/installation/

请求平台: 使用京东内部测试平台DeepTest。

3.2 未授权访问测试实践

图3.1

首先确定测试接口,京东万家APP的所有接口都需要登录才能访问,因此需要逐一验证。获取接口及参数信息,流程如下:

(1)打开Charles并将手机代理开启;

(2)检查手机代理ip及端口是否与Charles设置一致,如不同则将其改为一致;

(3)手机启动京东万家APP;

(4)对应Charles中查看相应的接口和请求,如图3.1所示。

以Charles中的user_baseinfo接口为例,进行未授权访问逻辑漏洞测试。首先从Charles的抓包信息中复制该接口、body和cookie信息,然后在DeepTest平台进行接口入参修改并重新请求。其中入参主要修改cookie,原因是登录信息的校验都是从cookie中获取。因此,进行未授权的测试的本质就是修改入参中的cookie信息为无效信息然后重新请求。注意,cookie无效包括不填写 cookie或填写已过期的cookie。如图3.2所示,此时接口不填写cookie,但重新请求后,依然可以获取到结果,即用户在没有通过认证授权的情况下依然能够直接访问需要通过认证才能访问的信息,说明该接口存在未授权访问逻辑漏洞。

图3.2

3.3 越权访问测试实践

水平越权测试: 首先确定所有测试接口,以万家APP中订单详情接口测试为例,抓包得到接口入参为:

{"from":"","orderId":"239703099155","sdkClient":"plugin_apple","appName":"apollo","isPublish":"","apolloId":"ca3d","apolloSecret":"7157","wjPin":"ceshibu3"}

分析入参:由于入参中存在orderId和wjPin两个字段来标识用户身份,因此修改其为其他同级别权限用户信息,进行水平越权测试。修改前和修改后的请求及返回结果如图3.3所示,令当前登录用户为A用户,修改请求入参的用户信息为B用户,可以发现,修改入参后,A用户依然可以访问到B用户的订单详情,也就是当前登录用户可以访问到其他用户的订单详情,说明该接口存在水平越权逻辑漏洞。

图3.3

垂直越权测试: 在万家APP业务中,店主的权限高于店员的权限,因此需要进行垂直越权测试来验证店主的信息是否存在泄漏风险。

首先确定店主比店员多的具体权限,需要具体到每个接口。然后使用店主权限登录万家APP,找到只有店主权限才能看到的应用,进行请求、抓包、分析参数、修改参数、重新请求的测试过程。其中,修改参数指将店主身份的cookie修改为店员身份的cookie,如图3.4所示,重新请求后可以正常返回结果,说明该接口存在垂直越权逻辑漏洞。

图3.4

四、总结与建议

本文介绍了越权逻辑漏洞的基本概念及挖掘方法,并通过万家APP的三个具体场景,介绍了越权逻辑漏洞挖掘的主要流程,包括:确定测试接口抓包获取接口入参分析入参修改入参部分信息后重新请求分析返回结果。最后,通过此次万家APP的逻辑漏洞挖掘实践,提出以下两点建议:

  1. 建议使用DeepTest接口自动化测试平台,可以提高效率,便于维护和回归,从而使得逻辑漏洞挖掘常态化;

  2. 建议在工作中培养安全测试意识,比如:

(1)和账户相关的增删改查操作应使用当前用户身份约束;

(2)获取当前用户身份的方式应从session中获取;

(3)不以任何客户端传递的明文数据作为鉴权方式;

(4)用户可见索引字段应尽量设置成无规律;

(5)建立测试方法集,不断积累、执行,将安全测试常态化。

作者:京东零售 孟迪

来源:京东云开发者社区

标签:APP,用户,接口,漏洞,cookie,测试,越权
From: https://www.cnblogs.com/Jcloud/p/17442458.html

相关文章

  • 开发手记:MyBatis的mapper文件的中SQL符号转义
    字符转义问题在MaBatis的XML文件中编写SQL语句时,<符号会出现转义问题,例如:<!--查询指定月份内的订单--><selectid="queryInRange"resultType="OrderEntity"> SELECT*FROMorder WHEREcreate_time>DATE_SUB(NOW(),INTERVAL#{month}MONTH) ANDuser_i......
  • RCE漏洞学习
    RCE漏洞学习(橙子科技靶场)靶场搭建基于docker,搭在我的一部kali的虚拟机里面,之前自己写了一篇关于kali使用的笔记,忘记如何开启靶场就去复习一下1.命令执行的一些函数重点如何去学习以及之后如果我们要回想的话,该如何提醒自己怎么运行?它的运行条件参数能否回显1.system......
  • uniapp专题学习(一)
    为什么要学习uniapp一套代码可以打包到不同的应用平台,一套代码,多端运行;方便入手,就是使用vue语法写小程序,如果有vue和小程序经验的话,甚至直接可以看文档;丰富的生态环境,官方及第三方插件较为丰富,论坛活跃度高。什么是uniappuni-app是一个使用Vue.js开发所有前端应用的框......
  • web基础漏洞-信息泄露
    1、介绍信息泄露漏洞是基于web,可以直接请求到敏感信息。2、一般页面从一般页面中,提取注释、html元素或js变量3、robots获取可能的敏感路径4、各种cms和中间件的管理页面、后台页面、标志页面phpinfotomcatapache5、目录遍历漏洞6、配置错误导致可以访问超出范围的文......
  • web基础漏洞-系统命令注入
    1、介绍应用程序有时需要调用一些执行系统命令的函数,如在php中,使用system、exec、shell_exec、passthru、popen、proc_popen等函数可以执行系统命令。当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击。2、windows支持的管道符|直......
  • web基础漏洞-xxe
    XXE漏洞利用–任意文件读取_哔哩哔哩_bilibiliDTD快速入门_哔哩哔哩_bilibiliXXE学习笔记–FreeBuf网络安全行业门户1、介绍xxe漏洞全称XMLExternalEntityInjection即外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文......
  • web基础漏洞-文件包含漏洞
    1、定义文件包含是一种常用编程技巧,即一个文件中可以包含引入其他文件,以方便代码的复用。文件包含漏洞,是因为用户可以控制包含的文件路径,从而造成危害。包含远程php文件,然后执行代码包含远程一般文件,进行网站篡改包含本地文件,暴露信息,比如系统账号密码2、相关语言和函数......
  • web基础漏洞-文件上传漏洞
    文件上传总结–FreeBuf网络安全行业门户1、定义文件上传漏洞,是因为在网站的文件上传业务中,未严格限制上传的类型,从而导致可访问、可执行的文件被上传到服务端,访问执行后造成危害。(1)静态文件,将html、js、css等静态文件上传,可以造成xss、csrf、重定向等危害(2)脚本文件,也是最主......
  • web基础漏洞-目录遍历漏洞
    1、介绍目录遍历漏洞,是指可以遍历查看非公开访问的,位于网站目录下或系统中的全部或部分文件。属于信息泄漏的类型之一目录遍历有两种形式:基于业务代码查询,而未限制参数,导致可以查询非公开文件由于服务器容器等中间件,未严格过滤敏感字符,导致超出边界查询2、查询目标当前网......
  • web基础漏洞-地址类漏洞
    1、介绍地址类漏洞指的是,可以由攻击者控制的地址类参数导致页面重定向到攻击者控制网站,进行钓鱼或者将敏感数据发送给攻击者加载攻击者指定的资源,比如脚本、iframe,替换下载资源,替换图片进行钓鱼,尤其是联系方式或支付信息重定向漏洞属于地址类漏洞的一种场景。2、输入(1)......