背景信息

Trace 分析

攻击者先从不同的地址收集资金

随后通过多个 flashloan 筹集 BUSD

最终获得约 21.1M 的 BUSD

在多层嵌套的闪电贷中定位到攻击点

  1. Swap1:攻击者将所有 BUSD 兑换成 NGP,并发送到 0 地址中
  2. Swap2:攻击者将 NGP 兑换成 BUSD,获利 2212888 BUSD

代码分析

漏洞的成因是当用户卖出 NGP 代币时,会触发价格更新机制。pair 中的 NGP 代币会被按照比例转移到 treasuryAddress 和 rewardPoolAddress 中,然后更新 pair 的价格。最终目的就是抬高 pair 里面 NGP 代币的价格。

如果 poolAmount 的大小接近于 burnAmount 的大小,执行完回购机制后 NGP 的价格将会变得很高,此时只需要少量的 NGP 就能够把 pair 中的 BUSD 全部兑换出来。

Swap1

攻击者第一次 swap 的目的是尽可能地减少 pair 中 NGP 代币的数量,为第二次 swap 的获利做准备

在这里攻击者利用了 0 地址在 whitelisted 中的特点,直接绕过了代币对购买金额和购买时间的限制。

Swap2

在 Swap2 中,攻击者触发价格更新机制,pair 中的 NGP 代币被大量转出后,pair 中 NGP 的 reverse1 数量缩小为为原来的 0.00000007 倍。

在 NGP 价格被抬高后,继续执行攻击者向 pair 的 NGP 转账操作,并以操控后的价格完成 swap,最终完成获利。


随后就是攻击者归还闪电贷,将部分获利的 BUSD 换成 BNB 后,进行资金转移。

20250918 - NGP Token 攻击事件:价格维持机制为攻击者做了嫁衣的更多相关文章

  1. .NET事件监听机制的局限与扩展

    .NET中把“事件”看作一个基本的编程概念,并提供了非常优美的语法支持,对比如下C#和Java代码可以看出两种语言设计思想之间的差异. // C#someButton.Click += OnSomeB ...

  2. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  3. 关于事件监听机制的总结(Listener和Adapter)

    记得以前看过事件监听机制背后也是有一种设计模式的.(设计模式的名字记不清了,只记得背后实现的数据结构是数组.) 附上事件监听机制的分析图: 一个事件源可以承载多个事件(只要这个事件源支持这个事件就可以 ...

  4. GUI编程笔记(java)05:GUI事件监听机制原理和举例说明

    1.事件监听机制:       A:事件源          事件发生的地方       B:事件             就是要发生的事情       C:事件处理       就是针对发生的事情做 ...

  5. JAVA事件监听机制学习

    //事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...

  6. Java中的事件监听机制

    鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...

  7. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

  8. Java swing(awt):事件监听机制的实现原理+简单示例

    (1)实现原理 事件监听机制的实现: 参考图:事件模型_ActionEvent 为了节省资源,系统无法对某个事件进行实时的监听.故实现的机制是当发生某个事件后,处理代码将被自动运行,类似钩子一般.(回 ...

  9. JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件

    JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...

  10. View,ViewGroup的Touch事件的分发机制

    原帖地址:http://blog.csdn.net/xiaanming/article/details/21696315 ViewGroup的事件分发机制 我们用手指去触摸Android手机屏幕,就会 ...

随机推荐

  1. Rust修仙之道 第八章:意动境 · 闭包与迭代的灵动之道

    第八章:意动境 · 闭包与迭代的灵动之道 "他人需咏符念咒,我一念而动术:他人遍历千灵,我引灵自来去." 顾行云望着铺天盖地的灵纹数据,若要逐一施术,岂非精神耗尽?他开始思索:是否 ...

  2. 隐藏 Download the React DevTools for a better

    启动react项目的时候,一直给我推荐他家的开发工具: 'Download the React DevTools for a better development experience: https: ...

  3. MapTest java 核心编程

    简介 类似c++map code /* * @Author: your name * @Date: 2020-10-27 21:15:06 * @LastEditTime: 2020-10-27 21 ...

  4. java中对于数组的扩充,使用了反射机制

    简介 java中对于数组的扩充,使用了反射机制 code package com; import java.lang.reflect.Array; import java.util.Arrays; p ...

  5. MinIO数据导出

    最近公司里需要将生产环境MinIO数据导出来一份,用于后续工作.导出的过程中尝试了三种方法(最终选择了方法三),内容如下: 方法一:MinIO Web控制台界面下载(适用于少量文件) 通过浏览器访问M ...

  6. H3C华三路由器抓包并显示会话

    相信大家都遇到过这么样的情况,客户说他的包已经发出来了,但是没有收到对方的回包,对方说我这里网络一切正常,就这么僵持着.其实有些厂商设备是可以通过ACL匹配流量,然后通过debug输出在CLI终端上, ...

  7. SciTech-BigDataAIML-CV+CG-Digital Image Processing- 用 moviepy 库转换 video文件为GIF图片动画

    使用 moviepy 库转换video为GIF图片动画文件 pip install moviepy from moviepy.editor import videoFiLeclip videocLip ...

  8. OpenList基本使用流程

    1. 完成项目拉取后要做的操作 1.1 启动与登录 启动方式:在 .exe 文件的存放位置输入cmd打开命令行 在命令行中输入: openlist.exe server 初次打开时会给出初始密码,将初 ...

  9. [题解] AT_ABC406_E Popcount Sum 3

    洛谷题目传送门 ATcoder题目链接 题目大意 给你正整数 \(N\) 和 \(K\). 求所有不超过 \(N\) 且满足以下条件的正整数 \(x\) 的 和(取模 \(998244353\)): ...

  10. unity文件夹复制

    如果是编辑器不使用运行时的话,直接使用UnityEditor下的API即可 FileUtil.CopyFileOrDirectory 如果是运行时 /// <summary> /// 文件 ...