over 2 years ago

這次HITCON因為在美國奪得DEFCON CTF亞軍導致聲名大噪,我也是看熱鬧的鄉民之一XD
原本只是路過,好奇心驅使之下前一天晚上幫忙寫了Maze的QR code converter,協助拿到那題
之後就更有興趣的一直玩到四點,可惜沒寫出任何一題(畢竟不是資安專業XD)
隔天晚上看到24這題覺得很有趣莫名就拿到分數了XD

  • Maze
    telnet 210.71.253.213 8473
    
    這題telnet進去之後就發現名符其實的是一個迷宮,走一走沒看到有什麼異狀,原本以為是個很複雜需要DFS的迷宮(傳聞說有傳送們),結果Glue Crow走一走發現他是個QR Code!!(靠到底怎麼發現的)

這題有兩種作法,要馬是寫telnet emulator模擬telnet行為建立出QR array,不然就是就是我們用的---手畫

有截圖版本的

也有純文字版本的

http://pastebin.com/A0c5Urth

有鑑於兩種都很難讀,我就立馬寫了一個QR code viewer

http://ensky.tw/mmmmmmmmmmm.php

最後居然還要手動修正錯誤的QR code(比照正確的去修XD),終於解出答案Orz

  • 24
    Let's play a game!
    nc 210.65.89.59 2424
    
    連進去之後
    ===================================================
    === Welcome to the 24 game! ===
    === You have 2 minutes to answer all questions. ===
    ===================================================
    
    
    

    Question (1 of 24): [1, 9, 4, 10]
    Answer:



    雖然不知道24 game是怎樣的遊戲,不過看起來是要回答問題,那直覺猜想就是用+-*/都出結果是24的式子
    試了一下發現果然沒錯
    ===================================================
    === Welcome to the 24 game! ===
    === You have 2 minutes to answer all questions. ===
    ===================================================
    
    Question (1 of 24): [1, 9, 4, 10]
    Answer: 1+9+4+10
    Great!
    

    也就是要在2分鐘內解完24題,聽起來就不是人腦可以作到的事情,所以用python寫了個solver

    我的邏輯滿簡單的,既然數字的數量固定,並且測試後發現可以用括號

    Answer: asdfadsf
    ERROR!!! Answer should match [-+*/0-9()]+
    

    因此救窮舉出了全部的解法。

    // 四個數字加上三個運算子(operator)
       1  op1   2  op2  3  op3  4
    // 括號位置有三種可能
    (            ) or    )
              (           )   or   )
                       (            )
    

    因此窮舉上也很簡單,就直接一直包for就結束了

    測試結果是某些情況下會無解,經提醒發現可以使用python的**(平方)和//(取整除數)運算子

    再使用node.js寫了個簡易的 stream piper 將 nc 和 python 的 stdio 接起來讓程式可以自動跑

    卻發現程式還是有些解會跑不出來,手動測了測發現每個數字都可以在前面加上-變成負的

    改了這個邏輯之後有成功讓程式跑到23題,但24題始終過不了

    試了好久也沒有頭緒,就在要放棄的時候Nier說順序可以調換

    加個permutation之後就瞬間結案XDD

    最後code在此,不能期待有多漂亮畢竟是一次性Hack而已XD

    https://gist.github.com/ensky/c97778d5858be505006f

    但身為沒有資安專業的資工人居然可以在CTF拿到分數還是很爽XD

 
comments powered by Disqus