智能合约安全 - 常见漏洞(第四篇)
在研究区块链工具时,我们了解到一款好用的安全分析工具MetaDock。它通过非常简洁的方式帮助我们分析资金流向并提供了适当的风险提示。
概述本文聚焦如何写出更加健壮的代码,从变量、结构体、函数、修饰器、代码规范、外部调用、静态调用、事件、合约、项目整体等给出分析视角,供开发着参考,从而写出更加优质的代码。
学习和梳理近年的DeFi攻击事件。
可以销毁任意用户的tcrToken代币?听起来好像是损人不利已的鸡肋漏洞,黑客是如何搞到63.9万的USDT的呢?
攻击步骤描述,深入分析
用rust开始eth, ethers-rs,打开钱包,签个名。
在合约代码中,最常用的是使用msg.sender来检查授权,但有时由于有些程序员不熟悉tx.origin和msg.sender的区别,如果使用了tx.origin可能导致合约的安全问题。黑客最典型的攻击场景是利用tx.origin的代码问题常与钓鱼攻击相结合的组合拳的方式进行攻击。
tx.origin的代码问题常与钓鱼攻击相结合的组合拳
上篇文章中我们了解了什么是 delegatecall 函数以及一个基础的漏洞,这篇文章的目的是加深一下大家对 delegatecall 的印象并带大家一起去玩点刺激的,拿下一个进阶版的漏洞合约。
所有存储在区块链上都是公开可见的,包括合约的私有状态变量!所以不要在区块链上存储密码和私钥,而且对于确实需要存储的敏感数据尽量使用hash比对的存储密文hash。通过本文可以理解合约数据的存储,并学会访问合约的状态变量数据。