1-1 石慶數(shù)碼
(1)打開頁(yè)面顯示404,查看源碼沒(méi)啥東西。
(2)點(diǎn)擊404頁(yè)面的“GO BACK”,查看源碼,發(fā)現(xiàn)一串注釋,得到flag。

1-2 眼疾手快
(1)老題目,打開源代碼可以看到下面一段話,當(dāng)滿足條件后,會(huì)執(zhí)行post clicks=1000000

(2)頭鐵手動(dòng)剛是不可能的23333,直接使用hackbar來(lái)post

(3)直接Get Flag

2-1 躲躲藏藏
(1)下載下來(lái)是一個(gè)二維碼,掃描之后顯示“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ī)字母表,手動(dòng)解出flag。

4-1 你追我趕
(1)打開是個(gè)游戲,小恐龍真好玩23333,選擇讓它死一次,fine,控制臺(tái)出現(xiàn)了新的信息。

(2)進(jìn)入這個(gè)js,發(fā)現(xiàn)有輸出正確flag的判斷條件。

(2)修改js。

(3)保存之后重新玩一次。多次嘗試,得到flag。

4-2 心有猛虎
此題nc換行之后啥都沒(méi)有還以為沒(méi)連上,迷……
一開始根據(jù)題目,以為是計(jì)算器,輸入了1+1=,結(jié)果就退出了,猜測(cè)是等號(hào)被ban了。

發(fā)現(xiàn)輸入命令不能立刻輸出到屏幕上,猜測(cè)是因?yàn)閜ython的緩存機(jī)制導(dǎo)致執(zhí)行雖然得到了執(zhí)行結(jié)果但是沒(méi)有立刻輸出到屏幕上,再根據(jù)輸入__builtins__會(huì)立刻返回一長(zhǎng)串內(nèi)容,所以猜測(cè)是要湊夠一定的長(zhǎng)度的輸出才能讓它立刻回顯到屏幕上,等號(hào)觸發(fā)了結(jié)束,會(huì)輸出一堆內(nèi)容,回顯結(jié)果。
(后來(lái)Sgdream大師傅復(fù)現(xiàn)之后,告訴我以上猜測(cè)成立hhhh...感jio這個(gè)問(wèn)題應(yīng)該坑了不少隊(duì))
正經(jīng)解題過(guò)程:
(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ù)繞過(guò),用等號(hào)(=)結(jié)束,因?yàn)榈忍?hào)似乎被ban了,所以能直接退出。
查詢當(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')

第一次遇到賽時(shí)五小時(shí)登錄兩小時(shí)的比賽hhh……特別感謝Sgdream大師傅之后的指點(diǎn),重新了解了Python的緩存機(jī)制,美滋滋(ˇ?ˇ)