业务逻辑基础与实操

news2024/12/26 11:20:37

文章目录

  • 一、定义
  • 二、业务逻辑的挖掘
    • 1.常见业务流程
      • 电信网厅业务
      • 火车票订购业务流程
      • 网购业务流程
  • 三、挖掘关键点
    • 1.验证码突破
    • 2.业务授权安全
      • a.未授权访问
      • b.越权访问
        • i)平行越权(水平越权是指相同权限的不同用户可以互相访问)
        • ii) 垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)
      • c.案例
        • ① 平行越权-订单遍历
        • ② 保单合同遍历下载
        • ③ 遍历获取开票信息
        • ④ 遍历获取观影记录
        • ⑤ 平行越权测试方法
        • ⑥ 后台垂直越权
    • 3.业务流程乱序
      • a.支付乱序
      • b.修改付款密码乱序
      • c.充值乱序
    • 4.业务接口调用
      • a.重放攻击
      • b.短信轰炸
      • c.无线刷积分
      • d.投票活动刷票
    • 5.时效绕过测试
    • 6.身份认证安全
    • 7.业务一致性安全
      • 抓包修改手机号码
      • 订单id篡改
      • 商品编号篡改
    • 8.业务数据篡改
      • 1.金额数据篡改
      • 2.商品数据篡改
      • 3.最大数限制突破
    • 9.用户输入合规性
    • 10.密码找回漏洞

一、定义

业务逻辑,是只用代码实现的真实业务的规则映射
业务逻辑漏洞,开发者只考虑了常规的操作流程,即“当在A情况下,就会出现B,此时执行C即可”,但是却没有考虑当用户执行了意料之外的X时会发生什么,使用工具无法完全替代人工测试和发现逻辑漏洞

二、业务逻辑的挖掘

业务逻辑的发现,简单而复杂
简单的是只用burp稍微修改几个数据就行,复杂的是需要熟悉业务流程,绕过真实用户身份或正常业务流程达到预期的目的

1.常见业务流程

电信网厅业务

在这里插入图片描述

火车票订购业务流程

在这里插入图片描述

网购业务流程

1、选择购物平台
2、注册账户(开通会员、修改密码)
3、搜索商品
4、购买商品
5、确认收货
6、给卖家评分
修改密码
要知道原密码才能修改新密码,或者说忘记密码,也得有对应的验证手机号,收取验证码

三、挖掘关键点

1.验证码突破

2.业务授权安全

a.未授权访问

非授权访问是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到的页面或文本信息
可以通过换浏览器测试未授权(清除cookie)

b.越权访问

越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定

i)平行越权(水平越权是指相同权限的不同用户可以互相访问)

ii) 垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)

挖掘思路
可以通过修改用户id、用户编号、遍历编号操作测试越权访问
水平越权:如果在访问网站数据包中有传输用户的编号、用户组编号或类型综号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。
垂直越权:添加高权限用户

c.案例

① 平行越权-订单遍历

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

② 保单合同遍历下载

在这里插入图片描述

③ 遍历获取开票信息

在这里插入图片描述

④ 遍历获取观影记录

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

⑤ 平行越权测试方法

可以通过建立两个账号测试平行越权账号A下订单,生成订单
在这里插入图片描述

然后点击取消订单,抓包,记录下账号A的订单ID
在这里插入图片描述

注册账号B adminmang2
在这里插入图片描述

账号B点击取消订单,抓包
在这里插入图片描述

B放包,并且查看回显
在这里插入图片描述

成功用B账户删除A账号订单
在这里插入图片描述

⑥ 后台垂直越权

在这里插入图片描述

重置管理员密码
在这里插入图片描述在这里插入图片描述

3.业务流程乱序

a.支付乱序

访问注册页面,注册账户之后充值提交并抓取数据包,填写任意金额然后并抓包,获取订单
号,利用订单号构造充值链接并访问,看是否能充值成功
在这里插入图片描述在这里插入图片描述在这里插入图片描述

b.修改付款密码乱序

绕过旧密码和短信验证码修改付款密码 user=123
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

c.充值乱序

一个充值的功能,在拦截包的过程中发现充值成功后会有一个充值成功的连接,例
如是 xxx.com/index.php?controller=site&action=payok&out_trade_no=aaaa,其中
aaa 是充值订单号。接下来注册一个新账号进行充值,在支付产生订单时复制其订单号然后取消支付,把订单号贴到充值成功后的连接中充值成功,则存在乱序问题。

4.业务接口调用

重放攻击(恶意注册\短信炸弹\无限刷积分/投票)

a.重放攻击

