0

0

Penpie被黑分析:被黑原因+攻击步骤分析

霞舞

霞舞

发布时间:2024-09-23 17:03:09

|

518人浏览过

|

来源于脚本之家

转载

penpie被黑分析:被黑原因+攻击步骤分析!根据慢雾安全团队情报,2024 年 9 月 4 日,去中心化流动性收益项目penpie 遭攻击,攻击者获利近 3 千万美元。慢雾安全团队对该事件展开分析并将结果分享。为什么penpie被黑?penpie被黑原因+攻击步骤分析,希望大家喜欢!

Penpie被黑分析:被黑原因+攻击步骤分析

前置知识

Pendle Finance 是一种去中心化金融收益交易协议,总锁定价值超过 45 亿美元。该协议成功地与 Magpie 整合,旨在优化收益机会并增强其 veTokenomics 模型。在此基础上,Penpie 项目引入了流动性挖矿功能,使 Pendle Finance 的市场能够实现被动收益。

在 Pendle Finance 中包含以下几个重要概念:

  • PT (Principal Token):代表未来某个时间点的本金。持有 PT 代表握有本金的拥有权、并于到期后可兑换领回。例如你拥有一张 1 年后到期的 1 枚 PT-stETH 期权,那么在 1 年后你将能兑换价值 1 ETH 的 stETH。
  • YT (Yield Token):代表未来的收益。持有 YT 代表你拥有底层资产产生的所有实时收益,并且可以随时在 Pendle 上手动领取所累积的收益。如果你拥有 1 个 YT-stETH,而 stETH 的平均收益率为 5%,那么在一年结束时,你将累积 0.05 个stETH。
  • SY (Simple Yield):用于包装任何生息代币的合约。其提供了标准化的接口,可以与任何生息代币的收益生成机制进行交互。
  • LPT (Liquidity Provider Token):代表一个流动性市场,作为提供底层资产流动性的凭证。
  • PRT (Pool Reward Token):代表 Penpie 池子中用户存入 LPT 代币的存款凭证。

根本原因

此次事件的核心在于 Penpie 在注册新的 Pendle 市场时,错误地假设所有由 Pendle Finance 创建的市场都是合法的。然而,Pendle Finance 的市场创建流程是开放式的,允许任何人创建市场,并且其中的关键参数如 SY 合约地址,可以由用户自定义。利用这一点,攻击者创建了一个含有恶意 SY 合约的市场合约,并利用 Penpie 池子在获取奖励时需要对外部 SY 合约调用的机制,借助闪电贷为市场和池子添加了大量的流动性,人为放大了奖励数额,从而获利。

攻击步骤分析

攻击前置准备

交易哈希:0x7e7f9548f301d3dd863eac94e6190cb742ab6aa9d7730549ff743bf84cbd21d1

1. 首先,攻击者通过 PendleYieldContractFactory 合约的 createYieldContract 函数创建 PT 和 YT 收益合约,将 SY 设置为攻击合约地址,并以此调用 PendleMarketFactoryV3 合约的 createNewMarket 函数创建了对应的市场合约 0x5b6c_PENDLE-LPT。

Penpie被黑分析:被黑原因+攻击步骤分析

2. 接着,攻击者使用 PendleMarketRegisterHelper 合约的 registerPenpiePool 注册 Penpie 池子,此过程中会创建存款凭证 PRT 代币合约及相关的 rewarder 合约,并在 Penpie 中登记池子信息。

Penpie被黑分析:被黑原因+攻击步骤分析

3. 随后,攻击者调用 YT 合约的 mintPY 函数,铸造大量 YT 和 PT,数量取决于攻击合约(SY 合约)返回的汇率。

Penpie被黑分析:被黑原因+攻击步骤分析

4. 紧跟着,攻击者将 PT 存入市场 0x5b6c_PENDLE-LPT 并铸造 LP 代币。

Penpie被黑分析:被黑原因+攻击步骤分析

5. 最后,攻击者将 LP 代币存入 Penpie 池子,换取存款凭证 PRT 代币。

Penpie被黑分析:被黑原因+攻击步骤分析

正式攻击

交易哈希:0x42b2ec27c732100dd9037c76da415e10329ea41598de453bb0c0c9ea7ce0d8e5

1. 攻击者先通过闪电贷借出大量 agETH 和 rswETH 代币。

Penpie被黑分析:被黑原因+攻击步骤分析

2. 调用 Penpie 池子的 batchHarvestMarketRewards 函数,批量收集指定市场的奖励,此操作触发了市场合约 0x5b6c_PENDLE-LPT 的 redeemRewards 函数。

Penpie被黑分析:被黑原因+攻击步骤分析

3. 在 redeemRewards 函数中,外部调用了 SY 合约(攻击合约)的 claimRewards 函数,期间攻击者使用闪电贷资金为奖励代币增加流动性(攻击合约中特意将奖励代币设置为两种市场代币 0x6010_PENDLE-LPT 和 0x038c_PENDLE-LPT),并将获得的市场代币存入 Penpie 池子,从而获得相应的存款凭证代币。

Penpie被黑分析:被黑原因+攻击步骤分析

4. 接着,这些新存入 Penpie 池子的市场代币会被当作计算出来的奖励,随后通过 Rewarder 合约的 queueNewRewards 函数将这些代币转移至该合约。

Penpie被黑分析:被黑原因+攻击步骤分析

由于 0x5b6c_PENDLE-LPT 市场中仅攻击者一人存款,因此可以立即调用 MasterPenpie 合约的 multiclaim 函数,提取Rewarder 合约中的这部分 LPT 代币。

Penpie被黑分析:被黑原因+攻击步骤分析

5. 最后,攻击者通过 PendleMarketDepositHelper 合约的 withdrawMarket 函数燃烧在第三步获取的存款凭证 PRT,赎回市场代币,并将这些市场代币连同上一步中提取的奖励一同移除流动性,最终获取基础资产代币(agETH 和 rswETH),实现获利。

Penpie被黑分析:被黑原因+攻击步骤分析

总结

此次安全事件暴露了 Penpie 在市场注册环节存在校验不足的问题,过度依赖 Pendle Finance 的市场创建逻辑,导致攻击者能够通过恶意合约控制奖励分配机制,从而获得超额奖励。慢雾安全团队建议项目方在注册市场时,增加严格的白名单验证机制,确保只有经过验证的市场才能被接受。此外,对于涉及外部合约调用的关键业务逻辑,应当加强审计与安全测试,避免再次发生类似事件。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6021

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

777

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1041

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1058

2024.03.01

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

977

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

36

2025.10.17

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

0

2025.12.24

php框架基础知识汇总
php框架基础知识汇总

php框架是构建web应用程序的架构,提供工具和功能,以简化开发过程。选择合适的框架取决于项目需求和技能水平。实战案例展示了使用laravel构建博客的步骤,包括安装、创建模型、定义路由、编写控制器和呈现视图。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.24

Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Redis+MySQL数据库面试教程
Redis+MySQL数据库面试教程

共72课时 | 6.1万人学习

JavaScript基础精讲视频教程
JavaScript基础精讲视频教程

共36课时 | 7.9万人学习

Vue.js 开发基础教程
Vue.js 开发基础教程

共33课时 | 7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号