1.漏洞简介https://twitter.com/blocksecteam/status/16156258976710041612.相关地址或交易攻击交易:0xfde10ad92566f369b23ed5135289630b7a6453887c77088794552c2a3d1ce8
https://twitter.com/blocksecteam/status/1615625897671004161
攻击交易: 0xfde10ad92566f369b23ed5135289630b7a6453887c77088794552c2a3d1ce8b7 transfer & skim 0xa806617cdd8ed760ed25cec61abf642f4889749c3cede45c46f27d60f0941bd1 transfer back 0xd78380d1caaf494338d2c5d9093ebee7dcea2a2b804ceb7714dad899bae65be1 sell 攻击合约:0xa33c965ca6d3bdc42bdb23a79081757090eb7700 攻击账号:0x88a2386e7ec97ad1e7a72176a66b6d0711ae3527 被攻击合约:https://etherscan.io/address/0xc9fa8f4cfd11559b50c5c7f6672b9eea2757e1bd#code QUATERNION
整个攻击分为3个步骤: 1) 第1步:攻击者先将QTN代币转给UNI-V2,再调用池子的skim函数将QTN代币转给事先生成的合约;
攻击者执行此步骤的目的在于调用函数rebasePlus。在该函数中,_totalSupply的数量不断增大,_gonsPerFragment的值不断减小。攻击者之所以经过UNI-V2转移QTN代币,是因为当from == uniswapV2Pair 时,将调用rebasePlus函数,最终达到缩小_gonsPerFragment 的值的目的。
代币合约的balanceOf函数中通过_gonBalances[account].div(_gonsPerFragment) 确认账号所拥有的代币数量,_gonsPerFragment变小,每个账号的代币数量均增加。
2) 第2步,攻击者调用各攻击者的transferBack函数将代币转给合约0xa33c965ca6d3bdc42bdb23a79081757090eb7700,如合约0x89425431c2971be618658ef8c155e250b1b8b125的QTN代币数量在第1步攻击开始时只有5109705265130400336142756,而在第2步中已经有5788251514335493385465012,代币数量已增加。
3) 第3步,攻击者兑换代币,套现离场。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!