1-1 石慶數(shù)碼
(1)打開頁面顯示404,查看源碼沒啥東西姨涡。
(2)點(diǎn)擊404頁面的“GO BACK”衩藤,查看源碼,發(fā)現(xiàn)一串注釋涛漂,得到flag赏表。
1-2 眼疾手快
(1)老題目,打開源代碼可以看到下面一段話匈仗,當(dāng)滿足條件后瓢剿,會執(zhí)行post clicks=1000000
(2)頭鐵手動剛是不可能的23333,直接使用hackbar來post
(3)直接Get Flag
2-1 躲躲藏藏
(1)下載下來是一個二維碼悠轩,掃描之后顯示“you find me”间狂。
(2)右鍵用壓縮包方式打開,發(fā)現(xiàn)有密碼哗蜈,猜是偽加密前标,用winrar修復(fù),得到rebuilt.DDoIM5Ez.png文件距潘。
(3)壓縮包方式打開炼列,獲得flag.xls文件,常規(guī)打開是一堆亂七八糟的東西音比。
(4)丟進(jìn)虛擬機(jī)俭尖,使用命令strings flag.xls | grep zjctf初步得到flag串
(5)提交發(fā)現(xiàn)不行,仔細(xì)觀察字符串,確定為ADFGVX加密稽犁,根據(jù)常規(guī)字母表焰望,手動解出flag。
4-1 你追我趕
(1)打開是個游戲已亥,小恐龍真好玩23333熊赖,選擇讓它死一次,fine虑椎,控制臺出現(xiàn)了新的信息震鹉。
(2)進(jìn)入這個js,發(fā)現(xiàn)有輸出正確flag的判斷條件捆姜。
(2)修改js传趾。
(3)保存之后重新玩一次。多次嘗試泥技,得到flag浆兰。
4-2 心有猛虎
此題nc換行之后啥都沒有還以為沒連上,迷……
一開始根據(jù)題目珊豹,以為是計(jì)算器簸呈,輸入了1+1=,結(jié)果就退出了平夜,猜測是等號被ban了蝶棋。
發(fā)現(xiàn)輸入命令不能立刻輸出到屏幕上,猜測是因?yàn)閜ython的緩存機(jī)制導(dǎo)致執(zhí)行雖然得到了執(zhí)行結(jié)果但是沒有立刻輸出到屏幕上忽妒,再根據(jù)輸入__builtins__會立刻返回一長串內(nèi)容玩裙,所以猜測是要湊夠一定的長度的輸出才能讓它立刻回顯到屏幕上,等號觸發(fā)了結(jié)束段直,會輸出一堆內(nèi)容吃溅,回顯結(jié)果。
(后來Sgdream大師傅復(fù)現(xiàn)之后鸯檬,告訴我以上猜測成立hhhh...感jio這個問題應(yīng)該坑了不少隊(duì))
正經(jīng)解題過程:
(1)xshell連上服務(wù)器决侈,nc連接好,nice喧务,根據(jù)題目”Welcome to ZJCTF Python clever calculator”赖歌,輸入” __builtins__”,發(fā)現(xiàn)如圖所示內(nèi)容:
(2)判斷為python沙箱逃逸功茴。然后各種嘗試庐冯,發(fā)現(xiàn)被ban掉了不少東西,比如system坎穿、os等……
(3)查詢資料展父,使用__import__函數(shù)繞過返劲,用等號(=)結(jié)束,因?yàn)榈忍査坪醣籦an了,所以能直接退出栖茉。
查詢當(dāng)前目錄:
__import__("pbzznaqf".decode('rot_13')).getstatusoutput('pwd')
獲取目錄:
__import__("pbzznaqf".decode('rot_13')).getstatusoutput('ls')
發(fā)現(xiàn)flag文件篮绿,直接cat,得到flag:
__import__("pbzznaqf".decode('rot_13')).getstatusoutput('cat flag')
第一次遇到賽時五小時登錄兩小時的比賽hhh……特別感謝Sgdream大師傅之后的指點(diǎn)吕漂,重新了解了Python的緩存機(jī)制亲配,美滋滋(ˇ?ˇ)