在短信、邮件调用业务或生成业务数据环节中(例:短信验证码,邮件验证码,订单生成,评论提交,签到,投票等),对其业务环节进行调用(重放)测试。如果业务经过调用(重放)后被多次生成有效的业务或数据结果。

b.短信轰炸

在测试的过程中,我们发现众多的系统仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大量发送恶意短信。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

c.无线刷积分

比如每天签到送5个积分,如果签到接口未做限制,无限重放签到接口,就能实现无限刷积分。
在这里插入图片描述

d.投票活动刷票

投票接口未做限制,或仅仅在前端JS做限制,可无限重放投票接口,给指定用户刷票。
不过目前大部分投票系统都有做限制,比如同一个IP每天只能投三次票,可尝试用X-
Forwarded-For:127.0.0.1来绕过IP限制。
在这里插入图片描述

5.时效绕过测试

针对某些带有时间限制的业务,修改其时间限制范围,例如在某项时间限制范围内
查询的业务,修改含有时间明文字段的请求并提交,查看能否绕过时间限制完成业
务流程。例如通过更改查询手机网厅的受理记录的month范围,可以突破默认只能
查询六个月的记录。

6.身份认证安全

7.业务一致性安全

抓包修改手机号码

抓包修改手机号码参数为其他号码尝试,例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,查看是否能查询其他人的业务。
在这里插入图片描述

抓包修改用户邮箱参数为其他用户的邮箱。

订单id篡改

查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息。
在这里插入图片描述在这里插入图片描述

商品编号篡改

如积分兑换处,
100个积分只能换商品编号为001,1000个积分只能换商品编号005,
在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品。

8.业务数据篡改

1.金额数据篡改

抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段,
修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程。
经常见到的参数大多为rmb、value、amount、cash、fee、money等
关于支付的逻辑漏洞这一块还有很多种思路:
比如:
相同价格增加订单数量,相同订单数量减少产品价格,订单价格设定为负数等等。

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

2.商品数据篡改

抓包修改商品数量等字段,将请求中的商品数量修改成任意数额,如负数并提交,
查看能否以修改后的数量完成业务流程。
在这里插入图片描述

3.最大数限制突破

很多商品限制用户购买数量时,服务器仅在页面通过js脚本限制,未在服务器端校验用户提交的数量,通过抓包修改商品最大数限制,将请求中的商品数量改为大于最大数限制的值,
查看能否以修改后的数量完成业务流程。

9.用户输入合规性

10.密码找回漏洞

二、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/853410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter:屏幕适配

flutter_screenutil flutter_screenutil是一个用于在Flutter应用程序中进行屏幕适配的工具包。它旨在帮助开发者在不同屏幕尺寸和密度的设备上创建响应式的UI布局。 flutter_screenutil提供了一些用于处理尺寸和间距的方法,使得开发者可以根据设备的屏幕尺寸和密度…

《剑指offer》(6)其他算法

先计算下三角&#xff0c;再遍历一次计算上三角。 class Solution: def multiply(self , A: List[int]) -> List[int]: #长度判断 n len(A) if n < 1: return [] B [1]*n #计算乘矩阵的下三角&#xff0c;B中的每一个数都是A的前一个数和B的前一个数相乘 for i in ran…

“可一学院”区块链学习平台正式启动,助力BSV技术普及与传播

2023年8月8日&#xff0c;上海可一澈科技有限公司&#xff08;以下简称“可一科技”&#xff09; 正式发布区块链学习平台“可一学院”。“可一学院” 立足于BSV区块链技术本源&#xff0c;汇集了多层次的专业课程和学习资源&#xff0c;致力于打造一个适合各类人群使用的一站式…

MobaXterm 中文乱码, 及pojie

中文解决方法&#xff1a; 把“连字”去掉&#xff01; MobaXterm网页&#xff0c;可以生成一个授权文件Custom.mxtpro。放在安装目录就可以了 MobaXterm Keygen (husbin.top)http://b70.husbin.top:5000/

VS+Qt+C++旅游景区地图导航源码实例

程序示例精选 VSQtC旅游景区地图导航 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQtC旅游景区地图导航>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。…

药库管理指南:除了药物质量,这个技能很关键

随着医疗技术的不断进步&#xff0c;药品的质量要求也日益严格&#xff0c;药物的稳定性、疗效以及避免细菌滋生等方面都直接受到温湿度变化的影响。 药品质量和安全是医疗行业的首要任务之一&#xff0c;药库温湿度监控在此过程中发挥着关键作用。通过科学合理地实施温湿度监控…

Java 线程的生命周期和状态(实践加深理解)

