DLNU25ctf考核wp
考核wp[toc] Pigeon合约这个题需要我们满足:盗走合约余额,并且使我们所有。 逻辑关键点在于task函数、flyway函数以及promotion函数,我们需要通过调用task函数积累任务点数,任务点数可以晋升。再加上你随时可以飞走,而晋升是需要扣掉你的余额的,但是飞走可以让你带走余额。所以我们可以先成为鸽子,薅空投可以获得4余额,然后调用2次task函数,一次4,两次8 ,然后飞走,晋升中级鸽子;再调用task,一次4 三次12,可以晋升到高级鸽子。这样可以无损晋升。 合约突破点在晋升时,我们的名字拥有一次重命名的机会,而名字是通过codename = keccak256(abi.encodePacked("code",...
VScode快捷键
VS code 快捷键: alt + shift + f 格式化代码 alt + shift + a 单块注释 alt + 鼠标左键,多出光标同时操作 ctrl + shift + L 重命名变量 alt + shift + P 打开 VScode 的命令面板 ctrl + shift + V 打开 markdown 预览(需要装插件) alt + Z 自动换行 alt + <- 快速回到上次编辑的位置 alt + -> 快速回到下次编辑的位置 基本编辑 复制行向下:Shift + Alt + ↓ 复制行向上:Shift + Alt + ↑ 移动行向下:Alt + ↓ 移动行向上:Alt + ↑ 删除行:Ctrl + Shift + K 插入行下方:Ctrl + Enter 插入行上方:Ctrl + Shift + Enter 跳到行首/行尾:Home / End 跳到文件开头/结尾:Ctrl + Home / Ctrl + End 注释/取消注释当前行:Ctrl + / 块注释:Shift + Alt +...
倒带时间
倒带时间这题主要考察的就是delegatecall数据存储,即委托调用目标合约时需要将数据类型存储顺序一一对应,这题的不同点是需要注意常数不占用数据存储槽,是直接十六进制编码。还有就是注意动态数组的声明和赋值方式。具体步骤就是先调用setZDriveowner函数把合约owner变成我们,再就是更改时间,只需要同名函数和参数即可,因为目标合约的time都是public关键字修饰,所以可以直接赋值。 目标合约: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128//...
基础漏洞目录
基础漏洞 重入漏洞(Reentrancy) 访问权限漏洞 不可预期的 Ether 类型转换遇到的问题 私有变量访问 合约插槽(slot)布局,数组,动态数组,映射实际存储插槽位置 整数溢出(Overflow) 坏随机数(Bad Random) tx.origin 钓鱼 EOA 检测绕过 拒绝服务攻击(DoS) 未检查的低级调用 Create2 合约地址预测 薅羊毛攻击 delegatecall 修改状态变量,状态变量布局发生变化出现非预期错误(合约插槽冲突) 函数选择器冲突漏洞(可升级合约、Proxy 合约) ==学漏洞的同时,记得练 Foundry 命令以及 Foundry Test(单元,集成,Fuzzing),Script 脚本== 推荐链接: wtf solidity 104 合约安全:https://www.wtf.academy/docs/solidity-104/ Ethernaut...
心想事成
心想事成考察的主要是关于wish_made(address)这个映射的变化从而让三元运算符给出不同的值,然后完成题目的要求通过这个题目。需要注意的是我们调用的地址需要时EOA的地址不是攻击合约的地址。(其中这个是按照正常逻辑来的,更高深的一点就是按照我们的staiticall绕过漏洞) 目标合约: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071// SPDX-License-Identifier: MITpragma solidity ^0.8.0;interface Wish_Maker { function wish_amount() external view returns (uint256);}contract Make_a_wish { address public owner; ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment