freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Hack the box-Diogenes Rage攻克思路
2022-08-02 20:04:04
所属地 湖北省

前言

该靶机目前全球攻克人数为780人,国内暂无相关分析,国外内容只有几篇,且均以编写多进程脚本来实现条件竞争,多进程运行不稳定很难达到预期效果。该文使用burp进行漏洞利用,简单易懂。

信息收集

访问网站,查看页面基本信息

1659441006_62e90f6e32135a13bc287.png!small?1659441006899

查看源代码、检测页面内容、控制台、网络请求均无异常及突破。

该网站为自动售货机,将纸币移动至投币口处,可根据左侧物品的物价及代号,在右侧按键处按下代号,即可自动出货。

经以上逻辑共抓包3条请求

请求1:纸币投入时

请求2:按键购买商品时

1659441077_62e90fb5c5fd744403bd6.png!small

请求3:点击红色按钮,重置

1659441132_62e90fecc16228817547f.png!small?1659441133242

观察前后端交互逻辑,未能判断flag的获取方式。进行代码分析,以进一步攻克。

代码分析

/api/purchase

购买商品时,代码如下

1659441145_62e90ff9108a4f4146e57.png!small?1659441145540

1》当user==undefined时,注册用户信息,用户姓名、优惠劵金额为0等信息

1659441158_62e910061599d9cb15a27.png!small?1659441158594

2》当购买商品C8时,读取/app/flag文件并将文件内容展示响应包中。

优惠劵一次只能兑换一张,一张面值$1,可是C8商品$13.37,意味着需要兑换14张优惠劵。那么该如何绕过一次只能兑换一张限制?可使用条件竞争-并发兑换。接下来查看兑换优惠劵处代码,以进一步验证猜想。

/api/coupons/apply

兑换优惠劵处代码

1659441170_62e91012e005139c35e17.png!small?1659441171379

由上可见,先判断优惠劵是否存在,也就是是否被使用过。若未使用则兑换金币,将个人信息及金币更新到数据库中。此处若同一时间兑换同一张优惠劵,则可兑换多张金币到个人账户中,故存在条件竞争漏洞。


漏洞利用

获取个人session

1659441185_62e9102118fc3d5beca5d.png!small?1659441185566

使用session并发兑换优惠劵为金币,存入到个人账户中

1659441196_62e9102c8e21d7b3684b7.png!small?1659441197091

可见成功兑换19张优惠劵

使用金币并携带session去兑换商品

1659441207_62e91037e029954606295.png!small?1659441208362

由此得到flag在响应包中。


# 渗透测试 # CTF # HTB渗透
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录