首页 > 其他分享 >【漏洞分析】HPAY 攻击事件分析

【漏洞分析】HPAY 攻击事件分析

时间:2022-11-09 11:11:06浏览次数:73  
标签:分析 uint256 MintableAutoCompundRelockBonus sol 漏洞 fakeToken HPAY rewardsToken

背景

造成本次攻击的原因是关键函数的鉴权不当,使得任意用户可以设置关键的变量值,从而导致攻击的发生。

被攻击合约:https://www.bscscan.com/address/0xe9bc03ef08e991a99f1bd095a8590499931dcc30

合约目录:

contract
├─autocompound
│      AutocompundStaking.sol
│
├─base
│      BaseStaking.sol				// stake 和 withdraw
│      MintableSupplyStaking.sol
│      TaxedStaking.sol
│
├─lib
│      StakingUtils.sol
│
├─presets
│      MintableAutoCompundRelockBonus.sol	// 被攻击合约
│
└─timelock
        FixedTimeLockStaking.sol
        RelockBonusStaking.sol
        StaticFixedTimeLockStaking.sol

更多信息: DeFi Hacks Analysis@Sun @XREX security team

漏洞分析

image

MintableAutoCompundRelockBonus.setToken 函数功能权限设置不当,任意用户可以修改结构体 configuration 中的 stakingTokenrewardsToken 参数。

struct StakingConfiguration {
    uint256 rewardRate;
    uint256 startTime;
    uint256 minStake;
    uint256 maxStake;
    ERC20 stakingToken;
    ERC20 rewardsToken;
}

攻击过程

  1. 创建一个 fakeToken

  2. 调用 setToken 函数将 stakingTokenrewardsToken 设为攻击者创建的 fakeToken

    image

  3. 调用 stake 函数,向 MintableAutoCompundRelockBonus 合约转入 fakeToken;。此时 _balances[msg.sender] 将会记录攻击者存入的 fakeToken 数量;

    image

  4. 调用 setToken 函数将 stakingTokenrewardsToken 设为 HPAY

  5. 调用 withdraw 函数,从 MintableAutoCompundRelockBonus 合约转出 HPAY 。此时合约根据先前步骤 3 中存入 fakeToken 所记录的 _balances[msg.sender] 进行提款操作,实际提出的是 HPAY

    image

后记

好了,漏洞很简单是吧。那不重要,随它吧。最近这段时间没什么干劲,十一月中旬了,还没拿到 offer,还没拿到 offer,还没拿到 offer。什么都没确定,什么都说不准。寒气元年的应届毕业生,躺在砧板上。可以确定的是我已经厌倦了当前的状态了,我的热情也将要燃烧殆尽了。这好像也不重要,随它吧。摆!

标签:分析,uint256,MintableAutoCompundRelockBonus,sol,漏洞,fakeToken,HPAY,rewardsToken
From: https://www.cnblogs.com/ACaiGarden/p/16872933.html

相关文章

  • 技术分析可靠吗
    ——这是第60篇文章去年我在刚进入股市的时候,首先了解的就是技术分析,比如什么是K线图、开盘价、量比、委比等,之后学习MACD、KDJ、WR等技术分析。作为一个资深理工男,进入一......
  • 学习笔记-ThinkPHP 之 SQLI审计分析(三)
    ThinkPHP之SQLI审计分析(三)Time:9-23影响版本:ThinkPHP=5.1.22Payload:/public/index.php/index/index?orderby[id`|updatexml(1,concat(0x7,user(),0x7e),1)%23]=1......
  • tempdb日志文件暴增分析
    背景某医院信息科接到CIS系统磁盘空间不足告警,通过排查发现tempdb的日志文件暴增,已经涨到了130G左右,并且还在持续增长中。需要我们紧急排查原因。现象登陆到服务器里,确......
  • 学习笔记-ThinkPHP5之SQLI审计分析(二)
    ThinkPHP之SQLI审计分析(二)Time:9-3影响版本:ThinkPHP=5.0.10Payload:/public/index.php/index/index?username[0]=notlike&username[1][0]=&username[1][1]=&userna......
  • Linux 升级sudo到 1.9.12p1,解决漏洞CVE-2022-43995
    一、查看sudo版本sudo-V二、下载最新版本到服务器并解压wgethttps://www.sudo.ws/dist/sudo-1.9.12p1.tar.gz&&tar-zxvfsudo-1.9.12p1.tar.gz三、安装1、执行......
  • 学习笔记-ThinkPHP5之SQLI审计分析(一)
    ThinkPHP5之SQLI审计分析(一)Time:8-31影响版本:5.0.13<=ThinkPHP<=5.0.15、5.1.0<=ThinkPHP<=5.1.5Payload:/public/index.php/index/index?username[0]=inc&username[1]=......
  • 利用python数据分析
    利用python进行数据分析本书由Pythonpandas项目创始人WesMcKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对P......
  • RISC- Compiler Reordering- template-compiler分析
    RISC-CompilerReordering-template-compiler分析参考文献链接https://mp.weixin.qq.com/s/0O7BFr6Jh1JTuK7d-icRsAhttps://mp.weixin.qq.com/s/ZLS317bjT3teuzE_ELpg......
  • 数字地面模型|水文分析
    目录一、实验目的和要求二、实验内容和步骤4.1汇水网络提取4.1.1洼地填充4.1.2计算水流方向4.1.3计算汇流累积量4.1.4汇水网络分级4.1.5建立汇水网络连接4.2流域分......
  • 如何进行需求分析?
    转载:https://www.cnblogs.com/imyalost/p/16826715.html这篇文章是软件工程系列知识总结的第四篇,前面的几篇文章聊了软件工程的基础理论和项目管理相关的知识。这篇文章,......