• merlin矿池被攻击详情


    梅林矿池当天被攻击了两次,我们只分析第一次攻击,因为第二次攻击的方法太沙雕了

    北京时间UTF+8 14点30分,bsc生态链上的defi机枪池-merlin发生了黑客大量铸造梅林代币,然后抛售,导致梅林币价短时间内在50u-25u之间上下窜动。根据tg项目群里的相关消息,对此次事件进行了追踪和研究。先抛出攻击者的地址:
    https://bscscan.com/address/0x400fa7edd10d480f034113f5e81bc1bb78c162fa

    攻击者确实是获取了大量梅林代币,然后到1inch上转换成大量cake,再把cake跨链转账成eth进行跑路。
    根据获取大量梅林的交易记录txn hash进行查询。
    https://bscscan.com/tx/0x8e20a1118a669d03b66c5eca2d937646bd855a998afb1e94b94ff6303456ff97

    攻击者通过某种方式,在0x00黑洞地址铸币了大量的梅林,且同时也获得了大量的cake。

    从tx交易最开始的记录可以看到,本身的一开始的cake数量并不是很多。
    结合这类攻击的手法,向前后两条token交易进行查验,我们发现:

    攻击者第一步是out一部分cake出去,随后进行了一个操作,从合约地址in了merl代币和cake,因为in的merl代币和cake的tx hash是同一个,所以可以认为是一个合约执行的。
    打开这笔out的详细交易记录:

    攻击者从自己的钱包把cake转移到一个合约地址里。。。
    0x758c6c9731ee68ad278f8c2f2f27b84acb092649

    接着根据tg群里有人传出的一张图。

    从合约源码里可以比较直观的看到,铸币的梅林是根据cake的数量按一定比例生成的,而cake是从当前合约余额里取的。所以原因大概就是质押后,你获得的收益cake是在某个钱包(合约)里的。然后他简单的取当前钱包(合约)里的余额cake来算merl要增发多少。谁知道这些cake是 攻击者发给合约的,不是收益出来的。
    根据某次攻击进行收益率判断:

    冲进去2457cake,返还给1720cake,然后也一并还了1351的merl,但是merl价格比cake高,损失2457-1720=737个cake,但是获得了1351的merl,merl在30-40u,cake是20u以下,

    然后把1351的merl用1inch换成cake,看最后变成1351merl变1669cake,减去737,也就是说他一次攻击大约能获益本金一半的cake。按此等比差,多次进行操作,最后形成一个巨大的数量。我追溯了攻击者最开始的成本:180个cake,当时市值2w3软妹币,最后获取大约250eth,价值500w软妹币,仅仅只是手动花了1小时的时间。
    在debank上看更加直观

    区块链的defi产品的安全还是需要任重而道远啊。这是我自己参与的第三个矿池被攻击的案例了。

  • 相关阅读:
    【转载】震惊了!原来这才是kafka!
    Django model层之执行原始SQL查询
    Django model 层之聚合查询总结
    Django 不通过外键实现多表关联查询
    Django model 层之Making Query总结
    Python 基于Python生成短8位唯一id解决方案
    Python shortuuid生成库学习小结
    Django model 层之Models与Mysql数据库小结
    Django Template层之自定义tag
    Django 通过自定义context_processors实现自定义tag
  • 原文地址:https://www.cnblogs.com/ph4nt0mer/p/14816733.html
Copyright © 2020-2023  润新知