iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
Security

一起資安入門 -- picoCTF 探索與解題系列 第 19

[2021鐵人賽 Day19] General Skills 16

  • 分享至 

  • xImage
  •  
  • 引言
    特別的一題...
    這題大家的評分不高,我想應該真的出得不好/images/emoticon/emoticon01.gif
    不過也意外讓我學到這個新東西~
    話說這題的延伸題就是最後一題 General Skills 了呢。

  • General Skills / mus1c
    https://ithelp.ithome.com.tw/upload/images/20211004/20111429GLsvdSsPeU.png
    提示:
    Do you think you can master rockstar?


    這題很特別,乍看之下真的不知道要做什麼...
    題目給了一個奇怪的歌詞檔案,
    先將它下載下來,會得到 lyrics.txt 檔案:

    Pico's a CTFFFFFFF
    my mind is waitin
    It's waitin
    
    Put my mind of Pico into This
    my flag is not found
    put This into my flag
    put my flag into Pico
    
    
    shout Pico
    shout Pico
    shout Pico
    
    My song's something
    put Pico into This
    
    Knock This down, down, down
    put This into CTF
    
    shout CTF
    my lyric is nothing
    Put This without my song into my lyric
    Knock my lyric down, down, down
    
    shout my lyric
    
    Put my lyric into This
    Put my song with This into my lyric
    Knock my lyric down
    
    shout my lyric
    
    Build my lyric up, up ,up
    
    shout my lyric
    shout Pico
    shout It
    
    Pico CTF is fun
    security is important
    Fun is fun
    Put security with fun into Pico CTF
    Build Fun up
    shout fun times Pico CTF
    put fun times Pico CTF into my song
    
    build it up
    
    shout it
    shout it
    
    build it up, up
    shout it
    shout Pico
    

    這是一段歌詞的樣子,
    看了幾次後,可能是我看過許多不同的程式語言吧,
    總覺得這可能是一種奇妙的語言或指令。

    像是 shout 頻繁出現、 xxx is yyy 、
    還有最可疑的 put xxx into yyy ,
    十足像是將某某變數放入某個值的感覺。

    但這樣還是沒有頭緒,我們看看提示:
    Do you think you can master rockstar?

    我將 rockstar 拿來搜尋 Google ,沒有什麼有用資訊,
    然後再搜尋了 master rockstar
    果不其然這次就出現了一個網站:
    rockstar:try it

    中獎了!這看起來就像是翻譯機或是某種編譯器,
    這次將歌詞貼到上面的大框,按下 Rock 看看:

    下面的 output 出現了一串再熟悉不過的特殊數字,
    觀察它們的數字都介在幾十到一百多之間,
    十之八九是 ASCII code 了。

    我們將除了 Program completed in xxx ms 以外的數字複製,
    然後建立一個檔案例如 code.txt ,貼到裡面後存檔。

    可以藉由 Python 轉換 ASCII code ,
    我們直接寫個 Python 程式 (ascii.py) :

    while True:
        try:
            a = chr(int(input())) # 轉成 int 後 chr 成字元
            print(a, end='')
        except:
            break
    print()
    
    

    注意到我是直接用 input 讀取標準輸入,一般來說是鍵盤,
    但也可以由重新導向從檔案讀取:

    $ python ascii.py < code.txt
    

    也就是從 code.txt 讀取那些數字,
    然後這些資料會由 input() 讀取,最後轉成字元印出:

    rrrocknrn0113r
    

    用 picoCTF{} 包起來:

    picoCTF{rrrocknrn0113r}
    

上一篇
[2021鐵人賽 Day18] General Skills 15
下一篇
[2021鐵人賽 Day20] General Skills 17
系列文
一起資安入門 -- picoCTF 探索與解題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言