image.png

Truy cập thử thách ta được giao diện như sau:

image.png

Hình dung ban đầu sẽ là đi hết 4 stage đễ nhận được cờ .

Stage 0/4

Với Stage này ta thấy giá trị của input là một biểu thức tính toán bị Obfucate nên ta sẽ dùng công cụ deobfucate để tính toán ra giá trị của input. Ở đây mình sử dụng: de4js | JavaScript Deobfuscator and Unpacker

image.png

Ở đây paste chuỗi vào và chọn tùy chọn eval nó sẽ tính toán giá trị của biểu thức đó ra ta được ‘fnb’ chỉ cần nhập chuỗi này là sẽ qua Stage mới.

Stage 1/4

image.png

Tiếp tục tìm input của a để để thõa biểu thức đề bài cho , ở đây parseInt() chỉ là đảm bảo chuỗi nhập vào được chuyển thành số thôi. Mình sẽ có ví dụ sau:

image.png

+Trong JS, NaN có kiểu number (chuẩn IEEE-754)

+Giá trị sẽ là false nếu so sánh giữa NaN với nhau

+Và biểu thức (NaN-1<NaN) sẽ là false

Bạn cũng có thể tìm hiểu ở trang này để biết thêm chi tiết: Equality comparisons and sameness - JavaScript | MDN

Rõ vậy nên ta chỉ cần nhập ‘NaN’ thì sẽ pass qua stage tiếp theo.

Stage 2/4

image.png

Tiếp tục thì trong Js ta có Math.abs(1/-0) >1 . Tại sao à: