ORT事件 漏洞分析

1. 漏洞简介

https://twitter.com/BeosinAlert/status/1615197760546037760

2. 相关地址或交易

攻击交易1: https://phalcon.blocksec.com/tx/bsc/0xfe2cacc8e2f91fdee534c577c68ad53cbdf353cb592d16b120f9dcf54f31b1a3 攻击交易2: https://phalcon.blocksec.com/tx/bsc/0xa0893ac9a8e1eb7cc55530fb0b216c4d7091eb4ee7f7de40e4a6355146190053 攻击合约:0xdd87d807774c8aa9d70fc6af5912c97fadbf531b 攻击账号:0x9bbd94506398a1459f0cd3b2638512627390255e 被攻击合约:ORT 0x6f40a3d0c89cffdc8a1af212a019c220a295e9bb

0x26bc1245b8476086e85553e60ee5e3e59fed9be0

3. 获利分析

4. 攻击过程&漏洞原因

查看攻击交易过程,可分为两个步骤: 1) 步骤1 :Invest 攻击者调用合约0x6f40a3d0c89cffdc8a1af212a019c220a295e9bb的invest方法,参数end_date不为3、6、12、24即可:

查看合约代码可知,当end_date不为3、6、12、24时,duration[msg.sender] 的值为默认值,即为0; 在函数_Check_reward中,参数durations为0时,系统将直接返回total_percent ,绕过了系统逻辑:

系统将攻击者账号的奖励数量 check_reward存入数组tokens_staking中:

2) 步骤2:withdrawAndClaim 攻击者调用合约的withdrawAndClaim函数取回收益,ORT合约将mint与total_percent数量相同的代币给攻击者。

评论