avatar
Articles
109
Tags
10
Categories
0

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

何方圜的博客

capture the ether
Created2024-10-30
对于随机数,来实现一个更好的理解。 math1第一个很简单,答案直接告诉你了,输入即可 2第二个,暴力破解,关键就是uint8,一个字节的符号,范围0-127,直接暴力破解,循环 3第三个,有一些拆分,由于哈希计算的是当前的时间戳,所以我们直接引用它的计算哈希的表达式就行了,写一个攻击合约,在同一笔交易中进行就可以了 4第四个,就要使用控制台了,查询当前的密码,然后输入就可以了
CTF-Extractoor
Created2024-10-28
CTF-Etractoor题目源代码:点击 题目要求:已经启动了一场荷兰拍卖,以出售 1_000_000 个 FARM 代币。到目前为止,一个 degen 已经投入了 900 ETH。 您的任务是从 DutchAuction 合约中窃取至少 90% 的 ETH。 这次合约就只有一个,实现的是荷兰拍卖,我们要获取eth,所以我们就先看合约中,那个地方可以获得eth,发现commitETH合约中,能够返回eth, function commitEth(address payable _beneficiary) public payable nonReentrant { // Get ETH able to be committed uint256 ethToTransfer = calculateCommitment(msg.value); /// @notice Accept ETH Payments. uint256 ethToRefund = msg.value - ethToTransfer; if (ethToTran ...
CTF-malleable
Created2024-10-28
CTF-malleable题目源代码:点击 题目要求是:您一直在黑暗的森林中嗅探,并发现了 TreasureVault 合同。它需要合约所有者的验证签名才能提取选定数量的 ETH。 您已经记录了用户在之前的 tx 中用于提取一些 ETH 的签名。 耗尽剩余的合约资金。 首先先里了解一下签名,这是我有学到的一个新知识。 签名结构v、r 和 s 是以太坊签名的三个组成部分。签名用于验证消息的来源和内容。v 是恢复标识符,通常为 27 或 28,表示签名的版本。r 和 s 是签名的输出,用于确保消息未被篡改。 签名的生成签名包含三个部分:r、s 和 v。r 和 s 是椭圆曲线的点,而 v 表示恢复标识符。计算 s:当生成签名时,消息哈希(通常是交易或信息的哈希)会被用于计算 r 和 s。签名的 s 值通常会在 0 到曲线的参数 n 之间,因此在椭圆曲线中,s 值是可以被认为是模反的。攻击者如何计算 s 模反性:在椭圆曲线中,存在一个性质,允许将 s 值“反转”。具体来说,对于一个有效的 s,存在另一个有效的 s_,使得 s + s_ ≡ n(模 n),其中 n 是椭圆曲线的一个参数。因此,攻 ...
CTF-Side-Entrance
Created2024-10-28
CTF-Side-Entrance题目源代码:点击 题目要求:有一个 CallOptions 合约,允许用户创建备兑 wETH-USDC 看涨期权。 他们甚至提供了 functionality 允许用户通过使用 Uniswap 闪电贷在没有任何资金的情况下执行他们购买的期权。 您的任务是窃取至少 90k USDC。您开始没有资金。 断更中,关于闪电贷加流动性的题真的很难,准备把uinswap家族学完了再来解题。
CTF-safu-swapper
Created2024-10-27
CTF-safu-swapper题目源代码:点击 题目要求:还是获得pool池的全部代币 这题合约,有俩个,一个主要实现计算,一个主要实现流动性池,首先主要就是看合约流动性提供者,怎样改变流动性,是否有漏洞,果然被发现在移除流动性,发现使用的是 uint amount = IERC20(token).balanceOf(pool); return (amount.mul(units)).div(totalSupply); 而我们在Safupool合约中,并没有发现能改变 baseAmount,tokenAmount,换句话来说,就是在我们以transfer转入代币时合约不会更新baseAmount,tokenAmount,实际上合约是通过 uint amount = IERC20(token).balanceOf(pool);来计算份额,pool会认为已经收到了转账。而增加流动性是: function addLiquidity(uint256 _baseAmount, uint256 _tokenAmount) public returns (uint liquidityUnits ...
ERC4626
Created2024-10-27
ERC4626含义ERC-4626 是优化和统一收益资金库技术参数的标准。 它为表示单个底层 ERC-20 代币的份额的代币化收益资金库提供标准应用程序接口。 ERC-4626 还概述了使用 ERC-20 的代币化资金库的可选扩展,提供存款、提取代币和读取余额的基本功能。 它主要是运用在收益金库中 定义asset:由 Vault 管理的基础 Token。 具有由相应的 EIP-20 合约定义的单位。share:Vault 的 token。具有标的资产比率 在 Mint / Deposit / Withdraw/redeem (由 Vault 定义) 时兑换。fee:Vault 向用户收取的资产或份额数量。可以存在费用 存款、收益、AUM、提款或 Vault 规定的任何其他内容。滑点:广告股价与经济现实之间的任何差异 存款到金库或从金库取款,不计入费用。 功能asset :function asset() public view returns (address assetTokenAddress)函数返回用于资金库记账,存款,取款的带代币地址。 total ...
CTF-Flash-Loaner
Created2024-10-27
CTF-Flash-Loaner题目源码:点击 题目要求:FlashLoaner 合约接受用户的资金以促进闪电贷,其中他们收取少量费用。这笔费用作为收益提供给储户。 您的任务是从该合约中抽走 99%+ 的用户资金。您开始时没有资金。 这题看起来就是很闪电贷。但是阅读完后,并没有发现一些漏洞,突破口就是这个代码: IFlashCallback(msg.sender).flashCallback(fee, data);可是我们的回执函数能做些什么呢,除了还款我想不到其他方向了 再次审阅合约,发现这个闪电贷是继承ERC4626合约的,意味着它也可以实现存取功能,所以思路就打开了,首先借入一些代币,在调用deposit函数,存入闪电贷中,满足还款条件,然后再执行withdraw函数,又将代币撤回 攻击合约: //SPDX-License-Identifier: MIT pragma solidity^0.8.17; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface IUniswapV2 ...
CEXISWAP攻击事件分析
Created2024-10-27
攻击介绍cexiswap被黑客攻击,黑客从中盗取了3w的USDT。(CEXISWAP是一个去中心化的多链交易所,通过贸易管道技术在DEX和CEX之间桥接流动性) TX:0xede72a74d8398875b42d92c550539d72c830d3c3271a7641ee1843dc105de59e 攻击分析我们通过phalcon来看。攻击合约直接调用受害者的initialize(),使自己成为了admin,再调用受害者的upgradeToAndCall(),再upgradeToAndCall()中受害者再次delegatecall攻击合约的0x1de24bbf函数。 很明显,受害者为对initialize()进行访问限制,导致被攻击。 POC //SPDX-License-Identifier: UNLICENSEDpragma solidity ^0.8.10;import"forge-std/Test.sol";import"./interface.sol";// Attacker : https://etherscan.io/addres ...
CTF-bonding-curve
Created2024-10-27
CTF-bonding-curve题目码源:点击 题目要求:他们即将推出的游戏发布了两个代币合同:EMN和TOKEN,它们允许你根据各自的粘合曲线进行铸造。 DAI 用于铸造 EMN,EMN 用于铸造 TOKEN。 您的任务是窃取至少 50,000 个 DAI。您开始时没有token。 这次感觉后面的题目就上难度了,粘合曲线就是一个新知识了。 首先这个合约这个合约有点多,慢慢来分析,BancorBondingCurve合约实现了一个关键的债务曲线,数学知识很多,了解就行。EminenceCurrency合约实现了EMN->TOkEN,买入token,消耗EMN。EminenceCurrencyBase合约实现了DAI->EMN,买入EMN,消耗DAI,EminenceCurrencyHepler合约,就是对债务曲线的实现。 梳理完后,就是要获得DAI代币,而我们又没有钱,所以就只能借,那就是闪电贷的实现,这道题很容易想到套利,那么如何在买卖中获得利润,就是我们要实现了的 在EminenceCurrencyBase合约看到买EMN的函数 function buy(uint _ ...
CTF-governance-shenamigans
Created2024-10-25
CTF-governance-shenamigans题目源码:点击 要求是;NotSushiToken 治理代币合约已经上线,旨在决定谁是最佳寿司厨师。谁不想要这样的荣耀呢?该合约只允许 WLed 地址投票。幸运的是,你的 Sybil 攻击让你获得了 3 个可以投票的 WLed 地址。你的目标是获得最多的委托投票,成为真正的寿司之王。你手中有 500 个代币,而你的竞争对手有 2000 个。 从题目中就可以得到一点方向,就是有3个可以投票的地址,说明我们肯定要运用起来 整个合约的逻辑就是委托投票,那么如果,我们将原有的500 个代币,委托给那3个地址,给我们投票,那么我们不就有很多票了吗 看向代码,允许我们这么做吗 function _delegate(address delegator, address delegatee) internal { address currentDelegate = _delegates[delegator]; uint256 delegatorBalance = balanceOf(delegator ...
1…567…11
avatar
何方圜
夫孰异道而相安
Articles
109
Tags
10
Categories
0
Follow Me
Announcement
CTF的更新
Recent Post
move 学习2025-07-28
Notional Exponent 审计2025-07-28
GMX协议遭受重入攻击损失4200万美美金2025-07-11
关于OPE2025-06-19
sherlock-S-locker System2025-06-17
Tags
test CTF 协议 课程学习 Solana 审计报告 题解 基本知识 链接 攻击事件分析
Archives
  • 七月 20253
  • 六月 20257
  • 五月 20252
  • 四月 20252
  • 三月 20252
  • 十二月 202411
  • 十一月 202421
  • 十月 202439
Info
Article :
109
UV :
PV :
Last Update :
©2020 - 2025 By 何方圜
Framework Hexo|Theme Butterfly