某积分商城任意金额支付漏洞分析利用及思考

扫码领取网安教程

在这里插入图片描述

大部分开发人员在开发时都会有一种思维惯性,传参处处有校验==处处都可信,但这个等式并非恒成立

前言

这个漏洞是在工作中例行渗透测试的时候发现的,虽然前端做了防篡改措施,但这是很经典的没有后端校验导致的任意价格支付。
漏洞已在内部提交并确认修复。

漏洞描述

兑换积分商品时数据包会携带extendKey ,在分析js代码时发现,其值是商品id、数量、商品价格、可用积分这几项的拼接值,再进行加密得到的。本意是使用extendKey实现数据包关键内容二次校验防篡改,但extendKey的加解密方式以及key均写在js代码中,这就使得extendKey的篡改变得可行。在兑换积分商品时经解密发现其值会携带商品价格信息,篡改后实现任意使用任意积分对商品的兑换。

漏洞分析利用

0x01 加解密说明

在js代码中找到extendKey的加密方式,可以看到用的是aes-128-ecb加密,密钥n也明文写在js代码中。

加密流程:先aes-128-ecb再base64编码。
解密流程:先base64解码再aes-128-ecb解密
对extendKey的值做解密验证

解密发现,原始字符串是将商品id和数量使用“|”做了拼接

0x02 利用过程

账户中原始可用的积分

选择一个所需积分大于账户已有积分的商品,点击立即购买,拦截响应数据包


解密extendKey发现是 两个商品id+数量+商品积分价格 的组合字符串

修改字符串中最后一个值及价格为10,并重新生成extendKey

接着修改返回包中tradePointAmount的值为10,并填入篡改后的extendKey值

然后释放响应包前端出现提交订单页面,虽然前端显示的还是29900的价格,这是因为控制前端显示价格值的不是tradePointAmount这个键值

点击提交订单可以看到交易价格已经是10积分,从后续的响应包也可以确认这一点

紧接着释放响应包,确认前端10积分的订单已经生成成功等待支付

最后支付订单





分析总结

这个漏洞就是经典的未对金额进行正确的后端校验,先从开发者的视角分析一下开发者的思路:

  1. 点击立即购买,请求带上商品id以及数量,向后端获得价格等信息。

  2. 后端服务查询得到商品价格,返回前端,前端接收并校验为提交订单做准备。

  3. 提交订单,前端传递“可靠”的价格值去请求订单处理服务,生成了支付订单。

第1步,前端认为应该先向后端询问商品价格,第2步完成时前端开发者视角下认为金额是后端传递给前端的且对金额数量等值做了加密,只要前端进行解密、校验,便认为是“可靠”的,到第3步向支付系统请求生成订单时,后端支付系统开发在对接时得知有个extendKey值可以做校验,也就放心的进行了价格校验。虽然也对价格等关键参数值做了加密、校验,但忽略了AES是对称加密,而js也未作混淆之类的处理,算法密钥以明文的形式暴露给攻击者,篡改extendKey轻而易举。问题就出在支付订单生成服务未在订单生成前在后端向商品价格的数据库查询做二次校验,而只是校验了前端传的值。开发时觉得,传参处处有校验==处处都可信,这是一个思维惯性,但必须要注意避免。

ps:

至于为什么要在第2步就修改金额,是因为前端有个账户积分和商品价格比较的机制,积分不足不会有下一步订单提交生成,如果商品原本价格就低于已有积分,那么直接从第3步修改金额就可以

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

给大家分享我自己学习的一份全套的网络安全学习资料,希望对想学习 网络安全的小伙伴们有帮助!

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

【点击免费领取】CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。【点击领取视频教程】

在这里插入图片描述

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取技术文档】

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取书籍】

在这里插入图片描述

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

在这里插入图片描述

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

👋全套《黑客&网络安全入门&进阶学习资源包》👇👇👇

这份完整版的学习资料已经上传CSDN,也可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

img

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

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

相关文章

【CSAPP】-attacklab实验

目录 实验目的与要求 实验原理与内容 实验设备与软件环境 实验过程与结果(可贴图) 实验总结 实验目的与要求 1. 强化机器级表示、汇编语言、调试器和逆向工程等方面基础知识,并结合栈帧工作原理实现简单的栈溢出攻击,掌握其基…

sql注入问题批量处理

问题:SQL注入修改,历史代码全是${};无法修改的比如表名,列名,动态排序之类的不改,其他的都要修改完成 背景:新公司第一个任务就是SQL注入的修改,历史sql全部都是${},一个个调整不太合适只能批量…

ubuntu 安装说明

最近准备学习Linux,所以下载了最新的ubuntu server版本24.04,将安装步骤记录下来供参考。 1.安装 挂载光驱和iso文件,启动虚拟机。启动后,你会看到 GRUB 菜单上有两个选项: Try or Install Ubuntu Server 和 Test mem…

六西格玛培训公司:实战教学,让品质管理不再纸上谈兵!

在追求卓越与品质管理的征途上,六西格玛培训公司张驰咨询凭借其深厚的行业底蕴与前瞻性的战略眼光,成为了引领行业变革的重要力量。公司不仅深谙六西格玛精髓,更将这一先进的质量管理方法论转化为推动企业转型升级的强大动力,以“…

碳课堂|搞清楚碳足迹,只看这篇文章就够了

碳足迹管理是碳达峰碳中和的重要政策工具,2023年12月,国家发展改革委、工信部、国家市场监管总局、住房城乡建设部、交通运输部等部门联合印发《关于加快建立产品碳足迹管理体系的意见》,对产品碳足迹管理各项重点任务作出系统部署。 推动碳…

