文章总结: 本文记录了一次授权渗透测试,通过SpringBoot未授权访问获取heapdump,利用泄露凭证接管系统与用户会话。在APP转账功能中利用并发竞争条件漏洞实现金额倍增,并在线下物联网设备中利用预付与任务失败退款的逻辑缺陷实现全额退款。文章展示了全链路漏洞挖掘及逻辑绕过技巧。 综合评分: 88 文章分类: 渗透测试,实战经验,应用安全,IoT安全,移动安全
线上app并发造钱 线下设备慈善退款
原创
糖心饿不鼠
糖心安全
2025年6月28日 00:33 贵州
郑重声明
本公众号文章源自作者日常积累及授权转载,欢迎各位师傅转载,但是请带上原文链接
文中内容仅限学习交流,严禁用于商业及非法用途,涉及网络安全相关未经授权不得测试,违规使用后果自负,与作者及本号无关 。
QQ交流群:718249879
背景介绍
甲方授权后简单测绘一下
寄了,又是没啥web资产
去风鸟查查知识产权:对应的商标信息,pc软件,小程序,app
有不少东西,所以我们先从app看起
Tips:平时打其他项目也可以来这里里面找web
测试过程
这次测试是一路顺风,开发赏大鸡腿
复制app名字到应用商店搜索
发现果然有货
这里就不教app抓包怎么配置了哈,师傅们自己去找对应的文章
打开app,观察流量包
第一个包就是/api/xxx/app/xxx/list
看到/api,顺手拼接路径/actuator
看是否存在一个spring boot的一个未授权
发现存在大量接口,挑一个试试
当然是先看我们的heapdump
拼接路径下载
利用JDumpSpider探测下敏感信息
发现存在不少好东西
虽然nacos在内网,但是aksk也是送的嘛
一直到这里我都怀疑是蜜罐,因为顺的出奇,一看就是没有师傅打点过
尝试一下,也是出乎意料的接管了
顺手打开了一个,确认存在敏感信息后,也是没有再翻了
渗透继续,算是捡了个洞
继续翻了翻heapdump文件的泄露信息
发现存在一处Cookie
包含一个令牌
因为我登录过两次,发现我的令牌是会变化的,初步推断令牌是有时效性的,所以就没打算测试他
但是。。。。顺手的事
再次尝试登录,将泄露的令牌替换掉返回的令牌
然后。。。。登录成功?
这个位置比较敏感,不截UI的图片,望师傅谅解
当时是有点懵逼的,简单看了眼,发现是天才开发
不主动退出,令牌就不会过期,人才啊
泄露了不少令牌,其实这个位置有个四位验证码爆破
同样可以任意用户登录
但是不一样的点是,你没有手机号,不知道哪个账户里面有钱
利用泄露了的令牌登录后点击”我的”
卧槽,巨款
还剩了15块
有钱测试了,自然就是要报复性消费
(师傅不要学,尽量不要动别人的账号,这里我就测试几分钱的功能点,测试结束也是补上了)
翻了一圈,找到个没钱测试不了的功能点
“转让给他人”
余额是可以转让的?
那我就要全部偷走了
搜索自己的手机号,转账一分钱
success,不出意外的成功了
用另外一个手机上自己账号看了下
¥0 -> ¥0.01
看看他的
¥14.98 -> ¥14.97
然后转回去,确认一下回转功能点是否正常
OK,熟悉的¥14.98和¥0
继续测试
这里简单的讲一下条件竞争漏洞,也就是师傅们常见的并发漏洞
很多师傅对于该漏洞的理解是:
多个任务下发,来不及处理,限制还未抵达战场,导致任务全部一窝蜂闯入
也就是乘老师在抓一个人迟到,其他人全部偷偷冲到教室里面
典型的例子就是并发签到,并发领取任务奖励
这样对于漏洞理解是不完善的
因为狼是看到了所有的兔子的,只不过来不及处理,时候会一一清算
而还有一种情况
就是乘老师在抓一个人迟到,其他人全部偷偷溜到教室里面
很明显的差异,一个是闯,一个是溜
简单来说,就是一次下发了七个任务,但是被当成一个执行了,真实情况是执行了七次
回到案例,我用泄露的账号,向我转入0.01,但是将发包次数设置为7
7次发宝全部成功,观察金额变化
¥14.98 -> ¥14.97
¥0 -> ¥0.07
这就很奇妙了
扣款一分,到账七分
凭空生成6分
同理互相转,四次以后,金额来到了一千九
而这只是利用做开始的15元凭空衍生的
写好报告进行下一步测试
钱是不可以提现的,但是可以用来干什么呢?
在主页发现有对应的介绍,可以扫描设备二维码进行任务的下发
美团搜索附近不到一公里就存在一个设备地点
背好包,开始线下单杀设备
摸索一番设备,发现就是简单的物联网,被usb锁住了
有的师傅就有想法了,爆开就行
说心里话,但凡是这种锁,我都把万能钥匙放包里面了,直接秒开
结果,是一个微型的指纹锁,全是灰
无法了,尝试从他的软件上入手
单击显示屏
?????
无法控制,只能扫码下发任务
啊,这。。。。
我不是白来了嘛
瞧我这小暴脾气,放弃是不可能的,总要试试,扫码下发任务
来个1块钱的
20秒后任务结束,app上收到任务已经成功完成
那可太棒了,我啥也看不了,看着它捣鼓半天
“开始埋怨,二比设备,瞎跑一趟,只能扫个码,啥也不行,呸!
想把你电给扯了”
等等!
扯电?
抬头张望一下,这是自助设备,无人值守(正经测试,正经设备,不要瞎想,有授权的)
顺着电源线一直走
找到个插座
扯电 == 关机
打开手机看一眼之前的提示:
任务已经成功完成
那岂不是有”当前任务执行失败”?
失败是不是要退钱啊
关机是不是失败了
扯电是不是关机了
逻辑链出来了:扯电–>关机–>任务中断–>任务失败–>退钱
扯电==退钱!!!!
咳咳,考虑到设备的精密性质,害怕设备损坏
继续观察设备尝试找突破口,发现设备屏幕上存在一个剩余任务实现次数
和甲方报备取得同一后,开始测试
首先分析逻辑,并不是扫描后再付款的
而是先付款,再去扫描设备下发对应任务
直接预付款设备剩余次数n+1的金额
任务次数 = 可完成次数 + 1
所以是无法完成所有任务的
扫描设备,下发任务,打开王者,找好位置,戴好耳机
开始峡谷对决
一个多小时,任务接近尾声了
来到屏幕前
dung!
“剩余xxx不足”
打开app,”当前任务执行失败”,支付金额自动回退
任务只差一次,但是回退了所有的费用
测试告一段落,出来了半天也是累了,找地方潇洒
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:糖心安全 糖心饿不鼠《线上app并发造钱 线下设备慈善退款》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论