• 【业务安全-02】业务数据安全测试及商品订购数量篡改实例


    0 前言

    业务中的数据安全不仅是存储在后台和数据库中的数据是否会被非法窃取或修改,还包括传输过程中的数据是否被非法窃取或修改。

    1 商品支付金额篡改测试

    概述:电商类网站在业务流程整个环节,需要对业务数据的完整性(不允许篡改)和一致性(前后一致)进行保护,特别是确保在用户客户端与服务、业务系统接口之间的数据传输的一致性,通常在订购类交易数据流程中,容易出现服务端未对用户提交的业务数据进行强制检验,过度信赖客户端提交的业务数据而导致的商品金额篡改漏洞。

    手段:商品金额篡改测试,是通过抓包修改业务流程中的交易金额等字段,来检测是否存在金额篡改漏洞。

    目的:该项测试主要针对订单生成的过程中存在商品支付金额校验不完整而产生的业务安全风险点,通常导致攻击者用实际支付远低于订单支付的金额订购商品的业务逻辑漏洞。

    例子:在支付页面抓取请求中商品的金额字段,修改成任意数据的金额并提交,查看能否以修改后的金额数据完善业务流程。比如一分钱买了一个电冰箱。

    2 前端JS限制绕过测试

    概述:很多商品在促销活动中是限制用户购买数量的,如果服务器仅在页面通过JS脚本限制,没有在服务端校验用户提交的数量,则存在通过抓取客户端发送的请求包修改JS端生成处理的交易数据的业务漏洞。(其他一些查询业务可能会限制时间段,也可能存在类似的漏洞)

    手段:将请求中的商品数量改为大于最大数显示的值,查看能否以非正常业务交易数据完成业务流程。

    目的:该项测试主要针对电商平台由于交易限制机制不严谨、不完善而导致的一些业务逻辑问题。

    3 业务上限测试

    概述:业务上限测试主要是针对一些电商类应用程序在进行业务办理流程中,服务端没有对用户提交的查询范围、订单数量、金额等数据进行严格校验而引发的一些业务逻辑漏洞。

    手段:通常情况下,在业务流程中通过向服务端提交高于或低于预期数量的数据以校验服务器是否对所提交的数据做预期校验。存在此类脆弱性的应用程序,通常表现为查询到超出预期的信息、订购、或兑换超出预期范围的商品等。

    目的:该项测试主要判断应用程序是否对业务预期范围外的业务请求做出正确回应。

    4 商品订购数量篡改

    概述:商品数量篡改测试是通过在业务流程中抓包修改订购商品数量等字段,以判断服务器是否存在商品订购数量篡改漏洞。

    手段:将请求中的商品数量修改成任意非预期数额负数等进行提交,查看业务系统能否以修改后的数量完成业务流程。

    目的:该项测试主要针对商品订购的过程中,服务器对异常交易数据处理缺乏风控机制而导致相关业务逻辑漏洞。

    例子:damiCMSV5.4网上商城为例。请参考文章《电子商城业务逻辑漏洞——篡改交易数据》。

    5 请求重放测试

    概述:请求重放漏洞时电商平台业务逻辑漏洞中一种常见的由设计缺陷所引发的漏洞,通常情况下所引发的安全问题表现为商品首次购买成功后,参照订购商品的正常流程请求,进行完全模拟正常订购业务流程的重放操作,可以实现“一次购买多次收货”等违背正常业务逻辑的结果。

    目的:该项测试主要针对电商平台订购兑换业务流程中每一笔交易请求的唯一性判断缺乏有效机制的业务逻辑问题,通过该项测试可以验证交易流程中随机数时间戳等数据的生成机制是否正常。

    6 商品订购数量篡改实例

    6.1 实验目的

    (1)加深对业务数据安全重要性的理解;
    (2)掌握测试业务数据是否存在篡改交易数据漏洞的方法。

    6.2 实验环境

    6.2.1 实验靶机

    实验靶机——win2008虚拟机:本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站,win2008及phpstudy的安装过程可以参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》,网站的搭建过程可以参考《【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例(具有用户注册、登录、注销、修改信息、留言等功能)》。

    攻击机:真实机。注意靶机与攻击机处于同一局域网。

    6.2.2 搭建靶场—damiCMS-V5.4

    搭建damiCMS-V5.4靶场的的步骤如下
    (1)下载damiCMS-V5.4版CMS电子商城代码。

    (2)解压并复制文件夹到靶机的网站根目录下。不同版本的phpstudy软件的安装时生成的目录可能存在差异,本文dami_5.4路径如下。
    在这里插入图片描述
    (3)真实机浏览器输入172.16.1.1/dami_5.4访问damiCMS(因为还没安装,需要先按以下步骤安装CMS),页面滑到最下方,勾选并点击继续。
    在这里插入图片描述

    (4)点继续。
    在这里插入图片描述

    (5)填写信息:

    • phpstudy中数据库的账号及密码,默认可以设置为root,数据库名填写damicmsv54。
    • 管理员用户及密码均设置为admin。
      在这里插入图片描述
      (6)安装完成,点击访问网站首页。
      在这里插入图片描述
      (7)点击右上角注册,填写用户名、密码、邮箱,并点击确定注册。

    在这里插入图片描述
    在这里插入图片描述
    (8)点击右上角进入登录页面,试试登录刚刚的账号,登录成功
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    6.3 实验过程

    (1)真实机浏览器访问172.16.1.1/dami_5.4,登录刚刚的账号,登录成功,返回如下页面。
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    (2)点击“在线充值”→“我要提现”。可以看到目前账户余额是0。
    在这里插入图片描述
    在这里插入图片描述
    (3)进入选择产品展示→选择一款产品。
    在这里插入图片描述

    (4)在页面中将数量改为-1,点击立即购买。
    在这里插入图片描述
    (5)随便填点内容,在付款方式选择为站内扣款,点击提交订单。
    在这里插入图片描述
    (6)在网站右上角再次进入会员中心,再次查看到账户金额,发现多了6000。也就是刚刚输入的那个-1数量反过来给账户加了金额,这就是业务漏洞。
    在这里插入图片描述
    在这里插入图片描述

    7 总结

    (1)了解哪些位置或过程存在业务数据安全风险;
    (2)掌握不同风险点的测试方法。
    (3)加深对业务逻辑漏洞的理解。
    (4)掌握篡改交易数据这个业务逻辑漏洞的测试方法。

  • 相关阅读:
    电子协会 C语言 1级 29 、 对齐输出
    使用Visual Studio Code 进行Python编程(三)
    计算机组成原理之计算机系统概论、计算机的发展史、系统总线,三章开篇讲
    npm ERR! While resolving: ruoyi@3.8.5npm ERR! Found: webpack@5.89.0
    CF1165F2(二分答案)
    Kibana中的Dev Tools常用语法
    小米笔试真题一
    python11 序列的相关操作
    二分算法(蓝桥杯 C++ 题目 代码 注解)
    华硕灵耀笔记本电脑双雷电3的USB TYPE-C的输出只支持5V 3A
  • 原文地址:https://blog.csdn.net/m0_64378913/article/details/125450043