CTF | 記錄一次CTF比賽的Writeup

  • 2019 年 10 月 8 日
  • 筆記

0x00 前言

最近因為省賽快來了,因此為實驗室的小夥伴準備了這次比賽,總共10道題目,考慮到大多數小夥伴都剛從大一升到大二,因此整體難度不高,當然有幾道難度還是有的。

題目大多數都是從網上東找西找的,畢竟我也是個菜鳥呀,還要給他們出題,我太難了。

廢話不多說,直接上Writeup吧,以下題目的文件下載地址在此公眾號回復CTF即可獲取。

0x01 隱寫 1

flag:steganoI

簽到題,下載題目圖片,利用記事本打開即可看到flag

0x02 隱寫 2

flag:teamssix

打開圖片,參考題目提示說一般在公共場合才能看見,因此通過盲文對照表可以得出flag是teamssix,圖片中的AXHU只是用來干擾的,這道題也是我參考wechall裡面的一道題型。

0x03 Web 1

flag:iamflagsafsfskdf11223

1、打開題目地址

2、查看源碼找到提示

3、根據提示使用admin登陸,並使用弱密碼

4、嘗試多次都提示失敗,利用萬能密碼再做嘗試,找到flag

0x04 Web 2

flag:76tyuh12OKKytig#$%^&

1、打開題目地址,發現是一個文件上傳介面

2、先把Burp掛上,隨便上傳一個JPG圖片試試,並來到Burp重發這個包

3、在Burp中對文件名進行修改,比如在jpg後加上.png或者其他東西,成功看到flag

0x05 soeasy

flag:HackingLabHdd1b7c2fb3ff3288bff

解法一:

1、下載文件後,發現是vmdk文件,利用DeskGenius打開後,發現Key,此為正確答案

解法二:

1、利用Vmware映射虛擬硬碟同樣可以打開

0x06 Crack

flag:19940808

1、下載題目文件,根據題意,需要對WiFi密碼破解,而且密碼很有可能是鄰居的生日,因此我們利用工具生成字典。

2、接下來利用ewsa進行破解,可以看到破解後的密碼

這道題目當時實驗室有人用kali做的,kali下的工具感覺破解速度更快。

0x07 BiliBili

flag:Congratulations_you_got_it

解法一:

1、使用Wireshark打開數據包,直接搜索ctf

2、找到標識的那一行右擊進行追蹤對應的協議,比如這條是http協議就追蹤http協議,之後再次查找ctf

3、發現ctf括弧後的內容為base64加密,解密即可得到flag

解法二:

1、和解法一一樣,對數據包進行追蹤http流,不難看出這是訪問space.bilibili.com/148389186的一個數據包

2、打開這個網址,同樣可以看到被base64加密的flag

另外打個小廣告,上面這個是我的bilibili號(TeamsSix),歡迎大家關注,嘿嘿

0x08 Check

flag:sAdf_fDfkl_Fdf

1、下載文件,發現是exe文件,放到PEiD里看看有沒有殼以及是什麼語言編寫的,如果有殼需要先脫殼。

2、可以看到使用的C語言寫的,同時是32位,因此使用IDA32位打開,之後找到main函數

3、按F5查看偽程式碼,並點擊sub_401050子函數

4、不難看出下列是一個10進位到ASCII碼的轉換

5、利用在線網站轉換即可獲得flag,網站地址:http://ctf.ssleye.com/jinzhi.html

0x09 Android RE

flag:[email protected]

1、這道題是滴滴出行的一道CTF,下載題目可以看到一個apk文件,先在模擬器中運行看看是個什麼東西

2、功能很簡單,一個輸入框,輸錯會提示Wrong,那麼利用Android killer給它反編譯一下,查找字元「Wrong」

3、可以看到Wrong字元的路徑,接下來進行反編譯,不過可能由於本身軟體的文件,反編譯提示未找到對應的APK源碼,沒關係,換ApkIDE對其進行編譯

4、等待一段時間後,可以看到對應源碼,簡單分析就可以知道該程式碼從hello-libs.so文件載入,並且對mFlagEntryView.getText().toString()函數的內容即我們輸入的內容和stringFromJNI()函數的內容做判斷,如果一致就Correct,即正確,不一致就返回Wrong,即錯誤。

那麼接下來只需要分析stringFromJNI()的內容就行了,因此我們需要知道系統從hello-libs.so文件載入了什麼

5、將APK解壓,找到hello-libs.so文件,由於現在手機都是用arm64位的CPU(我也不知道是不是的啊,聽別人說的),因此我們找到arm64-v8a文件夾下的libhello-libs.so文件,用IDA打開

6、打開IDA後,根據題目提示,Alt +T 查找chuxing

7、成功找到flag([email protected] )輸入到模擬器中看到提示Correct,說明flag正確。

0x10 Easy_dump

flag:F0rens1cs_St2rt

解法一:

1、下載題目文件,提示利用volatilty工具,同時結合文件後綴為vmem(VMWare的虛擬記憶體文件),因此判斷是一個記憶體取證的題目,關於volatilty的使用可以參考官方手冊:https://github.com/volatilityfoundation/volatility/wiki/Command-Reference

廢話不多說,先看看鏡像資訊

# volatility -f xp.vmem imageinfo

2、可以看到該鏡像資訊的為WinXPSP2x86,接下來直接掃描查看一些系統文件中有沒有flag文件

# volatility -f xp.vmem --profile=WinXPSP2x86 filescan | grep flag

3、將該flag.txt文件dump下來

# volatility -f xp.vmem --profile=WinXPSP2x86 dumpfiles -Q 0x0000000005ab74c8 -D ./ -u

4、直接cat flag文件即可看到flag

解法二:

因為該題作者將flag複製到了自己電腦的粘貼板里的,所以直接獲取粘貼板的內容也是可以看到flag的,不過誰能想到這種操作 [笑哭]

# volatility -f xp.vmem clipboard

以上就是本次我為他們準備的CTF的全部內容,大多數都是很基礎的題目,平時拿來練練手還是不錯的,拓寬一下自己的了解面,發現一些自己以前不知道的東西,如果你也想拿上面的題目來玩玩,在此公眾號回復CTF就可以獲取下載地址哦

原文鏈接:https://www.teamssix/year/190925-114420.html