THJCC 2026 baby_jail wp
THJCC 2026 baby_jail wp
前言
這次這個題目原本預計是出easy難度,但有些東西沒考慮到導致題目變得有點通靈,但還是有靈力強大的玩家在我起床之前把這題秒殺了Orz,所以我也沒辦法進行修改QQ
我下次會注意的,絕對不會再把比較關鍵的提示隱藏了
baby_jail
這題連線進去後會發現題目輸出了這段
1 | Welcome to baby Jail. Allowed chars: a-z, 0-9, [](). |
題目說只能輸入字母數字及中誇號小誇號,而如果像平時常見的 pyjail 題目輸入含_的指令的話則會出現Invalid chars. Only a-z, 0-9 and []() allowed.
而看到題目附給玩家的檔案可以看到 server 的 mapping 邏輯
1 | def mapping(k): |
就是簡單地把玩家的輸入進行 XOR 而已,而其中的k則是每次連線時隨機變換
1 | Welcome to baby Jail. Allowed chars: a-z, 0-9, [](). |
按照上面我們可以知道當把 server 回傳給我們的字串回傳回去我們就可以控制輸出了
1 | Welcome to baby Jail. Allowed chars: a-z, 0-9, [](). |
而這邊可以看到我控制了 server 回傳出 flag 但他並沒有把 flag 吐出來,這是因為我對 flag 做了一點點的保護,不過因為保護的字串就是 flag 所以這邊算是一點小瑕疵
1 | class ProtectedFlag: |
那接下來要如何獲取 flag ? 由於沒辦法逃出這個環境所以 flag 其實就寫在 server 中,所以我們利用 python 中 text[index] 可以單獨獲取一個字母的原理來取得flag,如下
1 | Welcome to baby Jail. Allowed chars: a-z, 0-9, [](). |
不過一個一個手打有點麻煩,所以寫個簡單的 exp 來完成這件事,因為邏輯很簡單所以希望你們有空的話可以手刻看看w ||這個應該不需要詠唱owob||
簡單的exp:
1 | from pwn import * |
這樣就能獲得flag了
flag:THJCC{7h3_b4by_j411_15_v3ry_345y_r19h7?}