一、常规回答&#xff08;八股文&#xff09; 线程的生命周期一共分为有6个状态&#xff0c;在某个时刻中&#xff0c;一个线程只会处在6个状态中的其中一种。 第1&#xff1a;初始状态&#xff08;NEW&#xff09; 当前的线程已经被创建了出来&#xff0c;但是还没有通过调用…

宝塔如何部署springboot前后端分离项目

一&#xff1a;准备工作 1.阿里云购买一个centos的服务器 2.环境准备&#xff1a; 2.1 jdk1.8 2.2 nginx 2.3 mysql 2.4 redis 2.5tomcat 这里根据网上的教学很好安装如果是宝塔的话除了redis都可以一键安装 软件商城安装这三个即可 数据库也是可以直接可视化创建并且导入sq…

计蒜客T1115——字符串判等

水题不解释&#xff0c;考研复习压力偶尔写一道换换心情还不错~ 这里有一个比较有趣的知识点&#xff0c;对于同时输入多个字符串时还要允许空格的输入&#xff0c;那么普通的cin函数就不能满足要求了&#xff0c;这里采用getline函数解决&#xff0c;如下&#xff1a; string …

PS 2023 安装选项页面显示不全

文章目录 PS 2023 安装选项页面显示不全解决办法 PS 2023 安装选项页面显示不全 解决办法 按住Tab键&#xff0c;点击该安装选项页面即可&#xff0c;如下如所示&#xff1a;

【Django】招聘面试管理01 创建项目运行项目

文章目录 前言一、创建项目二、运行项目三、访问后台管理页面四、配置项总结 前言 跟着视频学一学&#xff0c;记录一下。 一、创建项目 照着步骤创建虚拟环境&#xff0c;安装Django等依赖包&#xff0c;创建项目&#xff1a;【Django学习】01 项目创建、结构及命令 > d…

【Linux】带你了解高级IO

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《学会Linux》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录 &#x1f449;IO的基本…

【Rust】Rust学习 第七章使用包、Crate和模块管理不断增长的项目

目前为止&#xff0c;我们编写的程序都在一个文件的一个模块中。伴随着项目的增长&#xff0c;你可以通过将代码分解为多个模块和多个文件来组织代码。一个包可以包含多个二进制 crate 项和一个可选的 crate 库。伴随着包的增长&#xff0c;你可以将包中的部分代码提取出来&…

ArcGIS Pro实践技术应用暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用

GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来&#xff0c;达到对地理和属性信息的综合管理。GIS的…

动力节点新版Docker实用教程,从入门到高阶一套搞定

Docker是一种轻量级的容器化平台&#xff0c;它可以大大简化应用程序的在不同环境中的部署、管理与扩展。 学习Docker可以让你更好地了解和应用容器化技术&#xff0c;实现软件运环境的快速部署和管理。 如何系统全面掌握Docker&#xff1f; 推荐一套天花板级Docker教程&#x…

前端页面--视觉差效果

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><link rel"stylesheet" href"https://un…

Explorable Tone Mapping Operators

Abstract 色调映射在高动态范围(HDR)成像中起着至关重要的作用。 它的目的是在有限动态范围的介质中保存HDR图像的视觉信息。 虽然许多工作已经提出从HDR图像中提供色调映射结果&#xff0c;但大多数只能以一种预先设计的方式进行色调映射。 然而&#xff0c;声调映射质量的主…

lc1.两数之和

暴力解法&#xff1a;两个for循环&#xff0c;寻找和为target的两个数的索引 时间复杂度&#xff1a;O(n2) 空间复杂度&#xff1a;O(1) 哈希表&#xff1a;遍历数组&#xff0c;将nums数组的数和索引分别存储在map的key和value中&#xff0c;一边遍历&#xff0c;一边寻找是…

多语言多用户购物网站--海外仓进出口贸易平台开发

搭建一个多语言多用户购物网站需要具备一定的技术和资源&#xff0c;下面是一个大致的步骤&#xff1a; 1.确定需求&#xff1a;首先确定购物网站的功能需求&#xff0c;包括商品展示、购物车、订单管理、支付方式、物流管理等。同时还需要考虑到海外仓进出口贸易的特点&#…

如何使用Pycharm 快速搭建 Django 项目 (分享详细图文教程)

1. 准备工作 在开始创建Django项目之前&#xff0c;需要先确保已经安装了Python和Pycharm。并且python中已经安装好了Django依赖。 1安装python&#xff08;这里我安装使用的是python3.11.4稳定版本&#xff09; 官网下载太慢了这里直接贴网盘下载连接了&#xff0c;一起贴出py…