攻击描述
- 时间: 北京时间 2023 年 10 月 11 日
- 网络: BSC 网络
- 攻击交易 Hash: 0xc11e4020c0830bcf84bfa197696d7bfad9ff503166337cb92ea3fade04007662
- 获利: 1,275,981 USDT
相关地址
- 攻击者地址:
- 被攻击合约:
攻击过程技术分析
01.攻击合约 A 调用 攻击合约 B 的 0xe4dcedb7
函数借 1,521,678 USDT,资金转到攻击 A 的地址
发送方 0x26d0c6...77185618(DPPOracle) 接收方 0xf04073...c4924300 For 641,315 (BSC-USD)
发送方 0xFeAFe2...eBb5d681 接收方 0xf04073...c4924300 For 32,965 (BSC-USD)
发送方 0x9ad32e...52E4e69A 接收方 0xf04073...c4924300 For 623,095 (BSC-USD)
发送方 0x6098A5...4EC6B476 接收方 0xf04073...c4924300 For 72,524 (BSC-USD)
发送方 0x81917e...0f05fC1d 接收方 0xf04073...c4924300 For 151,778 (BSC-USD)
发送方 0xf04073...c4924300 接收方 0x216Ccf...1576480C For 1,521,678.716 (BSC-USD)
此时攻击 A 地址内 USDT 金额为 1,521,678.716
02. 从 PancakePair 和 PancakeV3Pool 分别借 10,000,000 和 15,000,000 到攻击 A 的地址
发送方 0x16b9a8...D1eb0daE 接收方 0x216Ccf...1576480C For 10,000,000 (BSC-USD)
发送方 0x4f31Fa...a4Be40Eb 接收方 0x216Ccf...1576480C For 15,000,000 (BSC-USD)
- PancakePair: https://bscscan.com/address/0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae#code
- PancakeV3Pool: https://bscscan.com/address/0x4f31fa980a675570939b737ebdde0471a4be40eb#code
此时攻击 A 地址内 USDT 金额为 26521678.716
03. 攻击地址 A 转移 n 个 USDT 到被攻击合约 X(共 12 次)
一共投入了 12 次,投入 USDT 金额分别是 10,20,40,80,160,280,500,1000,1500,2000,3000,5000。合计投入了 13590 USDT
被攻击合约内部的收到资金的逻辑是
- 10% USDT 转移到
0xc9fc938bcf691affa79c9fec3d1719f6297fa20e
- 60% USDT 转移到 USDT/BH-LP 合约中。(LP 的 BH 由被攻击合约提供)
- 30% USDT 购买 BH
- 其中 66.66 % BH 给一个地址
- 其中 33.33 % BH 给评分给 N 个地址
投入记录如下:
- 第 1 次 10 USDT
- 第 2 次 20 USDT
- 第 3 次 40 USDT
- 第 4 次 80 USDT
- 第 5 次 160 USDT
- 第 6 次 280 USDT
- 第 7 次 500 USDT
- 第 8 次 1000 USDT
- 第 9 次 1500 USDT
- 第 10 次 2000 USDT
- 第 11 次 3000 USDT
- 第 12 次 5000 USDT
攻击合约存入前:一些数据快照
- LP 状态(BH 价格是: $0.01041031866/个)
- USDT 余额: 1,393,467 USDT(139 万)
- BH 余额: 133,854,404 BH(13385 万)
- 被攻击合约状态
- BH 余额: 99,671,998,587(996.71998 亿)
攻击合约存入 12 次后:一些数据快照
- LP 状态(BH 价格是: $0.01047103071/个)
- USDT 余额: 1,405,698 USDT(140 万)
- BH 余额: 134,246,383 BH(13424 万)
- 被攻击合约状态
- BH 余额: 99,671,360,714(996.71360 亿)
04. 攻击合约 A 调用被攻击合约 X.0x33688938 ,添加 300 万 USDT
攻击合约存入 300 万 后:一些数据快照
- LP 状态(BH 价格是: $0.01753354945/个)
- USDT 余额: 4,405,698 USDT(440 万)
- BH 余额: 251,272,454 BH(2.51272 亿)
- 被攻击合约状态
- BH 余额: 99,554,191,596 (995.54191 亿)
- 攻击合约添加了 LP 数量 19,487,579
此时价格涨到了 $0.17,用户手里的 BH 余额为 66,274,929(6627 万,注意这个金额数量)
05. 通过 PancakeSwap 将 22,000,000 USDT 兑换成 209,261,023 BH
购买后:一些数据快照
- LP 状态(BH 价格是: $0.62853602868/个)
- USDT 余额: 26,405,698 USDT(2640 万)
- BH 余额: 42,011,431 BH( 4200 万,注意这个金额数量)
- 购买后 0x5b9dd1de70320b1ea6c8bbeba12bf4e246227999 收到 209,261,135 BH
注意:此时 LP 被踢出了 2.09 亿的 BH。此时价格涨到了 $0.62853602868。此时用户手里的 BH 额度是 6627 万,而被攻击合约的 LP 内的额度只有 4200 万。 用户即使全部解锁,还会剩余 2426.3498 万。
目前攻击地址 0x216ccfd4fb3f2267677598f96ef1ff151576480c 内还剩余 22,080,807 BH
06. 调用 10 次被攻击合约的 0x4e290832
方法卖出 BH 代币
10 次操作,每次操作之前的 LP 内 BH 金额是
- LP 内 BH 金额是 42,011,431,开始卖 BH
- 攻击合约 0x216 卖掉 23,106,287 BH 到被攻击合约 0x8ca78
- 攻击者收到 12,379,812 USDT(1237.98 万)
- LP 内
- 还剩 11,841,212 USDT(1184.12 万)
- 还剩 18,839,354 BH(1883.93 万)
- LP 内 BH 金额是 20,060,716,开始卖 BH
- LP 内 BH 金额是 9,578,655,开始卖 BH
- LP 内 BH 金额是 4,573,427,开始卖 BH
- LP 内 BH 金额是 2,183,524,开始卖 BH
- LP 内 BH 金额是 1,042,446,开始卖 BH
- LP 内 BH 金额是 497,654,开始卖 BH
- LP 内 BH 金额是 237,564,开始卖 BH
- LP 内 BH 金额是 113,400,开始卖 BH
- LP 内 BH 金额是 54,128,开始卖 BH
- 操作后 LP 剩余 USDT: 39,780
- 操作后 LP 剩余 BH: 24,261