泛型 + 反射 + 注解 + 动态代理 + 设计模式 + Factory(BeanFactory,FactoryBean)

1.泛型 编译器可以对泛型参数进行检测&#xff0c;并且通过泛型参数可以指定传入的对象类型。比如 ArrayList<Person> persons new ArrayList<Person>() 这行代码就指明了该 ArrayList 对象只能传入 Person 对象&#xff0c;如果传入其他类型的对象就会报错。 原…

爬虫进阶:Selenium与Ajax的无缝集成

爬虫与Ajax的挑战 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分内容。这为用户带来了更好的体验&#xff0c;但同时也使得爬虫在抓取数据时面临以下挑战&#xff1a; 动态内容加载&#xff…

【基础算法】UE中实现轮播

本期作者&#xff1a;尼克 易知微3D引擎技术负责人 当前N 总数M 从0到M-1 从1到M 感谢阅读&#xff0c;以上内容均由易知微3D引擎团队原创设计&#xff0c;以及易知微版权所有&#xff0c;转载请注明出处&#xff0c;违者必究&#xff0c;谢谢您的合作。申请转载授权后台回复【…

C++基石:掌握高效编程的艺术

C 关于命名空间&#xff1a;namespace 上述文档详细介绍了C标准库&#xff08;Standard C Library&#xff09;的一些关键约定&#xff0c;这些约定不仅帮助开发者理解如何正确使用库中的功能&#xff0c;也明确了实现者在设计库时的灵活性和限制。下面是对文档中提到的几个要点…

基于Java中的SSM框架实现物流管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现物流管理系统演示 摘要 企业的发展离不开物流的运输&#xff0c;在一个大型的企业中&#xff0c;商品的生产和建设&#xff0c;推广只是前期的一些工作&#xff0c;在后期的商品销售和物流方面的建立&#xff0c;才能让一个企业得到大力的发展。 企业…

Mysql中间件和高可用

文章目录 一、MySQL中间件代理服务器MycatMycat应用场景Mycat部署 实现读写分离 二、MySQL高可用高可用解决方案MHA高可用实现MHA 一、MySQL中间件代理服务器 数据库主要分为两大类&#xff1a;关系型数据库与 NoSQL 数据库&#xff08;非关系型数据库&#xff09;。 数据库主…

MinIO:开源对象存储解决方案的领先者

MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统&#xff0c;致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释&#xff1a;MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适…

vue 模糊查询加个禁止属性

vue 模糊查询加个禁止属性 父组件通过属性传&#xff0c;是否禁止输入-------默认可以输入

Quantlab5.0:一切围绕可实盘策略驱动开发

原创文章第573篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 2024年上半年即将结束&#xff0c;开始准备星球下半年的工作。 目前设想的——Quantlab5.0&#xff0c;之所以升级一个大版本&#xff0c;与4.x有很大不同。 5.0专注策略开发&…

高效任务分配的常见7步法

高效的任务分配有助于优化资源配置&#xff0c;提升开发效率与质量&#xff0c;降低成本和项目风险&#xff0c;最终提高客户满意度。如果任务分配不合理&#xff0c;可能导致资源浪费&#xff0c;造成项目延期和成本超支&#xff0c;影响工作质量&#xff0c;增加项目风险。 因…

小超市进销存软件永久免费版,免费使用!

在快节奏的商业环境中&#xff0c;小超市的管理效率直接关系到经营成本和盈利空间&#xff0c;为了帮助广大中小超市业主解决进销存管理的难题&#xff0c;象过河软件推出小超市进销存软件永久免费版&#xff0c;可让超市管理者长期免费使用。 象过河开发的小超市进销存软件专为…

谷粒商城学习-07-虚拟机网络设置

文章目录 一&#xff0c;找到配置文件Vagrantfile二&#xff0c;查询虚拟机网卡地址1&#xff0c;查看虚拟机网络配置2&#xff0c;查看宿主机网络配置 三&#xff0c;修改配置文件下的IP配置四&#xff0c;重新启动虚拟机即可生效五&#xff0c;Vagrantfile 的作用1&#xff0…

渲染农场渲染真的很贵吗?如何正确使用云渲染农场?

作为渲染行业主流的技术服务“渲染农场"&#xff0c;一直都是备受大家关注&#xff0c;渲染农场最核心的在于充足的计算机算力&#xff0c;结合3D软件支持多台机器渲染的特点&#xff0c;租用渲染农场的机器帮助你快速的解决你的渲染项目。 虽然说渲染农场需要支付一定的…

【电子数据取证】LX-A603互联网取证系统

文章关键词&#xff1a;电子数据取证、网站取证、快速固证 LX-A603可以通过简单的操作步骤&#xff0c;实现在符合规范的情况下自动对网站进行快速镜像、截屏固定、屏幕录像、生成报告等功能。满足了对互联网网站取证的实战化需求&#xff0c;极大提升工作效率。 应用场景1&a…

打包 最新血液净化器制作技术和资料

网盘 https://pan.baidu.com/s/1fm3LF20dCvy4iSMQklHpug?pwd4je2 便携可穿戴可血液净化用器件及其制备方法和应用.pdf 基于贻贝仿生化学的血液净化材料及其制备方法.pdf 膜分离式一体化血液净化系统.pdf 血液净化器固定夹.pdf 血液净化膜及其制备方法和应用.pdf 评估血液净化…