浅析某城商行手机银行水平授权漏洞问题

news/2024/4/30 19:53:05/文章来源:https://blog.csdn.net/wx17343624830/article/details/127281237

-问题现象描述

据报道,某黑客通过软件抓包、PS身份证等非法手段,在某城商行手机银行APP内使用虚假身份信息注册银行Ⅱ、Ⅲ类账户。

其操作方法具体来说,是在注册账户过程中,先输入本人身份信息,待进行人脸识别步骤时,利用软件抓包技术将银行系统下发的人脸识别身份认证数据包进行拦截并保存。

而后,在输入开卡密码步骤,将APP返回到第一步(上传身份证照片步骤),输入伪造的身份信息,并再次进入到人脸识别的身份验证步骤,此时,再上传此前拦截下来的包含其本人的身份信息数据包,使系统误以为要比对其本人的身份信息,然后用本人人脸通过银行系统人脸识别比对,使得成功利用虚假身份信息注册到银行账户。

通过这种操作,成功注册银行Ⅱ类账户76个,然后将包括身份证号、银行卡号、绑定的手机号在内的账户信息打包卖给其他人,共获利22010元。也导致此城商行从2019年1月18日至今一直关闭手机银行APP软件中Ⅱ、Ⅲ类账户开户链接功能。

-问题原因分析

水平越权缺陷漏洞是Web应用常见的业务逻辑漏洞之一。它的形成原因是由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定。

攻击者使用一个合法账户,即可对存在越权缺陷漏洞的其他账户数据进行非法的操作,例如查询、插入、删除、修改等常规数据库命令。用户名或者用户ID是Web程序用来判断对哪个账户的数据进行操作的依据,这个参数如果通过客户端来提交,并且Web应用未对该参数做检查校验的情况下,通过修改请求数据中的相应字段则实现越权数据操作。

服务器端系统仅仅对该关键字段进行匹配,并没有验证该关键字段是否属于发起请求的账户,此项安全策略的缺陷就是越权数据操作漏洞的产生的原因。针对该漏洞的攻击者修改请求中的某些关键字段后提交数据,就可以对任意用户的数据进行操作。

通常在实际的Web应用中,不一定是用户名或者用户ID作为数据操作的判断字段,还有可能是其他一些字段。无论是什么字段,存在越权数据操作漏洞的Web应用都没有对它们的账户归属进行判断,没有确认发起请求的账户是否具有操作该数据的权限就允许了数据库去执行相应命令。

-测试手段

在越权漏洞检测方法中,测试人员使用两个以上用户账号,比如使用两个浏览器分别登录两个账号,互相测试是否能对另一方的用户数据进行越权操作。测试人员需要对比testl账户和test2账户的身份识别参数,确保将testl账户的数据操作请求中所有身份识别参数修改为test2账户对应数值。

如果test2账户提交数据能够操作成功;则标记此为水平授权漏洞。

-系统优化方式建议

系统为了防止水平越权漏洞,建议防篡改设计,即客户端发起联机交易点击下一步预处理,服务端产生一个交易流水号,将流水号与交易信息(客户号、身份信息等)存入缓存服务器redis中,客户端提交时传入流水号及交易信息,服务端进行交易数据校验。如校验数据不一致,则判为数据被篡改,直接返回并提示客户。


资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走…

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask学习笔记(十二)-Flask-Migrate实现数据库迁移详解

一、定义flask-migrate是基于Alembic的一个封装,并集成到Flask中 所有的迁移操作其实都是Alembic做的,能跟踪模型的变化,并将变化映射到数据库中。二、Flask-Migrate安装pip install flask-migrate三、使用Flask-Migrate步骤  实例展示: 目录结构:  flask_SQLalchemy:. …

MindSpore体验--在Windows10中源码安装

MindSpore体验--在Windows10中源码安装(反面教材) 一直以来安装包都是直接pip intall,发现安装MindSpore的操作流程中教学了源码编译安装,借此学习一下使用源码安装。 环境创建 为了方便管理环境,此处我新创建了一个…

多测师肖sir_高级讲师_第2个月第27讲解jmeter性能测试jmeter性能实战

