前言
先附個Terrynini在封榜後截的記分板(有點長)

嗯….挺長的
算了算這可能算是我第二次打超過一天的CTF比賽吧,雖然第一次也是去年的AIS3 pre-exam
總之這次應該是一堆大佬都沒來比了,加上運氣好像蠻好的,瞎摸一堆就看到flag,莫名其妙的拿了個第4名
不過從頭到尾只解了一題pwn的bof,連orw都不會解,所以跟上面的人差距著實不小,不過最近也在慢慢多學一點pwn相關的知識了,希望去AIS3的時候不要又跟去年一樣無力
總之來寫寫一些我賽到的部分吧
阿,對了,先附個官解連結:
- Pwn
- Reverse
- Web
- Crypto
Web
Simple Window
這題我覺得是Web題裡面最難的www(?)
我從頭到尾不知道發生什麼事,也沒有使用burpsuite之類的習慣
搞了很久之後還是不知道為什麼/flag拿不到東西
最後就直接在瀏覽器裡編輯HTML,加入一個from submit之後就拿到flag了
看到官解才知道有什麼service worker之類的東東QQ
Hidden
這題沒存到資料,所以是參考官方解寫的,不過我的解也一樣就是了
總之開啟來翻了翻code看到有個js,戳開搜尋了一下flag發現有個{"./flag.js":"nHHx"}
繼續搜尋個nHHx看到
1 | "nHHx":[function(require,module,exports) { |
抓出來執行一下後就拿到Flag AIS3{4r3_y0u_4_fr0n73nd_g33k?}
d1v1n6
點了hint看到http://pre-exam-web.ais3.org:10103/?path=hint.txt,於是想說可能是某種file_get_contents之類的東西
直接打了http://pre-exam-web.ais3.org:10103/?path=index.php,發現不能有flag這個關鍵字
那就改用php filter來撈資料,所以改成連http://pre-exam-web.ais3.org:10103/?path=php://filter/read=string.rot13/resource=index.php就可以拿到source code了
1 |
|
看完source code發現只要讓他自己去連index.php就可以拿到flag了
原本打算用http://pre-exam-web.ais3.org:10103/?path=http://localhost/index.php拿到資料,但再次的發現裡面有flag字眼
於是再用php filter把資料撈出來http://pre-exam-web.ais3.org:10103/?path=php://filter/read=convert.base64-encode/resource=http://localhost/index.php
得知flag擺在http://pre-exam-web.ais3.org:10103/FLAG_14d65189669f05d206764c9de441474d.txt
進去就拿到flag: AIS3{600d_j0b_bu7_7h15_15_n07_7h3_3nd}
不過拿到flag後其實一直很好奇那個regular expression有什麼用,因為看到的時候還以為要某種dns第一次的時候拿到的跟第二次拿到的不一樣的技巧
看了官解才發現原來只是他code寫爛了XDD
3v4l
進去之後看到一個php source code
1 | ob_start(); |
稍微整理一下可以看到
1 | ob_start(); |
瞄了兩下發現他會eval("echo ".$_GET['#']),所以做法應該是想辦法是湊出一個長度<18,不包含任何大小寫英文字母的payload塞在$_GET[‘#’]裡面
看到字串類的東西我第一個想到的是利用`cmd`,這樣就可以執行system("cmd"),但是因為不能有英文字母,所以我是想到用某種其他的編碼之類的來escape,查了查找到php可以用\141來表示a(141是a的8進位表示)
所以最後就構造了一個payload: http://pre-exam-web.ais3.org:10105/?%23=`\143\141\164%20/*`; 連進去就拿到flag了XD
不過看了官解才發現這其實是untended solution …
d1v1n6 d33p3r
前一題d1v1n6給的hint告訴我們
1 | ^`. o |
所以只好到處亂逛,逛了真的超級久逛到/etc/hosts的時候發現原來有另外一個網站http://pre-exam-web.ais3.org:10103/?path=http://172.22.0.2/
原本以為這裡就結束了,於是順手檢視原始碼
1 | <h2>Directory Lister</h2> |
結果這才只是新的一題的開始,嘗試填了表單發現看起來很像他會執行system('ls -al \''.$_GET['dir'].'')並且把資料輸出出來,嘗試構造了很久的payload,也不知道到底發生什麼事
總之最後透過http://pre-exam-web.ais3.org:10103/?path=http://172.22.0.2/?dir=-F%2527;cat%2520index.php;%2527成功leak出原始碼與flag
1 | <h2>Directory Lister</h2> |
tokeeeeen
如果沒有CTFd裡的hint的話,我覺得這題還真的有點通靈ww
總之我們發現他是個node的project,所以去讀個package.json
1 | { |
發現server擺在server.js,嘗試去讀了code後就拿到原始碼了
1 | const FLAG = process.env.FLAG; |
所以知道只要送對東西到/flag就可以拿到flag了,於是開始研究code,發現他很神奇的自己弄了一個新的Error Type出來,而且還有try catch,所以猜想可能是要自己讓他噴出一個其他的error就可以拿到flag
研究了一下發現express內建的parser,讓我們的get是可以送出一個object的,想了想發現比大小的時候可能會呼叫某種operator,於是嘗試覆蓋掉,最後找到是要覆蓋掉toString,因次構造出payloadhttp://pre-exam-web.ais3.org:10102/flag?token[length][__proto__][toString]=1
就拿到flag: AIS3{1_d0n7_w4n7_70_wr173_j4v45cr1p7_4nym0r3}了
BabySSRF
時間不是很足,看完orange的「SSRF-從入門到放棄」,還是不知道要幹嘛,雖然好像他們是有開gopher之類的,但真的不會利用,最後就放棄
哪天應該要在網路上或去問人如何SSRF
Crypto
TCash
拿到task.py
1 | from hashlib import md5,sha256 |
所以就照著算一下md5跟sha256,不過要記得break,因為有碰撞,所以不break會多一些字
1 | from hashlib import md5,sha256 |
跑起來就有flag: AIS3{0N_May_16th @Sead00g said Heeeee ReMEMBerEd tH4t heee UseD thE SAME set 0f On1iNe to01s to S01Ve Rsa AeS RCA DE5 at T-cat-cup, AnD 7he kEys aRE AlWAys TCat2019Key}了
Random Guess
nc上去發現是一個LCG,我們要透過前幾項推測出後面的項數,抄襲參考網路上的教學後
寫了個小腳本:
1 | # from http://zeroyu.xyz/2018/11/02/Cracking-LCG/ |
多跑個幾次就有flag:AIS3{GGEZ!!LiNe42_COngRuen7i4l_6eNErATor}
RSA202
原本是靜態的但不知道被誰上傳到factordb後就換成線上版的了
nc上去拿到一些RSA相關的東東,不過每次都會變
1 | Preparing your challenge ... |
暴力拿yafu拆開n1後觀察給的怪提示((p-1) % r)**2 + ((r**5 - 1) % p)**2 == 0
發現$r | p - 1$以及$p | (r - 1)(r^4 + r^3 + r^2 + r + 1)$,所以$p=r^4+r^3+r^2+r+1$(因為$r|p-1 \rightarrow r < p-1$),這樣我們就有p跟q,剩下就是暴力把密碼解回來了
寫了個腳本(資料跟上面的那份不同,不過flag一樣)
1 | from Crypto.Util.number import getPrime, isPrime, inverse |
拿到flag: AIS3{S0me7im3s_I_h4tE_factorDB}
RSA101
覺得最有趣的一題XD,也有可能他是最像OI的那種題目吧
首先nc上去會拿到public key跟被加密的flag,顯然我們是要透過某種方式得到一點N相關的資訊
那他很好心的提供了一個phi oracle,對於一個輸入的$x$會回傳${x\mod{\varphi(N)}}\mod{64}$
觀察發現$\varphi(N)$是64的倍數的機率應該不高,所以我們可以知道若是給出一個介在$[\varphi(N),2\varphi(N))$的數$x$,那回傳的值將與$x\mod{64}$不同,而要是$x<\varphi(N)$則回傳的值總是與$x\mod{64}$相同,於是我們就有一個可以二分搜驗證是否$x\geq\varphi(N)$的函數了
不過我們要怎麼找到一個介在$[\varphi(N),2\varphi(N))$的數呢,發現當$N$足夠大的時候,$N$一定會是一個合法的數,所以我們直接二分搜$[0,N]$之間$\geq \varphi(N)$最小的數即可得知$\varphi(N)$,有了$\varphi(N)$之後就直接做個簡單的逆元之類的就可以解密了
這裡附個我寫的簡單腳本
1 | from Crypto.Util.number import isPrime, inverse |
跑完就可以拿到flag: AIS3{RSA_L0L_01100110011101010110001101101011}
CbC
首先拿到一個加密程式
1 | #!/usr/bin/env python3.7 |
還有一份看起來是被用這隻程式加密過的檔案
1 | (76173805501177359573786250867826865667623985658852407459502964711159068527937, 7132216118997241161329301114592304948838945360663660382939528954550389872641) |
有點多,第一下還以為可能是要把所有東西拿去xor之類的
但是有耐心的一步一步把上面那題的包裝全部拆掉後發現他只是一個長的像下面這樣的東東
1 | b = swap(b) ^ swap(k) ^ 0101 -> key = swap(k) ^ 0101 |
所以輕鬆寫了個腳本
1 | #!/usr/bin/env python |
跑了起來就拿到flag: Flag : AIS3{db2b6caba3833bd883d32e94fad7af82dcbe718ef6b1852d3593b056e295873e} 99845311382255963867520670568134167074234626107841305012117760590481303515010
MaoHash
一樣沒什麼時間仔細研究他怎麼hash的
官解是說有length extension的攻擊可以用,不過我是還沒讀完
ReSolveFinaL
看了一眼發現是LFSR,但也來不及研究完QQ
官解是說可以用Berlekamp-Massey把參數搞出來之類的
其實我在這之前不知道Berlekamp-Massey在xor下也可以做,看了wiki才發現的確可以XD
畢竟之前我也只有在fjzzq的blog看過這個他說可以拿來唬爛線性遞迴式的算法
Misc
Are you admin?
題目開起來拿到一個ruby,看起來就是要繞過裡面的JSON
1 |
|
發現age那邊雖然不能有任何英文字母,但是特殊符號還是可以有的
所以想到說可以把他設定is_admin利用name的地方把他包起來,然後age那邊給個結尾的符號就可以了
payload大概長的像這樣:
1 | Your name: |
然後就拿到flag: AIS3{RuBy_js0n_i5_s0_w3ird_0_o}
不過官解好像不是要考這東東XD
Crystal Maze
打開這次是拿到一個我不認識的語言寫的腳本
1 | require "./secret" |
瞄了兩眼看起來就是要想辦法走迷宮走到終點
原本打算用python寫個腳本DFS的,但後來覺得有點難寫,而且地圖又不大,所以最後花了一點時間用手把地圖走完
以下是我走出來大概的地圖(?:未知,X:牆壁,.:空地,*:FLAG)
1 | ???????????????* |
真的走完就拿到flag: AIS3{4R3_Y0U_RUNN1NG_45_F45T_45_CRY5T4L?}
KcufsJ
拿到一個莫名其妙的東東
1 | ))()]]][+[+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+]][![+][+(+)][!(]]][+[)][+][!!(+]]][+[+][!!+[)]][[][+]][![(+]][!!+][!![)][+][!(+]]][+[+][!!+[))]][[][()()]][!!+[)][+][!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!![)][+)(]]][!!+][!!+][!![)][+][!(+]][!!+][!!+][!![)][+][!!(+]]][+[+][!!+[)]][[][+]][![(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+[)][+]][[][(+]][!!+][!!+][!![)][+][!!([][(+]]][+[+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!(+]][!!+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+]][[][(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!!(+]][!!+[)][+][!!((]]][!!+[)][+][!!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][([]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+]][![+(+]][!!+][!!+][!![)][+][!([))][!!+(+)][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!(+)][!!+(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][+(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+(+)][!!+][!!+][!!+][!!+][!!(+][!+)][!!+(+)][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+(+)][!!+(+][!+)][!!+][!!+][!!+][!!(+)][!!+(+)][!!+(+][!+)][!!+(+)][!!+][!!+][!!+][!!+][!!(+][!+)][!!+(+)][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+)][!!+(+)][!!+(+][!+)][!!+(+)][!!+][!!+][!!+][!!+][!!(+][!+)][!!+(+)][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!(+)][!!+][!!(+)][!!+(+][!+)][!!+(+)][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!(+][!+)][+(+)][!!+][!!+][!!+][!!(+][!+)][!!+][!!+][!!(+)][+(+)][!!+(+][!+)][!!+(+)][!!+(+)][!!+(+][!+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+)][+(+)][!!+(+][!+)][!!+][!!+][!!+][!!+][!!+][!!(+)][!!+][!!+][!!+][!!(+][!+)][!!+(+)][+(+)][!!+(+][!+)][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+)][+(+)][!!+(+][!+)][!!+(+)][!!+(+)][!!+(+][!+)][!!+][!!+][!!+][!!+][!!(+)][!!+(+)][!!+(+][!+)][+(+)][!!+(+)][!!+(+][!+)][!!+(+)][!!+(+)][!!+(+][!+]][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!![+][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!+][!!(+]]][!!+][!!+][!![+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+][!!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]][[][+]][![(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]]][!!+[+][!!+[)][+)()]][!!+[)][+][!!(+]][!!+[)][+][!(+]][!!+][!![)][+)(]]][!!+][!!+][!![)][+][!(+]][!!+][!!+][!![)][+][!!(+]]][+[+][!!+[)]][[][+]][![(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+[)][+]][[][(+]][!!+][!!+][!![)][+][!!([][(+]][!!+][!!+][!![)][+][!(+]][+[)][+]][[][(+]][+[)][+][!!(+]][!!+[)][+][!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]]][+[+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!(+]][!!+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+]][[][(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!!(+]][!!+[)][+][!!((]]][!!+[)][+][!!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][([]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][(+]][!!+][!!+][!![)][+][!!(+]][!!+][!![)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+[)][!+)]][![+(+]][+[+][+()()]][!!+][!![)][+)(]]][!!+][!!+][!![)][+][!(+]][!!+][!!+][!![)][+][!!(+]]][+[+][!!+[)]][[][+]][![(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+[)][+]][[][(+]][!!+][!!+][!![)][+][!!([][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+[)][+][!(+]]][+[+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!(+]][!!+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+]][[][(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!!(+]][!!+[)][+][!!((]]][!!+[)][+][!!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][([]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+]]][!!+[+][!!+[)]]][!!+[)][+][!!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][([)][+(+][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+[)][+][!!(+]][+[)][+][!(+]][!!+[)][+))][+(+)][!!+][!!(+]][!!+][!!+][!![)][+][!!(+]][!!+[+][!!+(+(+]][!!+[)][+][!!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][!!+[)][+))][+(+)][!!+][!!(+]][!!+][!!+][!![)][+][!!(+]][!!+[+][!!+(+(+]][!!+][!!+][!![)][+][!(+]][+[)][+]][[][(+]][+[)][+][!!(+]][!!+[)][+][!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]]][+[+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!(+]][!!+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+]][[][(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!!(+]][!!+[)][+][!!((]]][!!+[)][+][!!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][([]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][()()]][!!+][!![)][+][!(+]][!!+[)][+][!(+]]][+[+][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+]]]]][+[+][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!(+[]][!![[+]][![+(+]][!!+][!!+][!![)][+][!!(+]]][+[+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!(+]][!!+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+]][[][(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!!(+]][!!+[)][+][!!((]]][!!+[)][+][!!(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][(+]][+[)][+]][[][(+]][!!+[)][+][!!(+]][+[)][+][!!(+]][!!+][!!+][!![)][+][!(+]][!!+[)][+]][[][(+]]][+[+][!!+[)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][!!(+]][!!+][!!+][!![)]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][+][([]]][!!+][!![)][+][!(+]][!!+][!![)][+][!(+]]][+[+][!!+[)]][[][+]][![(+]][+[)][+][!([][ |
看了兩下覺得很像jsfuck,然後再看看題目就發現是jsfuck被rev過了,所以就再rev一下拿去瀏覽器跑
就拿到flag: AIS3{R33v33rs33_JSFUCKKKKKK}
Welcome
照著執行上面寫的hash就可以拿到flag: AIS3{988069d2c08c1910f422737ca412afe2}
Pysh
首先拿到一個python腳本,一樣看起來是要利用有限的字元集構造出一個任意執行的shell
1 | #!/usr/bin/python |
幾下後就想到有個read的指令,之前我就是用他來過某題pwnable.kr的題目的
具體payload就是read a;$a之後再打個/bin/sh就有完整shell了
去裡面翻一翻可以翻到flag: AIS3{read;$REPLY}
Mind Reading
發現是個tensorflow的東東,不過我沒學過ML,只好開始爬文件
1 | #!/usr/bin/env python3 |
總之最後看懂了之後就寫了一個算法一位一位枚舉要是哪個字元,每次把最高的那個當作對的
雖然這樣不一定是最佳解,不過我猜應該也足夠讓我猜出答案了
1 | #!/usr/bin/env python3 |
實際跑起來拿到AIS3{YOU_REALLY_DIDLA_GOOD_JOA}猜測真實FLAG應該是AIS3{YOU_REALLY_DID_A_GOOD_JOB}
WTF
拿到一堆圖片不知道要幹嘛
然後題目有個小hint是用希伯來文寫的諾亞方舟
看解答才知道原來是要寫個flood fill…
Reverse
Trivial
拿到一個執行檔,先strings一下拿到一個看起來很像flag的東東
1 |
|
把那坨東西蒐集一下就變成flag: AIS3{This_is_a_reallllllllllly_boariiing_challenge}
TsaiBro
拿到一個執行檔跟一個莫名其妙的檔案
1 | Terry...逆逆...沒有...學問...單純...分享...個人...生活...感觸... |
把執行檔拿去IDA F5後看到原來這是某個加密的程式
1 | __int64 __fastcall main(int a1, char **a2, char **a3) |
顯然的那些點的數量就代表是哪個字串,所以把encrypt_table拿出來
1 | 0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x7B,0x7D,0x5F |
然後透過點的數量對照回去就拿到flag: AIS3{y0u_4re_a_b1g_f4n_0f_tsaibro_n0w}
HolyGrenade
拿到一個pyc檔拿去decompile回來大概回拿到
1 | # Python bytecode 3.7 (3394) |
搭配給定的output.txt裡面的md5就可以暴力破解出md5了
1 | ba3a7f3bd92a5d418f5e16886db62674 : AIS3 |
flag: AIS3{7here_15_the_k1ll3r_ra661t}
0neWay
這題當初解的超辛苦的ww
拿到一個執行檔,跑起來叫我回答三個問題
先拿IDA F5後拿到一個看起來是驗證的功能
1 | signed __int64 __fastcall hash(char *a1) |
1 | int __cdecl main(int argc, const char **argv, const char **envp) |
因為知道的是jpg,而且jpg的檔頭跟檔尾是固定的加上他有給長度的限制,所以我們可以leak出一些key的內容,剩下再透過暴力破解就好
不過要注意jpg有些版本資訊不太一樣,所以這邊我是一個一個試試看的
寫了份腳本跑了很久很久終於找到key
1 |
|
成功輸進去後就拿到一個帶有flag的jpg

所以flag就是AIS3{Did_y0u_t5y_t0_65u7e_f0rc3_7h1s}
但看到官解才發現根本不需要那麼麻煩QQ
似乎有某塊直接leak出key了
MasterPiece
一個windows的QT題,沒解過windows相關的reverse題,也不太會用拿x64dbg,只好果斷放棄
Game
又是一題windows題,原本想拿cheat engine玩玩看,但用不太出來,也不知道哪邊會有flag
一樣只好放棄,看官解原來是他會有類似跑馬燈的效果顯示flag…
BigO1
看起來像是跟之前benson事件有關的東東
不過因為我沒辦法用ida f5了,然後也沒空認真讀組語就放棄了
看官解看起來是要用gdb做事QQ
Pwn
我的pwn真的廢到笑,所以就不想寫題解了,反正我也只解一題QQ..
看看上面的大佬都會做pwn,我這暑假真的要好好來學pwn了