Typora 笔记
Typora 笔记[TOC] PS:除文字外,符号最好是英文状态下输入,中文状态下的符号无法转义。 部分操作可以通过快捷指令设置。 目录:[TOC] 或者 [toc] 1. 标题 标题:一个#加空格。(可以多级标题) 123456# 标题## 标题### 标题#### 标题##### 标题###### 标题 2. 引用 引用:”>”加空格。(可以多级引用,重复上述操作即可) PS:使用多行引用时,上一行引用需要有内容。(如果没有会清除引用符号) 引用 3. 字体字体::一对”**”是斜体;两对是加粗;三对是斜体加粗。(选中文本按 “Ctrl”加”B”也可以实现加粗;选中文本按”Ctrl”加”I”可以实现斜体) 小赵 小赵 小赵 4. 列表 有序列表:数字加”.”加空格加文本。(回车可以有序向下延伸) 123 123 123 123 无序列表:一个”+”加空格加文本。(回车可以向下延伸) 123 123 5. 删除线:两对波浪线”~”。我宣布个事儿 6. 高亮:两对等于号”=”。...
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 +...
基础漏洞目录
基础漏洞 重入漏洞(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...
倒带时间
倒带时间这题主要考察的就是delegatecall数据存储,即委托调用目标合约时需要将数据类型存储顺序一一对应,这题的不同点是需要注意常数不占用数据存储槽,是直接十六进制编码。还有就是注意动态数组的声明和赋值方式。具体步骤就是先调用setZDriveowner函数把合约owner变成我们,再就是更改时间,只需要同名函数和参数即可,因为目标合约的time都是public关键字修饰,所以可以直接赋值。 目标合约: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128//...
心想事成
心想事成考察的主要是关于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; ...
关于合约使用assembly操作calldata以及low-level call接受数据的弊端
关于合约使用assembly操作calldata以及low-level call接受数据的弊端:[TOC] 大部分合约的编写完全可以通过solidity完成,但是内联汇编是Solidity的一个重要补充,它让你更深入地理解底层操作和合约优化。合约在使用 assembly 操作 calldata 或使用 低级调用(call, delegatecall 等)接收数据 时,确实能实现一些底层的灵活性,但也引入了一些严重的安全风险、可维护性问题和兼容性弊端。 assembly 操作 calldata 的弊端 在 assembly 中直接使用 calldataload 加载数据时,是不做类型检查的。如果数据位置或大小不符合预期,会读取到错误的值或导致合约异常。 123assembly { let val := calldataload(4)} 如果 msg.data 长度不足,则 val 会是 0,或是无意义数据。 容易受 ABI 编码方式影响 calldata 的格式遵循 ABI 编码规范。例如 uint8 也会被编码成 32...
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