這是我們在第四屆讀書會成員招募題目釋出 Write-up
題目列表:
HG 巡禮
Web Naughty!!!
Web 基本題
binary1
misc
題目列表:
misc
副檔名是 xlms ,應該就是個 excel2007 文件,打開文件會跳出 Hint: Length is Important!(如果沒有的話,記得要去打開巨集噢!)
跳完巨集的畫面如下:
從檢視 -> 巨集 -> 編輯,可以看到巨集如下:
可以看到 Click() 其實沒有特別作用,因此我們專心看 tyD0cPexufttVOfpTfyO()
Asc 函數:回傳第一個字或數字的 Ascii code
Hex 就是 Hex
Chr 函數:將數字轉回 Ascii,Chr(65) = A.
Dim 命名參數
MsgBox 訊息視窗
Cells 代表 Cells(列,欄),例如Cells(1,2)就是對應到"B1"
註解是 '
我們發現
espB14AcRz = 0
AaMOsc5JD6 = tL8t3JIb5 / espB14AcRz
會因爲除零導致出錯,而不會繼續進行
而 For 迴圈並沒有印出任何東西,以程式邏輯來看,這段讀了某種長度並減掉某種長度轉成 ASCII,這時候讓我們看一下表格內容,我們發現如果把圖片移開,並設定字體非白色,可以看到一些東西在欄位中XD
而內容並沒有特別的意義,我們猜想重要的是長度,因此
試著讓巨集正常跑完並映出內容
發現 flag 就出現了!
當然也有其他解法,但如果是直接從表格上讀長度,就必須解開凱撒加密,將全部的 ASCII 減一才會獲得正確 flag
從檢視 -> 巨集 -> 編輯,可以看到巨集如下:
Sub auto_open()
MsgBox "Hint: Length is Important!"
End Sub
Sub Click()
strCommand = "Powershell -ExecutionPolicy Bypass -noexit"
Set WshShell = CreateObject("WScript.Shell")
Set WshShellExec = WshShell.Exec(strCommand)
End Sub
Sub tyD0cPexufttVOfpTfyO()
Dim tL8t3JIb5, espB14AcRz, AaMOsc5JD6 As Integer
tL8t3JIb5 = Len("70J1faxgHPRMWW1urU2ki77wN") - Asc(Hex(Len("F9KJdgUDtSqilIf")))
espB14AcRz = 0
AaMOsc5JD6 = tL8t3JIb5 / espB14AcRz
For i = Len("GTMaoPRwMZAZ4EuvYKlcJdtC9N8OI") To 46
Chr (Len(Cells(i - Len("PKs6lu5q6MTJyLzce6cRmEyotUHr"), Len("euERY"))))
Next
End Sub
可以看到 Click() 其實沒有特別作用,因此我們專心看 tyD0cPexufttVOfpTfyO()
Asc 函數:回傳第一個字或數字的 Ascii code
Hex 就是 Hex
Chr 函數:將數字轉回 Ascii,Chr(65) = A.
Dim 命名參數
MsgBox 訊息視窗
Cells 代表 Cells(列,欄),例如Cells(1,2)就是對應到"B1"
註解是 '
我們發現
espB14AcRz = 0
AaMOsc5JD6 = tL8t3JIb5 / espB14AcRz
會因爲除零導致出錯,而不會繼續進行
而 For 迴圈並沒有印出任何東西,以程式邏輯來看,這段讀了某種長度並減掉某種長度轉成 ASCII,這時候讓我們看一下表格內容,我們發現如果把圖片移開,並設定字體非白色,可以看到一些東西在欄位中XD
而內容並沒有特別的意義,我們猜想重要的是長度,因此
試著讓巨集正常跑完並映出內容
發現 flag 就出現了!
當然也有其他解法,但如果是直接從表格上讀長度,就必須解開凱撒加密,將全部的 ASCII 減一才會獲得正確 flag