BRA代币被攻击事件分析

  • Drac
  • 更新于 2023-01-11 14:35
  • 阅读 2141

此次攻击主要是在代币在转帐时没考虑到tax可能被收取两次的情况导致代币增发造成的

攻击背景

攻击者地址:0x67a909f2953fb1138bea4b60894b51291d2d0795

攻击合约地址:0x1FAe46B350C4A5F5C397Dbf25Ad042D3b9a5cb07

攻击tx:0x6759db55a4edec4f6bedb5691fc42cf024be3a1a534ddcc7edd471ef205d4047

通过blocksec的phalcon工具来分析攻击的tx

https://phalcon.blocksec.com/tx/bsc/0x6759db55a4edec4f6bedb5691fc42cf024be3a1a534ddcc7edd471ef205d4047

攻击过程分析

1.从dodo中借出1400 WBNB

image.png

2.将1000 WBNB换成10865 BRA

image.png

攻击合约收到10539 BRA,325 BRA发送回LP合约

image.png

查看下BRA的transfer方法,满足一定条件会有个tax

image.png

分别为转帐数量的3%

image.png

在这里是满足了sender==uniswapV2Pair&&!recipientAllow

recipientAllow的值为:

bool recipientAllow = ConfigBRA(BRA).isAllow(recipient);

image.png

3.将10539 BRA转到LP地址

image.png

4.调用skim()方法,to地址设置为LP地址

将多出来的10539 BRA再次发送到BRA-USDT的LP地址,LP地址共收到了10855 BRA

image.png

这是因为_tansfer函数中两个if都被满足,导致tax收了两次,导致增发

image.png

5.重复调用skim()增发BRA

image.png

6.调用swap方法,将增发的BRA换成USDT

image.png

7.将USDT换成WBNB,归还闪电贷

总结

此次攻击主要是在代币在转帐时没考虑到tax可能被收取两次的情况导致代币增发造成的。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Drac
Drac
江湖只有他的大名,没有他的介绍。