Ethernuat ctf part 2
https://ethernaut.openzeppelin.com/
3. Fallout
โจทย์คือ ทำให้เราเป็น owner ของ contract นี้ให้ได้
โอเค ที่เดียวที่เรา assign ค่าให้ owner ใหม่ได้คือ constructor แต่ constructor ไม่สามารถเรียกซ้ำได้ ….
ความเป็นไปได้เดียวที่เราจะ reassign ค่า owner ได้คือ Fal1out ไม่ใช่ constructor
ซึ่งก็เป็นอย่านั้นจริงๆ เพราะ Fal1out สะกดผิด จริงๆต้องสะกดเป็น Fallout ต่างหาก
ดังนั้น เราเรียก Fal1out ก็ผ่านแล้ว
4. coin flip
โจทย์คือ
เราต้องทายค่า true หรือ false ถูกต่อเนื่องกัน 10 ครั้ง
โอเค ค่า side ที่ได้ จะมาจาก hash ของ block number ซึ่งเราสามารถคำนวณค่านี้ก่อนไปยิง guess ได้
ซึ่งให้ง่ายที่สุดก็ใช้ภาษา solidity คำนวณแล้วกัน จะได้ใช้ syntax เดียวกัน จะได้ code ตามนี้
เราเขียน check success ไว้ด้วย จะได้ไม่เปลืองค่า gas ถ้า code bug ละนะ
โอเค ข้อนี้ลำบากนิดหน่อยถ้าใช้ remix เพราะต้องยิงครั้งละ block 10 ครั้ง ถ้าเขียน script น่าจะสบายขึ้น