jmeter性能实战 一、单接口性能测试 1、先建接口cms 登录接口 2、在监听器中添加聚合报告 3、设置线程组 (1)线程组:一个线程组中有若干个请求 (2)线程 :一个虚拟用户就是一个线程 (3&#…

webpack的一些常用打包配置

1.webpack 是什么? webpack 是一个模块化打包工具 2.模块是什么? 模块我理解就是 import xx 后面导入的文件就是一个模块 它可以是js css 图片 等等 3,webpack的配置文件的作用? 就是根据需求自定义配置webpack webpack默认只能打…

轻轻松松搞定分布式Token校验

文章目录前言token存储Token 存储实体login 业务代码枚举类修改存储效果客户端存储token验证前端提交后端校验自定义注解切面处理使用总结前言 没想到前天小水了一篇博文,竟然就火了?!!既然如此,那我再来一篇&#xf…

第7章 单行函数

1.函数的理解 *函数可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在SQL中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。 …

微信小程序|基于小程序实现打卡功能

文章目录一、文章前言二、开发流程及准备三、开发步骤一、文章前言 此文主要在小程序内实现打卡功能,可根据用户位置与公司设定的打卡范围实时判断打卡场景。 二、开发流程及准备 2.1、注册微信公众平台账号。 2.2、准备腾讯地图用户Key。 三、开发步骤 3.1、访问…

【面试题常考!!!】JZ39 数组中出现次数超过一半的数字【五种方法解决】

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 字体风格: 红色文字表示:重难点 蓝色文字表示:思路以…

神经网络模型数据处理,神经网络模型参数辨识

1、有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) 、递归神经网络(RNN)、深信度网络(DBN) 、深度自动编码器(AutoEncoder) 和生成对抗网络(GAN) 等。 递归神经网络实际.上包含了两种神经网络。一种是循环神经网络(Recurrent Neu…

STM32F4单片机读取AT24c02

​STM32F4是由ST(意法半导体)开发的一种高性能微控制器系列。其采用了90nm的NVM工艺和ART技术(自适应实时存储加速器,Adaptive Real-Time MemoryAccelerator™) AT24C02是Atmel公司出品的一个2K位串行CMOS E2PROM&…

【k8s】五、Pod生命周期(一)

目录 前言 Pod生命周期 Pod 相位 状态值 挂起(Pending) 运行中(Running) 成功(Succeeded) 失败(Failed) 未知(Unknown) Init Containers Init Cont…

pc端引擎颠覆电脑兼容性

张小龙曾在讲座上阐述小程序理念的精髓,小程序承载着张小龙及微信团队对未来程序形态的一种见解,总结为五个字:所见即所得。原文如下: 它是一种真正的所见即所得的形态,我说的所见即所得不同于在PC时代,我…

组合模式+桥接模式

目录 组合模式 定义: 业务实现例子: 桥接模式 JDBC中的桥接模式 组合模式 定义: 将对象组合通过树形结构进行展示,使得用户——>不管对单个对象or组合对象的使用具有一致性 可以理解为部分-整体模式——>简单来说就…

深度学习环境搭建

(1) 安装 Anaconda :建立 Python 应用环境 安装成功界面如下:(2) Visual Studio Code: 建立代码编辑环境 1.安装Python扩展2.选择合适的Python解释器 3.安装下列应用扩展:codeRunner : 快速运行程序 Jupyter : 交互式运行程序 Pylance : 高效代码提示 安装完成如图所示:4.创…

Linux基础组件之muduo日志库分析

muduo日志库分析异步日志机制双缓存机制前台日志写入栈后台日志(落盘)写入栈使用示例总结后言异步日志机制 #mermaid-svg-nrIugWYiOaAGFTWH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nrIugWYiOaAGFTWH .error-…

如何做架构规划

文章目录架构师的职责WhyWhatHow架构活动生命周期环境搭建目标确认可行性探索架构规划统一语义需求确认任务边界划分确认规划完整性项目启动阶段性价值交付复盘经历过的典型案例参考架构师的职责 Why 互联网架构活动的挑战较多,如: 反射式的研发行为。…

Scratch软件编程等级考试四级——20200913

Scratch软件编程等级考试四级——20200913理论单选题判断题实操奇偶之和创意画图数字之和用逗号分隔列表数字反转理论 单选题 1、执行下面程序,输入4和7后,角色说出的内容是?() A、4,7 B、7,7 C、7,4 D、…

为什么会发生云中断?如何防范?

IT 越依赖云服务,用户就越有可能因云中断而遭受停机和收入损失。由于云中断事件的发生,超过 60% 的使用公共云的组织在 2022 年报告了损失,因此云中断并不是公司不太可能面临的异常事件。 但是中断是否足以成为永远离开云的理由?还是应该坚持…

《安富莱嵌入式周报》第286期:8bit浮点数规范,VxWorks火星探测器故障原因修复,Matter V1.0智能家居规范,Wireshark 4.0发布

往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 目录 视频版: 1、SIA全球半导体行业协会统计显示全球芯片市场增长放缓,中国市场下跌10% …

程序员如何高效准备简历和面试03:诊断:简历为什么被忽视?

你好,欢迎学习课时3,我是你的职场导师吴文娟。 这节课主要为后面教你写简历做个铺垫,学习内容只有2个字:挑错。一个大家比较喜欢的事。我们来敲黑板看一些反面典型,案例都是我截取之前诊断过的简历,讲一讲为…