码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【漏洞分析】Li.Fi攻击事件分析:缺乏关键参数检查的钻石协议


    背景信息

    2024 年 7 月 16日,Li.Fi 协议遭受黑客攻击,漏洞成因是钻石协议中 diamond 合约新添加的 facet 合约没有对参数进行检查,导致 call 函数任意执行。且 diamond 合约拥有用户的 approve,所以攻击者可以构造恶意参数对用户资金进行转移。

    攻击交易https://app.blocksec.com/explorer/tx/eth/0xd82fe84e63b1aa52e1ce540582ee0895ba4a71ec5e7a632a3faa1aff3e763873

    相关合约

    1. 钻石协议 LiFiDiamond:https://etherscan.io/address/0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae#code
    2. 逻辑合约 GasZipFacet:https://etherscan.io/address/0xf28a352377663ca134bd27b582b1a9a4dad7e534#code

    钻石协议
    钻石协议的提案是 EIP-2535 :https://eips.ethereum.org/EIPS/eip-2535 ,想详细了解的读者可以阅读提案的具体内容。简单理解一下就是变种的 proxy 形式,根据不同的函数调用不同的 implement 合约。

    image

    Trace 分析

    攻击者调用 LiFiDiamond.depositToGasZipERC20 函数,Diamond 合约 delegatecall Facet 合约

    image

    GasZipFacet.depositToGasZipERC20

    image

    LibSwap.swap 函数

    image

    在 _swap.callTo.call{value: nativeValue}(_swap.callData)函数中,攻击者构造恶意参数,导致实际上调用的是 USDT.transferFrom() 函数。

    image

    ERC20 授权

    由于在 LibAsset 中需要用到 transferFrom 函数转移用户的 ERC20 代币,所以需要用户对 LiFiDiamond 合约进行代币授权。这是攻击发生的第二个条件。

    image

  • 相关阅读:
    量子计算(四):量子力学的发展史
    Abbkine 细胞侵袭分析试剂盒,简单方便,快速检测
    【递归、搜索与回溯算法】第一节.初识递归、搜索与回溯算法
    【数据结构】——顺序表
    Mock 测试详解:什么是 Mock 测试
    PM3398B-6P-1–3P-E 借助物联网和人工智能解决方案
    MVC升级swagger No operations defined in spec!
    go pprof 如何使用 --chatGPT
    js面试题分享
    【Java】泛型
  • 原文地址:https://www.cnblogs.com/ACaiGarden/p/18310446
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号