計算機安全 – Homework 0x00

寫這篇的目的是想要記錄我 Homework 0 的掙扎過程,跟我一樣在修課前零經驗的人可以路過看看,或許就有一些比較好的 Overview 可以更有效率的入門。我覺得資安這個領域入門網路資源挺少。關於 CTF 競賽的介紹可以看 Hitcon 的介紹。

這個作業是修計算機安全需要完成的修課門檻,基本上如果做不出來的話後面只會更痛苦。 Hw 0x00 總共有五題,分別是資訊安全的五大領域。跟 ACM 一樣,是在相對理想的環境下進行的思考與模擬,來鍛鍊未來可能應用在實務上的能力。菜雞如我,還是再多寫寫題目做做練習吧QAQ~

Buffer Overflow (Pwn)

Pwn 的意思是取得控制,而在連線 Server 時就是去取得 Server 的 Shell 。
首先要想辦法學會使用 gdb (去 Google ),再來可以打開題目提供的 Binary 檔案。
觀察到裡面有個神奇的函數叫 hidden ,在 0x400566 。

再來程式會呼叫 gets() ,應該剛開始寫 C/C++ 時都會發現系統可能會跳出這是一個 unsafe function 的警告,因為 gets() 沒有對輸入長度做檢查,所以當輸入的字串大於陣列長度時就會 overflow ,稱為 Buffer Overflow 。這時候我們可以想辦法利用這個 overflow 去覆蓋一些我們想要的位置(計算需要 overflow 多少則端看 buffer 大小與 call 呼叫記憶體位置的指令離 gets 多遠),而我們可以覆蓋 return 時的記憶體位置來跳到 hidden 。這個 hidden 會呼叫 execve("/bin/sh") ,也就是取得 bash ,就是把 shell 呼叫出來了,也就是最新手的 pwn 了!

Pusheeeeen (Web)

把開發者工具打開點入提供的連結會發現是 302 跳轉,經過一陣 Google 就會發現 302 跳轉不代表那個跳轉的網頁是空的,可以用 curl 來查看那個網頁,一 curl 就會看到 flag 了。

MdRsRcXt (Crypto)

這個標題加上題目附的 code 就有些端倪,仔細一看之後發現標題是四個加密方式的頭兩個單字連在一起,分別是 MD5, RSA, RC4, XTEA 。

  • XTEA:對稱式加密,同樣的操作加減相反做即可解密
  • RC4:對稱式加密,只要把同樣 function 做即可解密
  • RSA:因為附檔已經告訴我們加密用的 e 了,因此可以推得 inverse modulo d 來解密
  • MD5:網路上有 dictionary attack 的 solver ,把輸出的 md5 放上去即可解。(要注意的是 MD5 的長度是 32)

babystego (Misc)

Stego 似乎是一門很酷的學問。不過這個主題包含在 Misc 底下,所以在修計安的時候沒有更多的深入。
這一題是 LSB 隱寫,可以寫一個 python script 來把圖片裡每個 pixel 特定的末段 byte 擷取出來輸出。
而把藍色第 0 個 bit 抽取出來之後做成一個檔案。用 file 指令一看發現是一個音檔!幫檔案加上副檔名之後可以聽,但是是混亂的,用 audacity 裡面的特效編輯把他前後顛倒之後他就會唸出 16 進位數字,把它打出來之後轉成 ASCII 碼就是 flag 了!

notbabyjava (Rev)

可以用指令 file 來查看那個檔案是什麼東東,會發現他是可以解壓縮的 .jar 檔。
在 Mac 上輸入專端機指令解密出來的 Main.class 會有亂碼,所以好像要用 java decompiler 才能看到完整的 Main.class.
在 windows 電腦上載了 DJ Java Decompiler 之後把反組譯出來的程式碼 dump 出來就會發現一串密碼。
照著加密的方式解密回去就可以了就可以得到 flag 。

如果你覺得有收穫,可以用 30 NTD 來支持我繼續創作更多內容。因為做自己喜歡的事而得到報酬,是再好不過的事了。(街口支付)

Author: eopXD

Hi 我是 eop ,希望人生過得有趣有挑戰XD

Leave a Reply