(Draft) Aegis CTF 2024 Writeup
/ 5 min read
WEB - 1. JSFBOX
題目中提供一個網頁,只能輸入符號 (Symbol),有提供原始碼,
要讓網頁爆出 Flag。
題目
解法
使用 eval 函數對比,可以直接帶入 res.send(fa),就能成功把 Flag 搞出來。
題目既然只能用 symbols 作為輸入,那第一步就聯想到 JSFuck,
但原生 JSFuck 產生器會有很多符號,需要自己改良跟運用他比較寬鬆的 regex。
MISC - 1. Eazy Jail
題目有分兩個 Stage, 分別是 Python 跟 JS,
第一個 Stage,是在 Python int(input) 的情況下,
要分別用 1, 3, 4, 6, 7, 8, 10, 11 長度的輸入解出 2。
第二個 Stage,是在 JS 的請況下,
要同時滿足 Number(input) 跟 safeEval(input) 分別為 1024 與 532。
題目
解法
第一個 Stage: [ 2, “2”, b”2”, f”{2}”, """2""", f"""2""", f"""{2}""", f”{f”{2}”}” ]
第二個 Stage: 運用新版 JS Number(input) 不會辨識進位的特性,使用 01024 讓他取得 1024, 後面 safeEval(input) 時會辨識進為八進位,1024 即為 532,可滿足兩個條件。