AIS3 2019 Pre-Exam Writeups
終於放暑假了,這學期真D忙爆
到現在才有空寫writeup
是說今年暑假行程也滿檔… 駕訓班, 研習營, AIS3…樣樣來
真…真爽
上次AIS3時才剛學資安不到半年,分數慘不忍睹菜到只剩備取尾巴
一年後的今天一口氣爬上了8X名,真的非常感謝學長這一年中的教導,雖然還是菜到廢 (我有個學弟好強R QQ)
希望明年能擠進50,希望有天也能變大佬 (X
Pwn
Welcome BOF
注意!!!這是 x64 系統
逆向看到輸入的變數會放在 rbp - 30h
的位置
然後會發現有個沒用到的 function call 了 system("sh")
在 0x40068B
由於是 x64 系統每個 stack 格子就變成 8 byte 了
1 | (python -c "from pwn import *; print 'a'*0x38 + p64(0x400687);";cat -) | nc pre-exam-pwn.ais3.org 10000 |
ORW
第一次看到這種題目,稍微花了時間去研究 seccomp
總之就是一種黑名單白名單的東西
而這題限制了只能用 open, read, write 的 syscall
由於沒開 PIE,所以 addr 並不會變動輸入的東西都放在 0x6010A0
先把 shellcode 寫進去
然後最後直接 bof 到剛剛寫 shellcode 的位置
1 | from pwn import * |
Reverse
Trivial
有個 function 有一堆數字 (相信我你一看就會知道是哪個 function)
全轉 char 就會看到 flag 了
TsaiBro
逆向看 code 邏輯應該是每個字都會被處理成一段字串
把檔案丟進 linux 生出 A-Za-z{}_
的字典檔
開始推 flag
HolyGrenade
把 pyc 丟去 python 的逆向,網上搜一搜很多
發現 flag 是每四個字為一組去加密的
所以 爆破
1 | from hashlib import md5 |
Web
SimpleWindow
清快取後flag在cookie中
Hidden
這題超傻眼,看著一堆人解出來沒想過自己卡在這種莫名其妙的地方…
都找到了 flag 在哪算 卻不會執行QQ
關鍵在 js #3133 的 var r = function(){};
丟到 console 之後用 r()
來執行
d1v1n6
原本用 base64 會無法顯示完整 index.php
,因為字數限制 1000
改用 ?path=php://filter/read=string.rot13
可以噴出完整 code
但發現根本沒差幾行
發現要用 127.0.0.1
才能看到 flag 位置,因為是用 SERVER['REMOTE_ADDR']
所以 X-Forwarded-For
那招沒用
php 偽協議好ㄘ,雖然用 localhost 也不是預期解,因為官方說 regex 沒寫好才導致 localhost 可以用的…
payload : ?path=php://filter/read=convert.base64-encode/resource=http://localhost
Misc
Welcome
簽到題echo -n 'Welcom to AIS3 pre-exam in 2019!' | md5sum
這段丟去執行出來然後包起來就是 flag 了
KcufsJ
根據標題提示是反轉的 JsFuck
執行後會出現在 F12 的 console 中
Are you admin?
將中間的 "is_admin":"no"
用另一個 object 包起來
然後自己構造 "is_admin":"yes"
來通過驗證
payload : {"name":"aaa","is_admin":"yes","obj":{"aaa":"a","is_admin":"no", "age":"12"},"0":"0"}
Pysh
一樣很傻眼,找到了 read 可以用但沒乖乖把文件看完想說先放著
放著放著 就忘了…
這題就是在過濾的字中找可以用的指令
很多種 像上面說到的 read $s;$s
或是 linux 系統中的預設環境變數 $BASH
, $SHELL
(這兩個很屌 看官方解才學到的QQ)
Crystal Maze
對不起,我手走迷宮還用 Excel 畫地圖…
Crypto
TCash
單純爆破
1 | from hashlib import md5,sha256 |