BEGO Token 攻击事件分析

0收藏

0点赞

浏览量:471

2022-11-01

举报

 

事件背景

零时科技区块链安全情报平台监控到消息,北京时间2022年10月20日,BSC链上EGO 合约受到黑客攻击,攻击者一次性mint 10,000,000,000,000,000 BEGO 代币,攻击者地址为0xde01f6Ce91E4F4bdB94BB934d30647d72182320F,零时科技安全团队及时对此安全事件进行分析。

 

漏洞核心

BgeoToken.mint函数调用时,会对函数签名进行判断。但函数签名十五r,s,v的值由用户自行传入,并且对于传入需要mint的数量没有限制。

在判断签名的函数中首先执行判断签名的长度,只要三个签名长度相等即可通过验证。第二步进入for循环调用预编译的函数ecrecover返回传入签名者的地址,但是当r的长度为0时for循环会被跳过直接执行后续步骤,第三步根据第二步for循环中计算出的地址判断该地址是否存在,同理,当singers的长度为0时循环被跳过,直接返回true。因此当传入的r,s,v的值全部为空时可以绕过对于签名的判断直接进行铸币操作。

从攻击者传入的数据可知r,s,v的确传入的是空值,成功mint 10,000,000,000,000,000 BEGO代币。

 

总结及建议

此次攻击主要是因为对于函数签名判断不当造成的,函数签名可以由用户自行传入并且没有考虑到签名值为空时不会执行for循环,使得攻击者可以通过不传入r,s,v的值绕过判断,并且在mint函数中没有对于铸币的数量进行限制,使得攻击者可以一次铸造大量代币。

安全建议

建议添加对于签名值为空时的判断,避免通过空的签名绕过检验。

建议项目方上线前进行多次审计,避免出现审计步骤缺失



(来源:安全客)

(原文链接:https://www.anquanke.com/post/id/282010

发表评论

点击排行

钓鱼邮件-如何快速成为钓鱼达人

一、前言在大型企业边界安全做的越来越好的情况下,不管是 APT 攻击还是红蓝对抗演练,钓鱼邮件攻击使用的...

【渗透实战系列】| 1 -一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)

本次渗透实战主要知识点:1.app抓包,寻找后台地址2.上传绕过,上传shell3.回shell地址的分析4.中国蚁剑工...

HTTPS - 如何抓包并破解 HTTPS 加密数据?

HTTPS 在握手过程中,密钥规格变更协议发送之后所有的数据都已经加密了,有些细节也就看不到了,如果常规的...

无线电安全攻防之GPS定位劫持

一、需要硬件设备HackRFHackRF 连接数据线外部时钟模块(TCXO 时钟模块)天线(淘宝套餐中的 700MHz-2700MH...

记一次Fastadmin后台getshell的渗透记录

1.信息搜集先来看看目标站点的各种信息后端PHP,前端使用layui,路由URL规则看起来像ThinkPHP,那自然想到...

华为防火墙实战配置教程,太全了

防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙是系...

ADCS系列之ESC1、ESC8复现

对原理感兴趣的可以去https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf看原文,这里只...

【干货分享】利用MSF上线断网主机的思路分享

潇湘信安 Author 3had0w潇湘信安一个不会编程、挖SRC、代码审计的安全爱好者,主要分享一些安全经验、...

扫描二维码下载APP