BonqDAO价格操纵攻击详细分析附PoC
事件背景
根据NUMEN链上监控显示,Feb-01-2023 06:29:18 PM +UTC,Polygon链上BonqDAO遭到价格操控攻击,损失113,813,998枚WALBT和100,000,000枚BEUR,价值约8800万美元。
攻击者地址0xcAcf2D28B2A5309e099f0C6e8C60Ec3dDf656642
攻击者合约0xED596991ac5F1Aa1858Da66c67f7CFA76e54B5f1
攻击交易 0x31957ecc43774d19f54d9968e95c69c882468b46860f921668f2c55fadd51b19;
0xa02d0c3d16d6ee0e0b6a42c3cc91997c2b40c87d777136dedebe8ee0f47f32b1

攻击分析
攻击者首先通过少量代币测试withdrawAllTokens功能正常使用,随后给攻击合约转入少量TRB和WALBT,为后续攻击做准备。

攻击者通过给TellorFlex合约添加质押存款,获得了更新价格的条件,这里价格更新为price=5000000000000000000000000000.

之后攻击者通过调用borrow方法借款,由于借款获取价格是通过TellorFlex.getCurrentValue获取,由于攻击者已将该价格修改,所以这里获取的价格极高,导致攻击者的大额借款可以成功借出。

漏洞核心
关键问题是在
https://polygonscan.com/address/0x8f55d884cad66b79e1a131f6bcb0e66f4fd84d5b#code
合约的submitvalue

攻击者在上一步depositStake已经完成了资产抵押(抵押了10个TRB),所以在这一步可以给预言机发送报价。质押的越多更新报价的间隔会缩短。
然后再看价格的查询:
https://polygonscan.com/address/0xa1620af6138d2754f7250299dc9024563bd1a5d6#code

https://polygonscan.com/address/0x8f55d884cad66b79e1a131f6bcb0e66f4fd84d5b#code

跟进到getDataBefore

然后再看getIndexForDataBefore,getTimestampbyQueryIdanIndex,retrieveData
querrId是个常量,先从时间戳找到index,因为根据时间戳记录了很多报价,然后通过querryId获得价格,返回值正是前面submitvalue的第二个参数:
hex:0x00000000000000000000000000000000000000001027e72f1f12813088000000
10进制:5000000000000000000000000000。
故此由于TellorFlex合约可以进行报价,报价的条件是只要用户质押就能报价,所以用户通过抵押10000000000000000000.获取了12h报价一次的机会。随后通过TellorFlex.submitValue函数进行了报价。
攻击复现
EXP

EXP源码链接:
https://github.com/numencyber/SmartContractHack_PoC/blob/main/BonqDAO_exp.sol
测试结果

总结
NUMEN实验室提醒项目方,代币价格需要进行严格把控,多种喂价汇总在一块时,需要考虑价格计算的合理程度及喂价是否存在被控制的风险,合约上线前需要进行多家安全审计,保障合约风险尽可能被消除在链下,NUMEN专注于为web3生态安全保驾护航。
郑重声明:本文版权归原作者所有,转载文章仅为传播信息之目的,不构成任何投资建议,如有侵权行为,请第一时间联络我们修改或删除,多谢。
XRP 涨至 7.5 美元?分析师告诉 XRP 大军为纯粹的烟火做好准备!
加密货币分析师 EGRAG 表示,XRP 即将迎来关键时刻,价格可能大幅上涨,这取决于能否突破关键...
今晚ETH迎来暴涨时代 op、arb、metis等以太坊二层项目能否跑出百倍币?
北京时间7月23日晚上美股开盘后 ETH 的ETF开始交易。ETH的里程碑啊,新的时代开启。突破前...
Mt Gox 转移 28 亿美元比特币 加密货币下跌 ETH ETF 提前发行
2014 年倒闭的臭名昭著的比特币交易所 Mt Gox 已向债权人转移了大量比特币 (BTC),作...
Numen Cyber
文章数量
17粉丝数
0
