avatar
Articles
114
Tags
11
Categories
0

Home
Archives
Tags
About
何方圜的博客
Home
Archives
Tags
About

何方圜的博客

sherlock-DODO Cross-Chain DEX
Created2025-06-17
sherlock-DODO Cross-Chain DEX参数没有校验,用户可以伪造ZEVM 合约中的 onCall() 函数接收来自Gateway的 token 和 amount,但没有验证解码后的 MixSwapParams 是否与这些值一致。 具体来说: params.fromToken 完全由用户传入消息决定 params.fromTokenAmount 也是用户可控的 因此攻击者可以: 通过桥接发送一小笔任意代币(如 1 DAI) 在消息中伪造一个大额的 swap 请求,比如用合约中持有的大额WZETA来兑换 USDC 实际 swap 时使用的是合约自己持有的 WZETA 攻击者获得兑换后的 USDC,而合约的 WZETA 被盗 这会导致攻击者可以完全清空合约中持有的高价值代币。 参数没有校验如果发生转移的是原生代币,实际上是没有校验数量是不是准确的 function withdrawToNativeChain( address zrc20, uint256 amount, bytes calldata message) external payab ...
单机版区块链的实现
Created2025-06-16
单机版区块链的实现全部代码都已开源在git上 hyblockchain 前置知识开始之前,首先要了解一些基础知识,这里简单的介绍一下 区块链的结构区块(Block)包含:区块头(Block Header):包含前一个区块哈希、Merkle 根、时间戳、随机数等交易列表(Transactions):每个区块中打包的所有交易链(Chain):每个区块通过 previousHash 指向前一个区块形成链 哈希函数作用:确保数据完整性、防篡改常用:SHA256(Bitcoin)、Keccak256(Ethereum)本实验使用的是SHA256 交易系统 交易结构(Transaction) 发送方地址、接收方地址、金额、签名(可选) 交易池(Mempool):待打包的交易集合 简单账户模型或UTXO模型 账户模型(如 Ethereum):记录每个地址的余额 UTXO 模型(如 Bitcoin):每个未花费输出作为新交易输入 状态树 MPT使用的是key,value来实现 叶子节点:实际存放值的节点分支节点:有16个子节点,用来指向多条路径扩展节点:存储公共前缀,它的下一节点只能是分 ...
sherlock-Usual ETH0
Created2025-06-10
sherlock-Usual ETH0这是一个关于代币质押与兑换的合约 移除某些质押代币后,导致某些函数功能不能使用因为某些函数(swap等)利用的数组来实现历遍质押代币,有些条件判断了质押代币不能为零,如果某些代币被移除后,那么整个函数就会被revert. 精度的问题,四舍五入,向下取整,多层函数实现的向下取整后,又作为分母,导致差值越来越大建议给分母加一消除向下取整 function wadTokenAmountForPrice(uint256 wadStableAmount, uint256 wadPrice, uint8 tokenDecimals) internal pure returns (uint256){+ return Math.mulDiv(wadStableAmount, 10 ** tokenDecimals, wadPrice + 1, Math.Rounding.Floor);- return Math.mulDiv(wadStableAmount, 10 ** tokenDecimals, wadPrice, Ma ...
sherlock-LEND
Created2025-06-04
sherlock-LEND这是一个关于跨链的借贷,那么漏洞点就是在跨链的处理上 高gas费用阻碍从边界用户退出质押原因就是使用数组记录数据,并且没有限制,导致gas线性增加,用户支付不了,退出质押代码漏洞 // 遍历数组确定相关层级变更区间 for (uint256 i = 0; i < userTierHistory.length; i++) { if (userTierHistory[i].timestamp <= fromTime) { currentTier = userTierHistory[i].to; relevantStartIndex = i; } else { break; } } // 计算区间内各层级的利息 for (uint256 i = relevantStartIndex + 1; i < userTierHistory.length; i++) { if (userT ...
使用 Anchor 与 SPL Token Program 交互指南
Created2025-06-01
使用Anchor与SPL Token Program交互指南Anchor 是用来开发 Solana 智能合约的高层开发框架,它基于 Rust,简化了 Solana 原生开发的繁琐流程。SPL 是 Solana Program Library 的缩写,它是Solana官方维护的一套标准智能合约程序集合,用来为 Solana 生态提供各种 基础功能模块,类似于以太坊里的 ERC标准合约。 创建Token Mint首先要了解什么是Mint账户,简单来说,Mint 账户就是某个代币的“发行登记中心”,负责记录这个代币的总发行量、精度、小数位,以及谁有权限铸造(mint)或销毁(burn)它,所以它的结构就非常的清晰了,如下: pub struct Mint { /// 用于铸造新token的可选权限。mint权限只能在mint创建期间提供。 /// 如果没有mint权限,则mint具有固定的供应量,并且无法铸造更多的token。 pub mint_authority: COption<Pubkey>, /// token的总供应量。 ...
code4rena-Kinetiq
Created2025-05-04
高 缓冲区达到最大限额,取消资金大于合约的资金质押协议允许用户质押代币并赚取奖励。当用户希望提取他们的代币时,他们会调用 queueWithdrawal() 来启动提取流程。管理者可以通过调用 cancelWithdrawal() 来取消待处理的提取请求,这会将 KHYPE 代币返还给用户。为了正确完成取消流程,管理者必须调用 redelegateWithdrawnHYPE() 来更新协议状态,包括缓冲区和其他操作。然而,存在一个限制:一旦达到缓冲区阈值,代币会从 EVM 层移动到 L1 spot 余额,但redelegateWithdrawnHYPE()要求 address(this).balance >= cancelledWithdrawalAmount。由于这些转移的资产在合约层面不再可访问,但仍然计入已取消的提取金额中,因此该条件在数学上变得不可能满足。尽管有概念验证(POC),但让我举个例子:质押管理器合约的目标缓冲区为 3 HYPE。Alice、Bob、Sage 和 Tony 各质押了 1 HYPE,这自动达到了目标缓冲区,剩余部分将进入 L1 spot 余额。从 ...
EIP712
Created2025-05-01
EIP712当然!EIP-712 是以太坊的一项标准,它定义了一个结构化的消息签名方案,以便能够安全、标准化地对复杂数据进行签名和验证。简单来说,它是一个用于签名复杂数据结构(如结构化对象、数组、嵌套对象等)并保证其不可篡改的标准。 🌟 EIP-712 概述EIP-712 规范提出了对结构化数据进行签名的方法,解决了以下问题: 避免重放攻击:如果没有结构化数据的签名,可能存在相同的签名被滥用的风险。 易于解析和验证:签名的对象可以被预先约定和验证,避免直接签名原始字节流。 提升用户体验:用户可以明确知道自己签署的内容,减少误签和恶意签名的风险。 🔍 EIP-712 的核心概念EIP-712 通过将数据分为两部分来创建安全的签名: Domain Separator(域分隔符):标识签名数据的来源。通过引入这个“域”概念,可以区分不同的签名场景,防止重放攻击。例如,一个签名用于交易,另一个用于账户管理,它们的域分隔符是不同的,彼此之间互不干扰。 类型哈希:对数据结构的类型进行哈希,确保签名的数据结构不被篡改。 数据结构:EIP-712 签名的数据本身是结构化的,数据包括了 t ...
跨链合约时代:Axelar、Wormhole、Hyperlane 谁能称霸多链通信?
Created2025-04-24
跨链合约时代:Axelar、Wormhole、Hyperlane 谁能称霸多链通信?随着区块链技术的快速发展,跨链通信已经成为了区块链生态系统中的重要组成部分。跨链协议允许不同的区块链之间进行信息传递和资产互操作,从而打破了各个链之间的孤立局面。Axelar、Wormhole 和 Hyperlane 作为三大跨链协议的代表,它们在多链通信的实现上各具特色。那么,谁能称霸跨链合约时代,成为未来的多链通信标准呢? 一、跨链协议的背景随着区块链的多样化发展,去中心化金融(DeFi)、NFT、游戏和其他应用程序已经不再局限于单一链上运行。不同区块链之间的数据和资产流通需求日益增加。然而,不同链之间缺乏统一的通信协议,导致了跨链操作的复杂性和不兼容性。因此,跨链协议应运而生,它们旨在提供链与链之间的高效、安全和可扩展的通信机制。 跨链协议不仅仅是为了解决资产的流动问题,更重要的是推动去中心化应用(DApp)和去中心化自治组织(DAO)等创新模式的实现。 二、Axelar:跨链的互联网Axelar 提供了一个简单、安全且去中心化的跨链解决方案,其目标是成为一个“区块链互联网”。Axelar 使用统 ...
codehawk-Liquidity Management
Created2025-04-18
高 执行逻辑错误的参数漏洞代码: /** * @notice 此函数是提款流程的结束。 * @dev 应更新所有必要的全局状态变量 * * @param withdrawn 从头寸中提取的代币数量 * @param positionClosed 当完全通过提款关闭头寸时为真,否则为假 */ function _handleReturn(uint256 withdrawn, bool positionClosed, bool refundFee) internal { (uint256 depositId) = flowData; uint256 shares = depositInfo[depositId].shares; uint256 amount; if (positionClosed) { amount = collateralToken.balanceOf(address(this)) * shares / totalShares; } else { uint ...
cantina-size Credit
Created2025-03-13
cantina-size Credit使用owner()函数,该合约已经设置了owner为零漏洞代码 function reinitialize() external onlyOwner reinitializer(1_7_0) { // grant `AccessControlUpgradeable` roles to the `Ownable2StepUpgradeable` owner _grantRole(DEFAULT_ADMIN_ROLE, owner()); _grantRole(PAUSER_ROLE, owner()); _grantRole(KEEPER_ROLE, owner()); _grantRole(BORROW_RATE_UPDATER_ROLE, owner()); // transfer `Ownable2StepUpgradeable` ownership to the zero address to keep the state consisten ...
123…12
avatar
何方圜
夫孰异道而相安
Articles
114
Tags
11
Categories
0
Follow Me
Announcement
CTF的更新
Recent Post
Vesting 安全2026-02-25
Liquidation 安全2026-02-25
Crosschain 安全2026-02-25
Uniswap v42025-12-15
MOVE漏洞总结2025-08-29
Tags
攻击事件分析 课程学习 基础知识 CTF 协议 链接 Solana 基本知识 审计报告 test 题解
Archives
  • 二月 20263
  • 十二月 20251
  • 八月 20251
  • 七月 20253
  • 六月 20257
  • 五月 20252
  • 四月 20252
  • 三月 20252
Info
Article :
114
UV :
PV :
Last Update :
©2020 - 2026 By 何方圜
Framework Hexo|Theme Butterfly