HackerDao攻击分析+复现

  • jusonalien
  • 更新于 2022-05-26 11:44
  • 阅读 2784

攻击者利用token合约自身的转账手续费的漏洞,结合dex的skim函数构造出dex LP的价格差,进而产生套利空间,将dex LP里面的WBNB给套走,最终实现170+BNB的利润

原文地址:https://jusonalien.github.io/hackerdaogong-ji-fen-xi.html

攻击者利用token合约自身的转账手续费的漏洞,结合dex的skim函数构造出dex LP的价格差,进而产生套利空间,将dex LP里面的WBNB给套走,最终实现170+BNB的利润

攻击相关交易事件

攻击合约地址

复现攻击代码

攻击过程分析

  • 1、攻击者从DODO闪电贷借出250个WBNB
  • 2、用借来的WBNB在 HackerDao-WBNB的LP里面兑换出90%的HackerDao
  • 3、将获得的HackerDao打到HackerDao-WBNB这个LP里面
  • 4、对HackerDao-WBNB这个LP发起Skim,将刚刚打进去的HackerDao Skim到HackerDao-USDT这组池子里面

HackerDao的token在transfer的过程中会针对接收方地址做一个白名单检查,如果白名单是USDT-HackerDao的LP地址的话,就会做一个收取手续费的操作,

hackerdaotransfer.jpg

而这个LP白名单的生成是在合约的构造函数里面就生成了的,这个设计也是造成此次漏洞的直接原因 hackerdaoconstructor.jpg

  • 5、Skim的过程中,会因为触发上述手续费的逻辑导致LP里面的HakcerDao减少,然后做一次sync,导致HackerDao-WBNB的价格被拉高
  • 6、将HackerDao-USDT里面的token再skim到攻击地址里面
  • 7、将攻击地址上的HackerDao全部套现兑换成WBNB,中间获得利差
点赞 2
收藏 3
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
jusonalien
jusonalien
0x3730...4a7a
在找Solidity开发岗 个人博客: https://jusonalien.github.io/