1、前言
北京时间3月5日,知道创宇区块链安全实验室?监测到?BaconProtocol?遭受黑客攻击损失约958,166美元,本次攻击利用重入漏洞,并凭借闪电贷扩大收益额。目前攻击者地址还没有被加入USDC的黑名单中。
2、分析
攻击事件如下图所示,该次攻击事件的问题点在于lend()函数,攻击者利用该函数进行重入攻击。
2.1基础信息
攻击合约:0x580cac65c2620d194371ef29eb887a7d8dcc91bf
攻击者地址:0x7c42f2a7d9ad01294ecef9be1e38272c84607593
BHEX即将上线MOI:据官方公告,BHEX将于6月4日20:00 (UTC+8) 上线MOI(MyOwnItem),并开通MOI/USDT交易对,充值现已开启。
据悉,MyOwnItem是去中心化的NFT交易平台MOI运用区块链技术,可在动产、不动产、数字财产等方面进行NFT化,并可借此在平台内创造收益。MOI致力于通过NFT为用户实现利润最大化,并致力于改革中心化、中央化及垄断式平台的结构。MOI为NFT和用户的发展建立了社交平台,并打算以此为建立健康的市场做出贡献。[2021/6/4 23:12:24]
攻击tx:0x7d2296bcb936aa5e2397ddf8ccba59f54a178c3901666b49291d880369dbcf31
火币矿池将向HPT用户新增空投 BHD、TT:据火币官方消息,火币矿池将于6月30日起正式向火币全球站、火币矿池生态交易所HPT持仓用户空投BHD、TT,空投规则为:火币矿池每日根据新加坡时间当日00:00:00对火币全球站、火币矿池生态交易所用户的HPT持仓数据进行快照,对持仓大于1,000HPT的用户空投BHD、TT。
届时,用户可至火币全球站账户中查看具体空投数量。[2020/6/29]
漏洞合约:0x781ad73f140815763d9A4D4752DAf9203361D07D
2.2流程
1.攻击者通过UniswapV2闪电贷借出6,360,000USDC。
2.用闪电贷借出的6,360,000USDC分成3份,去bHOME中进行2次重入攻击调用了3次lend()函数铸造共8,465,943.180104bHOME。
BHEX实盘正式接入合约帝 永续合约实盘大赛今日启动:今日,BHEX交易所携合约帝联合举办的永续合约实盘大赛正式启动,首日冠军收益率90.83%,获150USDT奖励。据悉,本次BHEX永续合约实盘赛共举办6天。
据悉,为方便用户实盘操作,BHEX交易所永续合约实盘帐户数据已于今日正式接入合约帝实盘API。[2020/3/2]
3.将刚才重入获得的bHOME拿去销毁赎回获得7,336,924.998USDC。
4、归还闪电贷借出的6,360,000USDC,并支付19,716的手续费,最后将剩余的957,208.998USDC转入自己的账户。
2.3细节
该次攻击事件重点在于lend()函数,由于合约https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未验证开源,所以我们只能从交易的Debugger中寻找线索。
公告 | BHEX 将于10日19时上线BEE:据BHEX官方公告,BHEX将于新加坡时间2月10日19时开放BEE充提币及交易,并同期开展BEE奖励活动,期间持仓、邀请、注册BHEX平台的用户均有机会瓜分BEE。
BEE Coin(BEE)是由BEEX发行的原生加密货币,总发行量为1亿个,无预留且永不增发,3月14日将首次减产,100%由挖矿产生,此次活动的30万BEE来自于二级市场回购。BEEX收入的70%将用于每周回购销毁BEE直到总量为2100万枚。BHEX为火币集团及欧科集团共同投资的数字资产交易平台。
详情点击原文链接。[2020/2/9]
1、攻击者通过UniswapV2闪电贷借出6,360,000USDC。
2、用闪电贷借出的6,360,000USDC分成3份,去bHOME中进行重入攻击2次调用?lend()函数铸造共8,465,943.180104bHOME。
3、将刚才重入获得的bHOME拿去销毁赎回获得7,336,924.998USDC。
4、归还闪电贷借出的6,360,000USDC,并支付19,716的手续费,最后将剩余的957,208.998USDC转入自己的账户。
2.3细节
该次攻击事件重点在于?lend()?函数,由于合约?https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code?并未验证开源,所以我们只能从交易的Debugger中寻找线索。
分析Debugger可以看到下图是第一次调用函数,接着进行了2次重入。
从重入攻击中可以找到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修饰器来防止重入攻击的发生。
親愛的ZT用戶:根據Polygon(MATIC)官方消息,由於PolygonPoS鏈使用的Tendermint實現的問題,已經從5:50PMUTC開始進行維護.
1900/1/1 0:00:00親愛的ZT用戶:ZT創新板即將上線INDI,並開啟INDI/USDT交易對。具體上線時間如下:充值:已開啟;交易:2022年3月11日18:00;INDI項目簡介:IndiGG為YGG(Yiel.
1900/1/1 0:00:00內容摘要今年2月以來,由於俄烏緊張局勢,全球資本市場的被避險情緒佔據,黃金、美元指數走高,原油價格也因俄羅斯在衝突中的角色不斷上升,而風險資產則面臨拋售壓力.
1900/1/1 0:00:00根據OLYMPUS項目方公告,OLYMPUS正在跟HibikiFinance(HIBIKI)合併,並進行代幣兌換.
1900/1/1 0:00:00第三章UangMarket设计原则3.1.为游戏开发者削减分销成本!在技术不断进步的推动下,游戏产业已经发展成为一个由开发者、发行商、平台、玩家等组成的复杂生态系统.
1900/1/1 0:00:00本文来自TheBlock,原文作者:FrankChaparroOdaily星球日报译者|胡萝卜须贝恩资本(BainCapitalVentures.
1900/1/1 0:00:00