I. GIỚI THIỆU
Ethernaut là một trò chơi dạng “Capture The Flag” (CTF) trên nền tảng Ethereum, được phát triển bởi OpenZeppelin. Trò chơi này nhằm giúp anh em học cách kiểm tra và khai thác các hợp đồng thông minh (smart contracts) bằng cách vượt qua các thử thách được thiết kế dựa trên các lỗ hổng thực cmn tế.
II. SETUP
Đầu tiên cài metamask https://metamask.io/
Vào các Sepolia Faucet để lấy tiền, khoảng 0.05 Sepolia ETH https://cloud.google.com/application/web3/faucet/ethereum/sepolia
Hoặc có thể dùng https://sepolia-faucet.pk910.de/ -> tuy nhiên cần phải qua cơ chế Proof-of-work để chống bot, Faucet sử dụng CPU máy bạn để làm việc tính toán, nhưng không phải để đào coin như Bitcoin hay Monero thật đâu, mà là để thực hiện một cơ chế chống bot dựa trên Proof-of-Work (PoW) — gọi là “human proof-of-work”.

Sau khi cài metamask, vào https://ethernaut.openzeppelin.com/
Chọn mạng trên góc phải trên cùng màn hình, rồi chọn approve.

III. VÀO VIỆC
Vào level 0: https://ethernaut.openzeppelin.com/level/0
Xuống cuối chọn Get new instance

Sau khi tạo xong instance, vào trình duyệt Tools > Developer Tools, sẽ ra như thế này


Có thể xem help() để đọc các câu lệnh

Nhiệm vụ, ta có thể đọc ở dòng 9 như sau:

Sau khi submit câu lệnh contract.info(), nó lại muốn ta vào info1()

Sau khi nhập info1() thì lại bắt vào info2() và phải có parameter là hello -> challenge kiểu khởi động này giúp chúng ta làm quen đây.

Tiếp tục truy cập infoNum, và ta lấy được giá trị 42 như sau:

Sau khi truy cập info42, game lại tiếp tục hướng dẫn ta: “theMethodName is the name of the next method.”

Nhập theMothodName, sẽ hướng ta tiếp tục nhập method7123949 tiếp, và sẽ yêu cầu thế này

Câu đố muốn hỏi ta biêt password không để xác thực, hãy lật ngược lại xem: chạy await contract -> có method password ở đây.

Bùng! Password là:

Xác thực thôi:

Sau ấn nút submit instance. Chúc mừng bạn đã giải được level đầu tiên:

KẾT
Nói chung là cách nhôm nhựa, basic nhất để giải bài này. Ngoài ra chúng ta có thể dùng công cụ foundry để giải, mọi người tham khảo tại đây https://infosecwriteups.com/openzeppelin-ethernaut-part-0x00-be38d7113110
Càng giải bằng nhiều cách thì chúng ta sẽ càng hiểu sâu hơn. Ok good luck!.