iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
Security

picoCTF 刷題分享系列 第 16

picoCTF 刷題分享---Day 16(刷題去)

  • 分享至 

  • xImage
  •  

感覺過了好久阿,離期中考越來越近了,還有可怕的資料結構在等著我,誰來保佑我~~~~


題目:crackme-py
解題思路:

  • 這題我用vscode打開後觀察程式碼
  • 看到ROT47這種加密方式
  • 我直接使用 cyberchef 選擇 ROT47 並選擇 bezos_cc_secret
  • 就直接得到flag
  • 但感覺我作弊了,於是我回到程式碼
  • 在choose_greatest()
  • 進行這行 decode_secret(bezos_cc_secret)
  • 同樣就得到flag了
    https://ithelp.ithome.com.tw/upload/images/20240927/20164155hCSQymDg4y.png
  • 格式:picoCTF{flag.content}

題目:keygenme-py
解題思路:

  • 下載檔案會直接看見他把答案分為3個部分
  • 第一步直接免費大放送(以明文直接留在程式碼中
  • 第三步也給了個'}'(真是謝了
  • 所以只要解決第二部即可
  • 看到程式碼中的enter_license()
  • 我會選擇看他的原因是因為,感覺有關flag的突破口就在這(通靈?🤣🤣
  • 首先看他,他要你輸入一個user_key
  • 再執行
if check_key(user_key, bUsername_trial):
        decrypt_full_version(user_key)
  • 先看看bUsername_trial是什麼
  • bUsername_trial = b"SCHOFIELD"(這感覺就有鬼阿阿阿
  • 再去查看check_key(key, username_trial) function
  • 會看到以下畫面
    https://ithelp.ithome.com.tw/upload/images/20240927/20164155muP3fflNRI.png
  • 解釋一下這個程式碼
  • hashlib.sha256(username_trial).hexdigest()[num]
  • hashlib.sha256(username_trial(實際上等於bUsername_trial))
  • (這是在將2進位的bUsername_trial進行雜湊加密成256個字元
    https://ithelp.ithome.com.tw/upload/images/20240927/20164155xarsEuiE1n.png
  • 在這裡數字越大越安全
  • 接下來hashlib.sha256(username_trial).hexdigest()
  • 則是將雜湊的值變為十六進位
  • 最後的[num]則是取值的動作
  • 既然都解釋清楚了
  • 就可以知道,每一次取值就是一個flag.content[num]的值
  • 所以把他[num]都記錄下來並列印出來
    https://ithelp.ithome.com.tw/upload/images/20240927/20164155kwMYtflWpR.png
  • 即可得到
    https://ithelp.ithome.com.tw/upload/images/20240927/20164155ohbDFkTPZB.png
  • 這樣就得到全部三部分的flag了
  • 格式:picoCTF{flag.content}

後記:
第二題這個我看了一些時間,我有感覺到解決的方向,但我還是盡量看懂整篇在幹嘛,各位在嘗試時,也可以做一些註解都會對最後解讀的部分有很大的幫助。


上一篇
picoCTF 刷題分享---Day 15(刷題去)
下一篇
picoCTF 刷題分享---Day 17(刷題去)
系列文
picoCTF 刷題分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言