全球数字财富领导者

BonqDAO价格操纵攻击详细分析附PoC

2023-02-02 17:12:19
金色财经
金色财经
关注
0
0
获赞
粉丝
喜欢 14 0收藏举报
— 分享 —
摘要:根据NUMEN链上监控显示,Feb-01-2023 06:29:18 PM +UTC,Polygon链上BonqDAO遭到价格操控攻击,损失113,813,99

Screenshot-2023-02-02-at-3.46.08-PM.png

事件背景

根据NUMEN链上监控显示,Feb-01-2023 06:29:18 PM +UTC,Polygon链上BonqDAO遭到价格操控攻击,损失113,813,998枚WALBT和100,000,000枚BEUR,价值约8800万美元。

攻击者地址0xcAcf2D28B2A5309e099f0C6e8C60Ec3dDf656642 

攻击者合约0xED596991ac5F1Aa1858Da66c67f7CFA76e54B5f1 

攻击交易 0x31957ecc43774d19f54d9968e95c69c882468b46860f921668f2c55fadd51b19; 

0xa02d0c3d16d6ee0e0b6a42c3cc91997c2b40c87d777136dedebe8ee0f47f32b1 

Screenshot-2023-02-02-at-3.47.47-PM.png

攻击分析

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

Screenshot-2023-02-02-at-3.48.49-PM.png

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

Screenshot-2023-02-02-at-4.13.07-PM.png

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

Screenshot-2023-02-02-at-3.51.19-PM.png

漏洞核心

关键问题是在

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

合约的submitvalue 

Screenshot-2023-02-02-at-3.52.32-PM.png

攻击者在上一步depositStake已经完成了资产抵押(抵押了10个TRB),所以在这一步可以给预言机发送报价。质押的越多更新报价的间隔会缩短。 

然后再看价格的查询:

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

Screenshot-2023-02-02-at-3.54.26-PM.png

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

Screenshot-2023-02-02-at-3.54.53-PM.png

跟进到getDataBefore

Screenshot-2023-02-02-at-3.55.18-PM.png

然后再看getIndexForDataBefore,getTimestampbyQueryIdanIndex,retrieveData 

querrId是个常量,先从时间戳找到index,因为根据时间戳记录了很多报价,然后通过querryId获得价格,返回值正是前面submitvalue的第二个参数: 

hex:0x00000000000000000000000000000000000000001027e72f1f12813088000000 

10进制:5000000000000000000000000000。

故此由于TellorFlex合约可以进行报价,报价的条件是只要用户质押就能报价,所以用户通过抵押10000000000000000000.获取了12h报价一次的机会。随后通过TellorFlex.submitValue函数进行了报价。 

攻击复现

EXP

Screenshot-2023-02-02-at-3.58.21-PM.png

EXP源码链接: 

https://github.com/numencyber/SmartContractHack_PoC/blob/main/BonqDAO_exp.sol 

测试结果

Screenshot-2023-02-02-at-4.00.41-PM.png

总结

NUMEN实验室提醒项目方,代币价格需要进行严格把控,多种喂价汇总在一块时,需要考虑价格计算的合理程度及喂价是否存在被控制的风险,合约上线前需要进行多家安全审计,保障合约风险尽可能被消除在链下,NUMEN专注于为web3生态安全保驾护航。 

来源:金色财经

1. 欢迎转载,转载时请标明来源为FX168财经。商业性转载需事先获得授权,请发邮件至:media@fx168group.com。
2. 所有内容仅供参考,不代表FX168财经立场。我们提供的交易数据及资讯等不构成投资建议和依据,据此操作风险自负。
go