【漏洞分析】HPAY 攻击事件分析
背景
造成本次攻击的原因是关键函数的鉴权不当,使得任意用户可以设置关键的变量值,从而导致攻击的发生。
被攻击合约: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
漏洞分析

MintableAutoCompundRelockBonus.setToken 函数功能权限设置不当,任意用户可以修改结构体 configuration 中的 stakingToken 与 rewardsToken 参数。
struct StakingConfiguration {
uint256 rewardRate;
uint256 startTime;
uint256 minStake;
uint256 maxStake;
ERC20 stakingToken;
ERC20 rewardsToken;
}
攻击过程
创建一个
fakeToken;调用
setToken函数将stakingToken与rewardsToken设为攻击者创建的fakeToken;
调用
stake函数,向MintableAutoCompundRelockBonus合约转入fakeToken;。此时_balances[msg.sender]将会记录攻击者存入的fakeToken数量;
调用
setToken函数将stakingToken与rewardsToken设为HPAY;调用
withdraw函数,从MintableAutoCompundRelockBonus合约转出HPAY。此时合约根据先前步骤3中存入fakeToken所记录的_balances[msg.sender]进行提款操作,实际提出的是HPAY。
后记
好了,漏洞很简单是吧。那不重要,随它吧。最近这段时间没什么干劲,十一月中旬了,还没拿到 offer,还没拿到 offer,还没拿到 offer。什么都没确定,什么都说不准。寒气元年的应届毕业生,躺在砧板上。
【漏洞分析】HPAY 攻击事件分析的更多相关文章
- 【漏洞复现】Paraluni 安全事件分析及复现
Paraluni 被黑分析 前言 Paraluni (平行宇宙)是新加坡 Parallel Universe 基金会发布的一个 基于币安智能链的 DeFi 项目,更多相关内容见此处.在 2022 年 ...
- 【漏洞分析】KaoyaSwap 安全事件分析
相关信息 KaoyaSwap 是 BSC 链上的一个自动做市商 AMM.然后,现在他们的官网 https://www.kaoyaswap.com/ 已经打不开了(如果我打开方式没错的话).所以就直接进 ...
- 007_ip统计及攻击ip分析
线上经常有被扫描的DDoS攻击事件,需要集合日志进行分析,这里有两种方法,分别是通过shell和python的方式. 一.shell '''<1>shell一句命令分析 http://bl ...
- Log4shell漏洞研究及其挖矿案例分析
本文首发于云影实验室,为本人创作,现转载到个人博客,记录一下. 原文链接:https://mp.weixin.qq.com/s/O2xHr2OEHiga-qTnbWTxQg Apache Log4j是 ...
- 【APT】Hades APT组织针对乌克兰发起网络攻击事件分析
背景 Hades一个充满神秘色彩的APT组织,该组织因为2017年12月22日针对韩国平昌冬奥会的攻击活动被首次发现,后来卡巴斯基将该次事件的攻击组织命名为Hades.但是该攻击组织的归属问题却一直未 ...
- 从源码的角度分析ViewGruop的事件分发
从源码的角度分析ViewGruop的事件分发. 首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别? 顾名思义,ViewGroup就是一组View的集合,它包含很多的子View ...
- OneAlert 入门(三)——事件分析
OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.有了 OneAlert,你可以更快更合理地为事件划分 ...
- OneAlert 入门(二)——事件分析
OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.有了 OneAlert,你可以更快更合理地为事件划分 ...
- 跨浏览器resize事件分析
resize事件 原生事件分析 window一次resize事件: IE7 触发3次, IE8 触发2次, IE9 触发1次, IE10 触发1次 Chrome 触发1次 FF 触发2次 Opera ...
- GridView事件分析
GridView事件分析 (转) P1默认数据绑定过程 编号 事件名称 作用 E1 DataBinding 数据绑定之前触发,在这个事件之前(第一次生成GridView),GridView不存在行数据 ...
随机推荐
- Access文件清理占用内存
1.用access打开access.accdb文件 2.找到数据库工具的压缩和修复数据库,单击就行 3.数据库文件成功便成500K内存占用
- VS 2020制作安装包
VS制作安装包的一般步骤. 一·新建项目 (1)新建 (2)界面跳转 二·添加引用 (1)添加卸载程序 1.在'C:WINDOWSsystem32'路径下,找到msiexec.exe . 2.将msi ...
- 驾考宝典携手HMS Core统一扫码服务,构建复杂场景中的流畅扫码体验
"驾考宝典"是一款颇具人气的互联网综合驾照考试学习应用,通过强大的驾考功能,在手机移动端为学车学员提供从报名.学习到拿本的全方位驾考服务.作为一个专业的驾培平台,"驾考宝 ...
- 你真会判断DataGuard的延迟吗?
这是一个比较细节的知识点,但必须要理解这个才能准确判断Oracle ADG的延迟情况. 以前做运维工作时,记得是要同时重点关注v$dataguard_stats视图中的几个字段的值,分别是:NAME. ...
- openEuler20.03操作系统上安装部署MogDB2.1.1
openEuler20.03 操作系统上安装部署 MogDB2.1.1 本文出处:https://www.modb.pro/db/378319 openEuler 操作系统上安装 mogdb: 下载 ...
- Spring Cloud Stream 源码解析
Spring Cloud Stream 是一个消息驱动微服务的框架. 应用程序通过inputs 或者outputs 来与 Spring Cloud Stream 中binder 交互,通过我们配置 ...
- redis 简单整理——哨兵部署业务图[二十九]
前言 简单介绍一下哨兵的部署业务图,非部署步骤. 正文 看一下部署的拓扑图: 然后这里用docker 来部署一下哨兵模式. 搭建一主二从. version: '3.7' services: maste ...
- locust分布式压测的Step Load及no web模式下的报表自动生成
Running Locust in Step Load ModeIf you want to monitor your service performance with different user ...
- 中国大陆地区维护的Linux操作系统
Linux开源生态丰富,中国大陆地区基于CentOS停服,依托阿里云.腾讯云.华为云三大私营企业,相继发布了自己的开源Linux定制版,很高兴的是他们只是改个名字并没有选择闭门造车,只是官网还是很不耻 ...
- Java Map中那些巧妙的设计
简介: 他山之石可以攻玉,这些巧妙的设计思想非常有借鉴价值,可谓是最佳实践.然而,大多数有关Java Map原理的科普类文章都是专注于"点",并没有连成"线", ...