Skip to content

Commit

Permalink
Update jasonch1u.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonch1u authored Sep 19, 2024
1 parent 1f96657 commit 1566e93
Showing 1 changed file with 6 additions and 78 deletions.
84 changes: 6 additions & 78 deletions jasonch1u.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,91 +2,19 @@
timezone: Asia/Shanghai
---

> 请在上边的 timezone 添加你的当地时区,这会有助于你的打卡状态的自动化更新,如果没有添加,默认为北京时间 UTC+8 时区
> 时区请参考以下列表,请移除 # 以后的内容
# jasonch1u

timezone: Pacific/Honolulu # 夏威夷-阿留申标准时间 (UTC-10)
1. 自我介绍:無開發經驗,參加XREX區塊鍊課程後,不想再當web2的佃農。最近很幸運的錄取了資安BOOTCAMP,希望這段時間學習後,有機會投身web3的行列。
2. 你认为你会完成本次残酷学习吗? 一開始覺得不好說,不過這段時間提前自學,期許自己還是可以完成。

timezone: America/Anchorage # 阿拉斯加夏令时间 (UTC-8)

timezone: America/Los_Angeles # 太平洋夏令时间 (UTC-7)

timezone: America/Denver # 山地夏令时间 (UTC-6)

timezone: America/Chicago # 中部夏令时间 (UTC-5)

timezone: America/New_York # 东部夏令时间 (UTC-4)

timezone: America/Halifax # 大西洋夏令时间 (UTC-3)

timezone: America/St_Johns # 纽芬兰夏令时间 (UTC-2:30)

timezone: Asia/Dubai # 海湾标准时间 (UTC+4)

timezone: Asia/Kolkata # 印度标准时间 (UTC+5:30)

timezone: Asia/Dhaka # 孟加拉国标准时间 (UTC+6)

timezone: Asia/Bangkok # 中南半岛时间 (UTC+7)

timezone: Asia/Shanghai # 中国标准时间 (UTC+8)

timezone: Asia/Tokyo # 日本标准时间 (UTC+9)

timezone: Australia/Sydney # 澳大利亚东部标准时间 (UTC+10)

---

# Jasonch1u

1. 自我介绍:一個參加完XREX Acamedy後,覺得區塊鍊技術很有趣的菜雞

2. 你认为你会完成本次残酷学习吗? 不好說

## Notes

<!-- Content_START -->
<!— Content_START -->
### 2024.09.19
因為從未接觸過Solidity,這週提前開始課程,大概了解自學難度、個人目標、及殘酷共學的願景。

### 2024.09.23

學習內容:
- A 系列的 Ethernaut CTF, 之前做了差不多了. POC: [ethernaut-foundry-solutions](https://github.com/SunWeb3Sec/ethernaut-foundry-solutions)
- A 系列的 QuillAudit CTF 題目的網站關掉了, 幫大家收集了[題目](./Writeup/SunSec/src/QuillCTF/), 不過還是有幾題沒找到. 有找到題目的人可以在發出來.
- A 系列的 DamnVulnerableDeFi 有持續更新, 題目也不錯. [Damn Vulnerable DeFi](https://github.com/theredguild/damn-vulnerable-defi/tree/v4.0.0).
- 使用 [Foundry](https://book.getfoundry.sh/) 在本地解題目, 可以參考下面 RoadClosed 為例子
- ``forge test --match-teat testRoadClosedExploit -vvvv``
#### [QuillAudit CTF - RoadClosed](./Writeup/SunSec/src/QuillCTF/RoadClosed.sol)
```
function addToWhitelist(address addr) public {
require(!isContract(addr), "Contracts are not allowed");
whitelistedMinters[addr] = true;
}
function changeOwner(address addr) public {
require(whitelistedMinters[addr], "You are not whitelisted");
require(msg.sender == addr, "address must be msg.sender");
require(addr != address(0), "Zero address");
owner = addr;
}
function pwn(address addr) external payable {
require(!isContract(msg.sender), "Contracts are not allowed");
require(msg.sender == addr, "address must be msg.sender");
require(msg.sender == owner, "Must be owner");
hacked = true;
}
function pwn() external payable {
require(msg.sender == pwner);
hacked = true;
}
```
- 解決這個題目需要成為合約的 owner 和 hacked = true.
- On-chain: 可以透過 ``cast send`` 或是 forge script 來解.
- Local: 透過 forge test 通常是在local解題, 方便 debug.
- RoadClosed 為例子我寫了2個解題方式. testRoadClosedExploit 和 testRoadClosedContractExploit (因為題目有檢查msg.sender是不是合約, 所以可以透過constructor來繞過 isContract)
- [POC](./Writeup/SunSec/test/QuillCTF/RoadClosed.t.sol)

###

<!-- Content_END -->

0 comments on commit 1566e93

Please sign in to comment.