Skip to content

Commit

Permalink
Merge branch 'main' of github.com:DeFiHackLabs/Web3-CTF-Intensive-CoL…
Browse files Browse the repository at this point in the history
…earning into main
  • Loading branch information
samueltangz committed Sep 22, 2024
2 parents 0998812 + e9634d0 commit dbe57c6
Show file tree
Hide file tree
Showing 49 changed files with 1,265 additions and 56 deletions.
2 changes: 2 additions & 0 deletions 0xE.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,7 @@ timezone: Pacific/Auckland
### 2024.09.20
[[Blaz CTF 2023] 4 | Lockless Swap](./Writeup/0xE/blazctf-2023/lockless-swap.md)

### 2024.09.21
参加 Blaz CTF 2024

<!-- Content_END -->
7 changes: 7 additions & 0 deletions 0xLight.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,13 @@ function pancakeCall(address sender, uint256 amount0, uint256 amount1, bytes cal
```
这是攻击的主要代码,但是不理解为什么要连续调用那么多次skim,也没弄清楚攻击逻辑。

### 2024.9.21
做blazctf2024,感觉真正做题和做以前的github里面的题感觉大不相同,要自己去找数据,下载题目
### 2024.9.22
因为不怎么用telegram今天一登陆发现错过了1000多信息,也发现原来要在那上面请假才算,,,

blazctf2024做出了两道,等明天比赛结束了写

https://github.com/JadeLight7/blazctf2024/tree/main

<!-- Content_END -->
5 changes: 4 additions & 1 deletion 0xNezha.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,5 +93,8 @@ bytes32[3] private data 通过合约调用的方式当然无法读取 private
这一关主要考察 ERC20 的 ABI,该代币的持有者无法直接转账,必须等锁定期过了才能转。但如果把全部额度授权给第三人,则第三人可以把代币全部提走。主要使用 approve(address _spender, uint256 _value) 和 transferFrom(address _from, address _to, uint256 _value)。 [15_NaughtCoin](./Writeup/0xNezha/Ethernaut/15_NaughtCoin.md)

### 2024.09.20
这一关主要考察delegatecall()。目标合约想要通过 timeZone1Library.delegatecall(abi.encodePacked(setTimeSignature, _timeStamp)) 来调用库合约的 setTime(uint256 _time) 达到修改目标合约中 uint256 storedTime 变量的目的。然而使用 delegatecall() 函数进行外部调用时,当涉及到 storage 变量的修改时,是根据 slot 的位置来修改的,而不是通过变量名。也就是说库合约中的 uint256 storedTime 位于 slot0,则目标合约调用外部函数时,修改的也是目标合约的 slot0,而不是位于其他 slot 的变量 storedTime。
这一关主要考察delegatecall()。目标合约想要通过 timeZone1Library.delegatecall(abi.encodePacked(setTimeSignature, _timeStamp)) 来调用库合约的 setTime(uint256 _time) 达到修改目标合约中 uint256 storedTime 变量的目的。然而使用 delegatecall() 函数进行外部调用时,当涉及到 storage 变量的修改时,是根据 slot 的位置来修改的,而不是通过变量名。也就是说库合约中的 uint256 storedTime 位于 slot0,则目标合约调用外部函数时,修改的也是目标合约的 slot0,而不是位于其他 slot 的变量 storedTime。[16_Preservation](./Writeup/0xNezha/Ethernaut/16_Preservation/16_Preservation.md)

### 2024.09.21
这一关主要考察 合约地址的计算和 destroy() 的应用。合约地址计算就不多说了,也可以在区块浏览器中直接查到合约地址,然后调用 destroy() [17_Recovery](./Writeup/0xNezha/Ethernaut/17_Recovery.md)
<!-- Content_END -->
4 changes: 4 additions & 0 deletions AlexLiao.md
Original file line number Diff line number Diff line change
Expand Up @@ -323,4 +323,8 @@ abi.encodePacked(type(Contract).creationCode, uint256(uint160(address(owner))))

### 2024.09.21

參加 BlazCTF 2024

### 2024.09.22

<!-- Content_END -->
10 changes: 10 additions & 0 deletions Alive.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,4 +206,14 @@ mint20次即可,但要注意一个点,mint20次后要手动调一下solve方

今天聚会,没时间做了,明天最后一天总结一下这期的共学情况。

### 2024.09.21

这次共学做完了ethernaut的题,还尝试做了下2023的blaz的头几题,第一次体验了什么是ctf。做的过程可以发现对底层汇编和字节码的理解不足,后续考虑强化这方面的学习。
做完ethernaut之后,做其他的题遇到了较多的困难,后面共学的积极性受挫。下次共学可以考虑遇到难的题目,也可以记录思考的过程,难点是什么,进一步搜集学习相关内容,而不是直接放弃会更好。
通过共学营和ethernaut我算是入了个ctf的门,后续有机会的话会考虑继续深入学习。

### 2024.09.22

圆满结营,感谢DeFiHackLabs组织的这次活动,如果还有下次共学,将考虑挑战比ethernaut难的系列题目。

<!-- Content_END -->
2 changes: 2 additions & 0 deletions BillyC.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,5 +114,7 @@ https://hackmd.io/@0xbc000/SJ61x8j3R
1. Damn Vulnerable DeFi - Backdoor https://hackmd.io/@0xbc000/rJ1d_9ZTC
2. Work on blog post for old challenges

### 2024.09.21
1. BlazCTF .... but only solve the hello world 😢

<!-- Content_END -->
6 changes: 5 additions & 1 deletion KeShin.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,14 +190,18 @@ KeShin, 合约安全新人
- sstore(treasury.slot, calldataload(4)) 是从 calldata 的第4位开始读取数据,那么我们构造 calldata 使值大于 255
- [POC](./Writeup/KeShin/A-Ethernaut%20CTF/30-HigherOrder/)

#### [Ethernaut CTF : 31 Stake](https://ethernaut.openzeppelin.com/level/301)
#### [Ethernaut CTF : 31 Stake](https://ethernaut.openzeppelin.com/level/31)
- 使合约满足条件:合约的 ETH balance 大于 0,totalStaked 比 合约的 ETH balance 大(这意味着有 WETH 质押),我自己必须是质押人,但质押余额是 0(质押过然后撤回了)
- [POC](./Writeup/KeShin/A-Ethernaut%20CTF/31-Stake/)


### 2024.9.20
#### [Ethcc CTF 2023 : 1 Proxy capture](https://github.com/spalen0/warroom-ethcc-2023?tab=readme-ov-file#task-1---proxy-capture-15-points)
- [POC](./Writeup/KeShin/B-ETHCC2023/1-ProxyCapture/)

### 2024.9.21


### 2024.9.22

<!-- Content_END -->
Loading

0 comments on commit dbe57c6

Please sign in to comment.