地球OL真实盗币游戏,Web题WriteUp

0x1 原题

挑战1:Web

题名: Crypto Exchange Bug

奖励:2 Ether(≈2900

地址:http://dvpgame.ml/



0x2 解题思路

1、登陆

随便输入个账号就能登录,这里用asd:asd登录,发现初始有95dollar可用。

2、猜想

走一遍系统的各个功能点,猜测可能出现漏洞的地方。 经过一番尝试后,觉察参数中的值0.95和系统中1.9的值有某种联系,猜测可能存在条件竞争。 

3、测试

1.条件竞争 

各个功能中只有提现功能和购买DVP功能互相存在条件竞争。 burp抓取提现的数据包和购买DVP的数据包,同时请求,一段尝试后即可触发漏洞。成功使余额变为190dollar,190doller可以兑换1.9dvp,但是eth购买条件是需要大于1.9dvp

2.浮点运算溢出

一番尝试后猜测此处或许可以通过浮点运算溢出绕过, 如(1.8+0.1)>1.9 ,如图:

分别进行两次购买,第一次购买1.8dvp,第二次0.1dvp。成功绕过。

0x3 证明

1、提现数据包


2、购买DVP的数据包

3、触发条件竞争漏洞


4、触发浮点运算溢出漏洞

分两次购买dvp,先购买0.1个DVP,再购买1.8个DVP,此时我账户下的DVP数应该溢出为1.9000000000000001了,大于1.9,成功购买ETH。


5、购买key


可以看到打印出来的字符串是base64后的,解码一下就是真实的私钥了,然后把私钥导入钱包即可转账走人。


0x4 相关说明

以上解题过程由白帽子yzkc提供,DVP基金会对此奖励了2000DVP。

关于后面两题的解题思路,欢迎大家踊跃投稿!

*文章为作者独立观点,不代表BSCEC立场

转载此文章须经作者同意,并请附上出处(DVPNET)及本页链接。原文链接 https://mp.weixin.qq.com/s/we9Yap3Fv1y76olZVnogNw

白帽汇安全研究院转载2018-11-07 15:16:08 DVPNET 701