iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
Security

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

[2021鐵人賽 Day11] General Skills 08

  • 分享至 

  • xImage
  •  
  • 引言
    昨天學到 ssh 以及 「大括號的分配律」─ Brace Expansion

    這邊再補充一點大括號使用方法,最常見主要有兩種用法:

    1. 分配律用法
      例如:創建 apple.txt after.txt as.txt 三個檔案

      $ touch a{pple,fter,s}.txt
      

      總之就是把共同的部份寫在大括號外面即可。

    2. 連續用法
      例如:創建 file1, file2, ..., file100 等100個資料夾

      $ mkdir file{1..100}
      

      把連續的字母或數字的寫在大括號內,用 .. 隔開即可,
      原本需要100條命令現在只要1條就可以做到。

    3. 當然也可以混合使用:

      $ touch file_{1..5}_{old,new}
      

      這樣會產生10個檔案,
      file_1_oldfile_1_newfile_2_old ...

  • General Skills / Lets Warm Up
    https://ithelp.ithome.com.tw/upload/images/20210925/20111429nwlthAXmyD.png
    題目說:假如一個字的開頭字母的16進位是 0x70 ,那它的 ASCII code 是什麼?

    這題應該算是非常簡單的題目了,可以用推算的:

    1. 'A'=65 、 'a'=97 這兩個字元的 ASCII code 建議可以背起來,
      它們兩個差32 ,這個特性使得它們在二進制表示時只有1個 bit 不同。
    2. 0x70 的10進位是112,簡單轉換方式是,十進位的十位數改乘以16,
      例如 0x70 將 7 乘以16 ,於是得到 112 。
    3. 112 - 97 = 15 ,大寫 Z 的 ASCII code 是 90 , 112 明顯超過 90 ,
      可以知道它是小寫的字母,所以從 'a'=97 開始算。
    4. 'a' 往後數15個就是答案: 'p'

    但我們也可以寫簡單的程式來判斷:

    # ascii.py
    c = chr(0x70)
    print(c)
    

    執行後會得到:

    $ python ascii.py
    p
    

    最後用 flag 格式包住 p 即可:
    picoCTF{p}


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

尚未有邦友留言

立即登入留言