Ethernuat ctf part 1

Nattawat Songsom
3 min readOct 15, 2022

--

https://ethernaut.openzeppelin.com/

  1. hello

จริงๆข้อนี้ไม่มีอะไรมาก เริ่มจากโจทย์ใบ้ให้เราเรียก method info

ทีนี้ก็จะใบ้ให้เราเรียก method อื่นไปเรื่อยๆ

ตรงนี้พออ่านคำใบ้แล้วงงนิดหน่อย เลยไปหาว่ามี method อะไรให้ call บ้างจาก abi

พอว่าเลข 42 หมายถึง method info42 นั่นเอง

ซึ่งโจทย์ก็จะใบ้ให้เราเรียก method อื่น ไปเรื่อยๆ สุดท้ายแล้วเมื่อเราเรียก method password และนำค่า return ไปเรียก method authenticate ก็จะผ่าน

ต้องกด submit instance เพื่อตรวจด้วยแหะ บทความ แกะโครงสร้าง ethernuat ต้องมาแล้วมั้งเนี่ย

congrats message สวยดีเหมือนกันนะ

2. fallback

ข้อนี้บอกว่าเราจะชนะได้ 2 วิธีคือ

มีใบ้วิธีมานิดหน่อย

และ code contract คือ

โอเค ถ้า receive ถูกเรียก เราก็จะเป็น owner ได้ละ แต่มีการเช็ค contributions ด้วย งั้นเราคงต้อง contribute ซักหน่อย แล้วค่อยมา trigger receive กัน …. ส่วน ether ที่เรา contribute ไปตอนแรกก็ withdraw กลับ แบบนี้น่าจะได้มั้ง

โอเค มาลองกัน

ตอนแรกก็จะใช้ remix แหละนะ ง่ายดี ไม่ต้องเขียน script

แต่ดันใช้ lib จาก npm ไม่ได้แหะ งั้น ไปเอา code lib มาลงในไฟล์ไปด้วยเลยละกัน

โอเค compile ผ่านละ ต่อมามาเชื่อมเข้ากับ contract บน goerli กัน

ลอง contribute ไป 0.0001 จากนั้นลองส่ง ether ไปตรงๆ ใน remix เหมือนจะต้องกดปุ่มนี้แหะ

ตอนนี้เราก็จะเป็น owner ละ

จากนั้น withdraw ออก แล้วก็ submit เป็นอันเสร็จ

… ข้อนี้ทำไมชื่อ fallback ? เราก็ใช้แค่ receive ไม่ใช่เหรอ น่าสงสัยแหะ

resources

--

--

No responses yet