DKP 黑客分析——不正确的代币对比率计算

概述:

2023 年 2 月 8 日,针对 DKP 协议的闪电贷攻击导致该协议的用户损失了 8 万美元,因为 execute() 函数取决于 USDT-DKP 对中两种代币的余额比率。

智能合约黑客概述:

file

解码智能合约漏洞:

  • 攻击从向漏洞利用合约传输 259,390 BSC-USD 代币的闪贷开始。

file

  • 然后,攻击者调用他的合约的 pancakeCall() 方法,并将 BSC-USD 代币从他的合约转移到 exchange() 函数。

file

  • 然后攻击者使用该exchange()方法将 100 BSC-USD 转换为 17,029 DKP 代币,随后将其传输到漏洞利用合约。

file

  • 攻击者发起了一项新交易swapExactTokensForTokensSupportingFeeOnTransferTokens,将 DKP 代币兑换回他们的 USDT 对手方,并从中获利颇丰。

file

缓解措施和最佳实践:

  • 通过诸如 Chain Links 之类的预言机和对这些提要参数的输入验证,可以在更大程度上减轻价格操纵尝试,以防止数据过时。
  • 使用加权时间算法,而不是严重依赖令牌算法。
  • 定期检查欺诈存款的情况并防止套利。

通过Github 获取更多区块链学习资料!

https://github.com/Manuel-yang/BlockChainSelfLearning

posted @ 2023-04-06 16:57  YanAemons  阅读(54)  评论(0编辑  收藏  举报