【Web3安全—区块链安全】
文章平均质量分 85
本专栏主要系统性的介绍区块链安全系列内容,包括:智能合约审计、公链审计、交易所安全、钱包安全等领域的知识内容
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
FLy_鹏程万里
国内网络安全研究员,专注于Web渗透、移动安全、代码审计、应急响应、内网渗透、区块链安全、云安全等研究方向,擅长渗透测试、红蓝对抗、内网渗透、云安全、区块链安全。
展开
-
【ERC20安全审计】——33、变量覆盖攻击
随着区块链技术的不断发展,智能合约作为其重要的应用之一,已经被广泛应用于各种领域,但是智能合约的安全问题一直备受关注,其中变量覆盖攻击是一种常见的攻击方式,本文将详细介绍变量覆盖攻击的原理、攻击方式以及如何避免该攻击,希望能够帮助读者更好地理解智能合约安全问题并提高其安全意识。原创 2024-08-23 10:16:02 · 265 阅读 · 0 评论 -
【ERC20安全审计】——32、合约权限校验错误
随着区块链技术的不断发展,智能合约作为其重要的应用之一,已经被广泛应用于各种领域,但是智能合约的安全问题一直备受关注,其中变量覆盖攻击是一种常见的攻击方式,本文将详细介绍变量覆盖攻击的原理、攻击方式以及如何避免该攻击,希望能够帮助读者更好地理解智能合约安全问题并提高其安全意识。原创 2024-08-06 09:41:55 · 141 阅读 · 0 评论 -
【ERC20安全审计】——31、合约权限校验错误
tx.origin是Solidity的一个全局变量,它遍历整个调用栈并返回最初发送调用(或事务)的帐户的地址,在智能合约中使用此变量进行身份验证可能会使合约受到类似网络钓鱼的攻击合约中的selfdestruct函数用于自毁操作,如果没有绝对必要可以考虑删除此功能,如果存在该功能,则建议试试多重签名方案,以便多方批准后才可以执行自毁操作//ecrecover接口,利用椭圆曲线签名恢复与公钥相关的地址,错误返回零。if(_from!...原创 2024-08-06 09:29:23 · 83 阅读 · 0 评论 -
【ERC20安全审计】——30、合约检测绕过漏洞刨析
智能合约是区块链技术的重要应用之一,它能够实现去中心化的交易和智能化的合约执行,然而智能合约安全问题一直是困扰区块链行业的一个难题,本篇文章我们将主要介绍在合约中对于合约地址检查的方法以及其绕过方式,希望能够为读者提供有益的参考和借鉴。原创 2024-08-05 15:49:24 · 78 阅读 · 0 评论 -
【ERC20安全审计】——29、算术精度漏洞刨析
Solidity作为一门编程语言也具备和普通编程语言相似的数据结构设计,比如:变量、常量、函数、数组、函数、结构体等等,但是在使用Solidity开发智能合约时,你会发现Solidity和普通编程语言有一个较大的区别——Solidity没有浮点型,且Solidity所有的数值运算结果都只会是整数,不会出现小数的情况,同时也不允许定义小数类型数据。原创 2024-08-05 15:44:43 · 43 阅读 · 0 评论 -
【ERC20安全审计】——27、算术精度问题漏洞刨析
Solidity作为一门编程语言也具备和普通编程语言相似的数据结构设计,比如:变量、常量、函数、数组、函数、结构体等等,但是在使用Solidity开发智能合约时,你会发现Solidity和普通编程语言有一个较大的区别——Solidity没有浮点型,且Solidity所有的数值运算结果都只会是整数,不会出现小数的情况,同时也不允许定义小数类型数据。原创 2024-08-05 15:36:56 · 63 阅读 · 0 评论 -
【ERC20安全审计】——28、evilReflex攻击漏洞刨析
在这篇文章中,我们对曾经出现过的一种叫做evilReflex的安全漏洞进行分析研究,攻击者可以通过该漏洞将存在evilReflex漏洞的合约中的任意数量的token转移到任意地址。原创 2024-08-05 15:29:18 · 181 阅读 · 0 评论 -
【ERC20安全审计】——27、变量歧义命名漏洞刨析
随着区块链技术的发展,智能合约作为其中的重要组成部分正在被越来越多的人所关注和应用,然而智能合约的安全问题也逐渐浮出水面,其中笔误安全问题是一种常见的智能合约安全问题,它可能会导致智能合约的执行结果与预期不符从而引发一系列风险和损失,本文将深入探讨笔误安全问题的成因、影响和防范措施,希望能够为读者提供有益的参考和借鉴构造函数:智能合约初期合约名称和构造函数名称一致,如果构造函数名称和合约名称不一致将导致其变为一个public的函数被任意用户调用,例如:大小写不相同、构造函数后面加s等。原创 2024-08-05 15:17:14 · 49 阅读 · 0 评论 -
【ERC20安全审计】——26、变量歧义命名漏洞刨析
Solidity允许在继承时对状态变量进行歧义命名,定义有变量x的合约A可以继承同样含有状态变量x的合约B,这将导致两个单独版本的x,一个可以从合约A访问, 而另一个则需要从合约B访问,在更复杂的合约系统中,这种情况可能不会引起注意, 并随后导致严重的安全问题。原创 2024-08-05 15:12:16 · 52 阅读 · 0 评论 -
【ERC20安全审计】——25、短地址类攻击漏洞刨析
智能合约是区块链技术中的重要组成部分,它能够自动执行合约条款,实现去中心化的交易和资产管理,然而智能合约也存在着安全漏洞,其中之一就是短地址攻击。短地址攻击是指攻击者通过构造特定的交易使得智能合约无法正确处理地址,从而导致资产被盗,本文将深入探讨短地址攻击的原理和防范措施,帮助读者更好地理解智能合约安全问题。原创 2024-08-05 15:05:47 · 52 阅读 · 0 评论 -
【ERC20安全审计】——24、拒绝服务攻击漏洞刨析
智能合约是区块链技术的核心应用之一,它能够自动执行合约中的交易和操作从而实现去中心化的交易和应用,然而智能合约也存在着一些安全风险,其中之一就是DOS攻击,该类攻击主要通过占用合约的计算资源或利用合约的业务逻辑设计缺陷使合约无法正常运行或响应缓慢,从而影响交易的执行和系统的稳定性,本文将详细介绍智能合约中的DOS攻击原理、实例代码和修复代码,帮助读者了解如何防范和避免这种攻击方式以确保智能合约的安全和稳定性。原创 2024-08-05 14:39:04 · 56 阅读 · 0 评论 -
【ERC20安全审计】——23、条件竞争漏洞刨析
以太坊节点汇集交易并将其形成块,一旦矿工解决了共识机制那么这些交易就被认为是有效的,解决该区块的矿工也会选择来自该矿池的哪些交易将包含在该区块中,至于优先选取那些交易打包通常是由gasPrice交易决定的,在这里有一个潜在的攻击媒介就是攻击者可以观察事务池中是否存在可能包含问题解决方案的事务,如果存在那么可以通过修改或撤销攻击者的权限或更改合约中的对攻击者不利的状态,从这个事务中获取数据并创建一个更高级别的事务gasPrice并在原始之前将其交易包含在一个区块中,从而获利。原创 2024-08-05 14:07:10 · 48 阅读 · 0 评论 -
【ERC20安全审计】——22、错误使用随机数漏洞
智能合约是区块链技术的重要应用之一,它可以在不需要第三方信任机构的情况下实现自动化的合约执行,然而智能合约的安全性一直是人们关注的焦点之一,本文将介绍智能合约中常见的错误使用随机数的问题,探讨其产生的原因以及如何避免这些问题,希望本文能够对智能合约的安全性提高大家的警惕性抽奖:智能合约可以使用随机数来实现公平的抽奖功能游戏:智能合约可以使用随机数来模拟游戏中的随机事件,例如:掷骰子、抽卡等安全性:智能合约可以使用随机数来增加安全性,如在密码学中使用随机数来生成密钥或签名。原创 2024-08-05 14:03:45 · 55 阅读 · 0 评论 -
【ERC20安全审计】——21、返回值未检查漏洞
随着区块链技术的不断发展智能合约已经成为了区块链世界中不可或缺的重要组成部分,智能合约的安全问题一直备受关注,其中返回值未检查是一种常见的漏洞类型,本文将从实际案例入手介绍返回值未检查漏洞的危害和防范措施以帮助读者更好地理解智能合约安全问题。原创 2024-08-05 13:59:54 · 35 阅读 · 0 评论 -
【ERC20安全审计】——20、访问控制漏洞挖掘
Solidity编写合约和面向对象编程语言非常相似,我们可以用构造函数(constructor)来初始化合约对象,Solidity中构造函数就是方法名和合约名字相同的函数,创建合约时会调用构造函数对状态变量进行数据初始化操作。构造函数可用的函数类型为public或internal,如果有payable修饰,就只能是public类型。而大部分人的写法都是 public或者不写。不写类型则由函数可见性默认为public类型。同时,如果构造函数带参数,则一定要放在合约下的第一个函数。原创 2024-08-05 13:51:09 · 383 阅读 · 0 评论 -
【ERC20安全审计】——19、重入攻击漏洞挖掘
以太坊智能合约中的函数通过private、internal、public、external等修饰词来限定合约内函数的作用域(内部调用或外部调用),而我们将要介绍的重入漏洞就存在于合约之间的交互过程,常见的合约之间的交互其实也是很多的,例如:向未知逻辑的合约发送Ether,调用外部合约中的函数等,在以上交互过程看似没有什么问题,但潜在的风险点就是外部合约可以接管控制流从而可以实现对合约中不期望的数据进行修改,迫使其执行一些非预期的操作等。原创 2024-08-05 13:39:32 · 392 阅读 · 0 评论 -
【ERC20安全审计】——18、整形溢出漏洞挖掘
整型溢出问题发生的根源还是在于合约的开发者在开发合约时未考虑到“整型溢出”问题,作为审计人员的我们在看到合约时也要保持清醒,对于存在疑惑的地方应该采用“调试、验证”的方法去排除疑虑,而且在审计的过程中也要十分的认真、细心才可以,不要放过任何一个有可能存在问题的地方,例如修饰器/修饰词对应的权限问题、逻辑处理问题等等。原创 2024-08-05 13:26:00 · 179 阅读 · 0 评论 -
【插件使用】——17、MeatMask快速添加各个主链
有时候我们的钱包需要切换各个主网来进行交易,但是如果一个一个去添加会显得很是麻烦,而且中间还得去查每一个主网的地址信息,很是麻烦,本篇文章将介绍如何通过ChainList来快速添加各个主网到你的钱包中去。原创 2024-08-05 13:13:05 · 51 阅读 · 0 评论 -
【插件使用】——16、MeatMask安装使用指南
MetaMask是一个以太坊钱包插件,虽然只能在Chrome浏览器中使用,但作为以太坊钱包的metamask却很受以太坊开发者欢迎,MetaMask除了是一个简单的钱包,它主要卖点是让使用者可以很容易跟以太坊的智能合约互动或者说MetaMask可以用来参加ICO,大家可能会感觉更爽些,跟大部份钱包一样,MetaMask也不会存钱包资料,所有钱包的私钥和密码都由使用者本身持有,就算是MetaMask停止更新,大家也可以用手上的私钥到其他钱包拿回自己的币。原创 2024-08-05 13:09:25 · 57 阅读 · 0 评论 -
【合约协议】——14、合约部署之以太坊合约部署
此部分文章先空着 后面留一个文章来补充。原创 2024-08-05 11:23:26 · 37 阅读 · 0 评论 -
【合约协议】——13、UniSwap V3协议浅析(下)
decreaseLiquidity函数用于缩减流动性。mint函数用于创建一个NFT类的Positon。migrate函数的作用主要就是进行流动性迁移。原创 2024-08-05 11:18:03 · 59 阅读 · 0 评论 -
【合约协议】——12、UniSwap V3协议浅析(中)
在createPool函数中首先会检查tokenA与tokenB是否是同一Token,之后将TokenA与TokenB根据地址进行升序排列,之后检查token0地址是否为空地址,之后根据费率检索TickSpace并检查TickSpace是否为0(构造函数会进行初始化一次),之后检查当前新建的池子是否已经存在,之后通过deploy创建池子,然后新增池子记录,在新增记录时可以看到也提供了反向映射,这样做的好处是在减少后期检索时比较地址的成本,最后通过emit触发池子创建事件。原创 2024-08-05 11:04:51 · 41 阅读 · 0 评论 -
【合约协议】——11、UniSwap V3协议浅析(上)
本篇文章主要对Uniswap V3协议的新特性、工作原理、项目构成、源码实现等部分进行详细解读。Uniswap v1版本于2018年11月面世,其本质上是一个运行在以太坊区块链上的基于"恒定乘积"算法的"自动化流动性"协议,我们可以将其看做是一个建立在以太坊上的去中心化数字货币交易所(DEX),在该交易所上的所有交易(代币互换)都由智能合约来执行且免信任。原创 2024-08-05 10:24:47 · 56 阅读 · 0 评论 -
【合约协议】——9、UniswapV2协议解析(下)
swapExactTokensForETHSupportingFeeOnTransferTokens函数用于使用特定数量的其他token来获取ETH,在这里首先会检索最后一个交易对中的地址是否为WETH,之后将特定数量的其他token转入交易链中的第一个交易对地址,之后使用_swapSupportingFeeOnTransferTokens进行交易操作,之后获取买进的WETH数量,让后校验买进的WETH数量是否大于限定的最小买进的WETH的数量,之后将WETH转换为ETH,之后发送到接收者地址。原创 2024-08-05 10:19:33 · 44 阅读 · 0 评论 -
【合约协议】——8、UniswapV2协议解析(上)
本篇文章主要对Uniswap V2协议的工作原理、项目构成、源码实现等部分进行详细解读Uniswap V2是一个运行在以太坊区块链上的基于"恒定乘积"算法的"自动化流动性"协议,我们可以将其看做是一个建立在以太坊上的去中心化数字货币交易所(DEX),在该交易所上的所有交易(代币互换)都由智能合约来执行且免信任。恒定乘积算法:可以简单的看作"X*Y=K",这里的K(乘积)保持不变,故而称之为恒定乘积算法,其对应的函数是一个反曲线。原创 2024-08-05 09:59:38 · 74 阅读 · 0 评论 -
【合约协议】——7、SushiSwap协议分析(下)
SushiSwap是在UniswapV2协议的基础上进行了拓展,因为其紧急奖励模型更加偏向于用户利益,所以它相较与UniswapV2更容易吸引更多用户参与质押来提供流动性,同时本篇文章也揭示了权限问题、编码逻辑设计所暴露的安全风险问题。漏洞描述:如上面的代码所述,这里的emergencyWithdraw函数用于紧急提款,但是资产的更新位于转账之后,导致存在条件竞争关系。漏洞函数:setMigrator+migrate。解决方案:合理设置owner的权限。解决方案:正确的写法理应如下。原创 2024-08-05 09:46:38 · 43 阅读 · 0 评论 -
【合约协议】——6、SushiSwap协议分析(中)
SushiBar合约的主要作用是抵押SUSHI以获得更多SUSHI,用户可以先抵押Sushi,然后获得xSushi作为回报,然后将其放到xSushi池中,当用户在SushiSwap交易所进行交易时,将收取0.3%的费用,此费用的0.05%以LP令牌的形式添加到SushiBar池中,当奖励合同被调用时(每天最少一次),所有LP代币都将以Sushi的价格出售(在SushiSwap Exchange上), 然后将新购买的SUSHI按比例分配给池中的xSushi持有者,这意味着他们的xSushi现在价值更高。原创 2024-08-05 09:43:59 · 35 阅读 · 0 评论 -
【合约协议】——6、SushiSwap协议分析(上)
SushiSwap是一个分叉自Uniswap的去中心化交易协议,它在交易模式上延续了Uniswap的核心设计——AMM(自动做市商)模型,但与Uniswap不同之处在于SushiSwap增加了经济奖励模型,SushiSwap交易手续费为0.3%,其中0.25%直接分给发给流动性提供,0.05%买成SUSHI并分配给Sushi代币持有者(Uniswap是通过开关模式决定是否将0.05%的手续费给开发者团队),Sushi在每次分发时会预留10%给项目未来开发迭代及安全审计等。原创 2024-08-04 15:25:11 · 426 阅读 · 0 评论 -
【合约协议】——5、ERC-1155标准规范
ERC-20基于ERC-20标准开发的代币合约也被统称为"同质化代币(Fungible token,缩写为FT)",其主要的一个特性就是可以无限细分为10^18份,目前大多数ICO使用的代币都是基于ERC-20开发的代币。ERC-721基于ERC-721标准开发的代币合约被统称为"非同质化代币(Non-Fungible Tokens,缩写为NFT)",ERC-721代币相较于ERC-20代币最大的区别就是不可分割性和唯一性,其Token的最小单位为1,且每个Token对不同的用户都有不同的价值含义。原创 2024-08-04 15:17:30 · 136 阅读 · 1 评论 -
【合约协议】——4、ERC-777标准规范
A用户授权B用户可以操作A用户amount数量的tokenB用户获得A用户的授权之后调用转账函数进行转账常规运营商:一个地址,允许代表另一个地址发送和记录代币默认运营商:一个地址,允许所有代币持有者发送和记录代币。原创 2024-08-04 15:12:10 · 76 阅读 · 0 评论 -
【合约协议】——3、ERC-721标准规范
ERC-721的官方解释是"Non-Fungible Tokens",英文简写为"NFT",可以翻译为不可互换的Tokens,简单地说就是每个Token都是独一无二的且不能互换的,ERC-721的诞生使得数字资产的交易和管理变得更加安全、透明、高效,它的出现也为区块链技术的发展与应用注入了新的活力,成为区块链技术领域的一次重要突破,本文将对ERC-721标准规范进行深入解读,为大家详细介绍它的背景、特点、应用场景等方面的内容,希望能够帮助读者更好地理解和应用这个标准规范。原创 2024-08-04 15:02:23 · 301 阅读 · 0 评论 -
【合约协议】——2、ERC-20标准规范
ERC-20标准规范是以太坊网络上最为流行的代币标准之一,它定义了代币合约的基本功能和接口规范,作为区块链技术的应用之一,代币合约在数字货币、数字资产和去中心化应用中扮演着重要的角色,在这个发展迅速的领域标准化是保证各方协作和互操作性的基础,而ERC-20标准规范的出现为代币合约的标准化提供了一个重要的参考框架,本文将对ERC-20标准规范进行详细介绍帮助读者更好地理解代币合约的基本功能和技术实现。原创 2024-08-04 14:46:32 · 214 阅读 · 0 评论 -
【基础知识】——1、区块链术语名词概览
随着区块链技术的迅速发展,越来越多的人开始关注和研究这一领域,然而对于初学者来说区块链术语和名词繁多、复杂,很容易造成理解上的困惑,因此本文将为大家提供一个全面的区块链术语名词概览以帮助读者更好地理解和掌握区块链技术,无论是对于区块链初学者还是从业人员,本文都能为大家提供一份有用的参考资料。原创 2024-07-03 17:09:54 · 210 阅读 · 0 评论