//前言
北京时间3月5日,知道创宇区块链安全实验室监测到BaconProtocol遭受黑客攻击损失约958,166美元,本次攻击利用重入漏洞,并凭借闪电贷扩大收益额。目前攻击者地址还没有被加入USDC的黑名单中。
//分析
攻击事件如下图所示,该次攻击事件的问题点在于lend()函数,攻击者利用该函数进行重入攻击。
2.1基础信息
攻击合约:0x580cac65c2620d194371ef29eb887a7d8dcc91bf
攻击者地址:0x7c42f2a7d9ad01294ecef9be1e38272c84607593
攻击tx:0x7d2296bcb936aa5e2397ddf8ccba59f54a178c3901666b49291d880369dbcf31
交易员Nik Bhatia:通货膨胀率可能会在几个月内超过7%:11月14日消息,交易员Nik Bhatia发推表示,通货膨胀率可能会在几个月内超过7%。尽管如此,长期国债将在同一时期下降。由于政策错误,这被称为收益率曲线变平,短期收益率因美联储加息的威胁而增加。[2021/11/14 6:51:21]
漏洞合约:0x781ad73f140815763d9A4D4752DAf9203361D07D
2.2流程
1.攻击者通过UniswapV2闪电贷借出6,360,000USDC。
2.用闪电贷借出的6,360,000USDC分成3份,去bHOME中进行2次重入攻击调用了3次lend()函数铸造共8,465,943.180104bHOME。
BHD突破2.7美金关口,日内涨幅超过15%:火币全球站数据显示,BHD短时上涨,突破2.7美金,现暂报价2.65美金,日内涨幅高15% 。行情波动较大,请做好风险控制。[2021/2/5 18:59:07]
3.将刚才重入获得的bHOME拿去销毁赎回获得7,336,924.998USDC。
4、归还闪电贷借出的6,360,000USDC,并支付19,716的手续费,最后将剩余的957,208.998USDC转入自己的账户。
比特硬币BHD正式上线虎符交易所:据BHD Community消息,BHD于2020年6月11日14:00 (UTC+8)正式上线虎符交易所BHD/USDT 交易对,同时开启BHD的定期理财产品和挂单理财、净收入排名瓜分300BHD(1BHD=9USDT)活动。[2020/6/11]
2.3细节
该次攻击事件重点在于lend()函数,由于合约https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未验证开源,所以我们只能从交易的Debugger中寻找线索。
1、攻击者通过UniswapV2闪电贷借出6,360,000USDC。
2.3细节
MXC抹茶BHD杠杆擂台赛结束,第一名获得1004.10 枚BHD:官方消息,MXC抹茶BHD杠杆擂台赛现已结束,在“交易排行榜奖”中,第一名获得1004.10 枚BHD奖励,合约等值2BTC(具体以发放时BHD和BTC价格为准),其他中奖者按交易额分别获得20.08-304.23BHD奖励。
本次活动代币奖励,由BHD官方提供。
奖励公告请查看官方链接。[2020/5/3]
该次攻击事件重点在于lend()函数,由于合约https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未验证开源,所以我们只能从交易的Debugger中寻找线索。
分析Debugger可以看到下图是第一次调用函数,接着进行了2次重入。
比特硬币BHD将于4月22日18:00上线火币矿池合作挖矿:据火币矿池公告,比特硬币BHD将于新加坡时间2020年4月22日18:00上线火币矿池HPT锁仓挖矿。火币矿池可以实现一键双挖获得双重收益,用户参与锁仓挖矿不仅可以获得HPT收益,同时还能够享有HPT权益奖励。BHD是新一代基于POC容量证明挖矿的加密货币。[2020/4/21]
从重入攻击中可以找到INPUT中调用函数的字节码为0xa6aa57ce。
通过字节签名可以知道重入攻击调用的是lend()函数。
从Debugger中我们可以发现攻击合约的地址0x781ad73f140815763d9a4d4752daf9203361d07d。
通过反编译合约0x781ad73f140815763d9a4d4752daf9203361d07d得到合约伪代码内容,可以找到lend()函数。
我们在反编译的代码中可以看到该合约使用的ERC777协议,会查询recipient的回调合约并回调tokensReceived()函数用以重入攻击。
通过分析可以发现_index就是传入的USDC数量。
totalSupply和balanceOf的增量都和_index是正比关系,和stor104是反比关系,并且这两个变量的更新发生在重入攻击之前,每次都会更新。
stor104记录的是用户存入的USDC总量,该变量的更新发生在重入之后,那么在重入的过程中stor104的值是不变的,而上面的totalSupply是在变大,所以最后return的值也会相应的增大,从而使得攻击者通过重入攻击铸造得到比正常逻辑更多的bHOME代币。
除了该次攻击事件,BlockSecTeam还阻断了后面发生的攻击并将金额返还给了项目方。交易hash:0xf3bd801f5a75ec8177af654374f2901b5ad928abcc0a99432fb5a20981e7bbd1
3.总结
此次攻击事件是由于项目方使用了ERC777协议但没有对回调合约的安全性进行考虑从而导致了重入攻击的发生,当项目合约有涉及资产的转移时,建议使用「检查-生效-交互」模式来保证逻辑代码的安全,当然我们也可以使用OpenZeppelin官方提供的ReentrancyGuard修饰器来防止重入攻击的发生。
Web2与Web3的融合, 不可逆转且大势所趋, 元宇宙中会诞生一个无限增量市场,而对于规则、标准与话语权的抢夺,会是Web2和Web3融合的主战场.
“没有人知道这意味着什么,但它具有挑衅性。它让人们前进。”-查兹·迈克尔·迈克尔斯 定义元宇宙 元宇宙仍然是一个没有明确定义的无定形术语,尽管这并没有阻止名人或实体绞尽脑汁靠上这个概念.
巴比特讯,2月17日,马斯克发图调侃近日加拿大将卡车司机抗议活动相关比特币地址列入黑名单的事件。图片人物为希特勒,并配文“不要把我和JustinTrudeau相提并论”,“我有预算”.
“人天生就是一种社会动物”。 ——亚里士多德 作为有史以来最重要的西方哲学家之一,亚里士多德曾经说过——“人天生就是一种社会动物”.
近日,Polkadot创始人GavinWood做客TheDefiant播客,和主持人Camila聊了聊一些非常有趣的话题,包括:同为分片.
据TheBlock3月9日消息,被提前曝光的一份有关拜登即将签署的加密行政法令的说明文件显示,该命令将首次提及要求“官方全员”针对加密资产及技术的风险与利弊进行评估.