-建议在项目开发时选择稳定的技术栈以及对应版本,并对项目进行严格的测试,防止类似风险。
2023 年 Web3 中最常见的 10 个漏洞: 输入验证不正确;计算错误;预言机/价格操纵; 弱访问控制; 重放攻击;舍入误差;重入攻击;抢跑;未初始化的代理;治理攻击。
记一次隐蔽的恶意攻击事件追踪分析
慢雾:起底假充值攻击如何突破交易所的层层防御引言假充值攻击,是指攻击者通过利用交易所在处理充值过程中的漏洞或系统错误,发送伪造的交易信息到交易所钱包地址,这些伪造的交易信息被交易所误认为是真实的充值请求,并将对应的数字资产或货币添加到攻击者的账户中。攻击者利用这种方式,可以获得未经支付的数字资产
ApeDao事件代码复现
BNO事件代码复现
你随身携带的硬件钱包真的安全么?事实上:无论是热钱包还是硬件钱包,你拿到的助记词都是软件通过随机自动帮你生成的。
在 DeFi 合约中,常见模式是Checks-Effects-Interactions(检查-生效-交互)
模式, 不够好,它会让开发者忘记协议的核心不变性。
作者提出了一个新的模式:FREI-PI: 功能检查-生效-交互+协议不变性
,让我们更多关注协议的不变性(安全性)。
本文会涉及到slither中几类call的区别,slither遍历node时的常用的递归框架,以及将这两类知识应用到批量函数调用风险的检测中。
1.理解自杀函数检测自杀函数的风险与应用场景。自杀函数可以做为一种隐藏的transfer的手段。 2.shift汇编函数与其它语言的参数不一致,容易混淆。
Hook 是一个强大功能,可以带来更灵活的组合性。向任何强大的武器一样,使用不当可能会伤害到自己。 当任意调用与 Hook 在一起,更要小心。
09.状态变量覆盖的含义状态变量覆盖是指子类中的状态变量将父类的状态变量进行覆盖,子类和父类使用了相同名称的状态变量。在这种情况下,如果操作子类的状态变量不会修改父类的状态变量,而此时代码的真实意图可能是为了修改父类的状态变量。
1.理解irs与irs_ssa的区别。 2.理解实现ssa时的支配边界的定义。 3.理解Node对象常用的方法。
节点、表达式与IR的是什么样的关系?如何根据代码生如何提取出IR指令?在遍历节点时,有哪些对象经常用到。
Slither基于python开发,它可以无需用户干预的情况下在几秒钟内找到真正的漏洞。它是高度可定制化的,并提供一组API接口来轻松检查和分析Solidity代码。