当前位置: 首页 > news >正文

逻辑漏洞——业务逻辑问题

一、业务逻辑的相关概念

 

 

常见的业务逻辑问题:支付逻辑、其他业务逻辑

二、支付逻辑漏洞

 

 三、其他业务逻辑漏洞

 

 

 四、实例——支付逻辑之修改商品单价

1、打开浏览器,访问http://ip/webug/pentest/test/2/

2、用户名输入为:“tom”,密码输入为“123456”提交,登陆成功

3、启动Burp Suite抓包工具,并配置参数和浏览器代理

4、在对应的商品下选择购买的数量

5、点击“购买”按钮,提交数据,Bp成功抓取数据包,将数据包中的价格bill1和bill2修改为0

 

6、点击“Forward”,转发数据包,切换到浏览器,实现0元购买

支付流程中存在的业务逻辑层面的漏洞。在系统的支付流程中由于服务器端没有对客户端请求数据中单价做校验,造成“0元购”,导致产生支付逻辑漏洞。


五、支付逻辑之修改商品数量

原理:

在系统的支付流程中由于服务器端没有对客户端请求数据中金额、单价、数量等敏感信息做校验,造成商家的经济损失,导致产生支付逻辑漏洞。

1、打开浏览器,访问http://ip/webug/pentest/test/2/

 

2、用户名输入为:“tom”,密码输入为“123456”提交,登陆成功

 

3、启动Burp Suite抓包工具,并设置参数和浏览器代理

 

4、在对应的商品下选择购买的数量

 

 

5、点击“购买”按钮,提交数据,Bp成功抓取数据包,将数据包中的数量num1修改为负


6、点击“Forward”,转发数据包,切换到浏览器,实现0元购买

 


六、 支付漏洞之修改商品编号

原理:

支付漏洞一直以来就是高风险漏洞,对用户和企业的危害都很大。网上购物的整体流程为:搜索、挑选商品 -> 下单购买 -> 付款 -> 发货。在系统的支付流程中,由于开发者在编写购物程序时,对客户端请求数据中金额、单价、数量、商品编号等敏感信息的逻辑处理不当,攻击者利用目标网站本身的逻辑问题,造成商家的经济损失,导致产生支付逻辑漏洞。

1、打开浏览器,访问http://ip/index.php

2、点击“登录”,跳转到登录界面。在购物之前先登录购物账号,用户名为“test”,密码为“123456”,登陆即可(也可以自己注册账号)

 

3、在分类侧点击“手机”,跳转到手机一类的商品,任意选择一款手机点击,查看该商品的id,比如苹果手机,商品id是54

 

4、回到首页,点击下方的苹果商品,可以看到该商品的id是42

5、启动Burp Suite抓包工具,配置参数和浏览器代理

6、点击“立即购买”,开始抓包,将数据包中该商品的“id”修改为手机的商品id【54】

7、点击“Forward”,转发数据包。切换到浏览器,关闭代理。可以看到订单信息中,商品名称是手机,单价是苹果水果的单价。注意:在挖掘支付逻辑漏洞的时候一般支付方式为在线支付

8、点击“提交订单”,可以看到支付的金额已经是水果苹果的价格

 

9、点击左侧的“订单管理”,成功可以看到该订单

支付流程中存在的业务逻辑层面的漏洞。在系统的支付流程中由于服务器端没有对客户端请求数据中商品编号做校验,造成低价购买高价产品,导致产生支付逻辑漏洞。


这篇文章就写到这里了!

相关文章:

  • C++-vector的代码实现(超详细)
  • Linux之Platform设备驱动
  • Linux 入门篇
  • Linux驱动开发:字符设备驱动开发实战
  • 一、k8s的安装部署
  • VB.net:VB.net编程语言学习之ADO.net基本名称空间与类的简介、案例应用(实现与SQL数据库编程案例)之详细攻略
  • [iOS开发]事件处理与响应者链
  • 【CSDN线上竞赛第六期竞赛 】参赛介绍
  • 各种场景下的Git管理方法
  • 逻辑漏洞——权限控制问题
  • golang常用库之-配置文件解析 spf13/viper包 | 解析加载配置
  • Rust(7):结构体类型
  • 通信原理学习笔记6-3:数字解调——判决和误码率推导
  • Mybatis快速上手2——通用的CRUD操作
  • 基于Oracle数据库高校学生宿舍管理系统
  • android图片蒙层
  • css属性的继承、初识值、计算值、当前值、应用值
  • Django 博客开发教程 8 - 博客文章详情页
  • ECS应用管理最佳实践
  • es6--symbol
  • JavaScript 基本功--面试宝典
  • JDK 6和JDK 7中的substring()方法
  • JS题目及答案整理
  • Laravel核心解读--Facades
  • mysql_config not found
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • SpringBoot几种定时任务的实现方式
  • 阿里云前端周刊 - 第 26 期
  • 从零开始在ubuntu上搭建node开发环境
  • 工程优化暨babel升级小记
  • 欢迎参加第二届中国游戏开发者大会
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 聊聊hikari连接池的leakDetectionThreshold
  • 漂亮刷新控件-iOS
  • 让你的分享飞起来——极光推出社会化分享组件
  • 微服务核心架构梳理
  • 详解移动APP与web APP的区别
  • 小试R空间处理新库sf
  • 阿里云重庆大学大数据训练营落地分享
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​MySQL主从复制一致性检测
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (笔试题)分解质因式
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)springcloud实战之config配置中心
  • (附源码)php投票系统 毕业设计 121500
  • (规划)24届春招和25届暑假实习路线准备规划
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)iOS字体
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .Net CF下精确的计时器