ctf題目writeup(9)

 繼續刷題,找到一個 什麼 藍鯨安全的ctf平臺javascript

地址:http://whalectf.xin/challengesjava

(話說這些ctf平臺長得好像)python

1.sql

放到converter試一下:安全

在用十六進制轉的時候能輸出url編碼,再把url轉換一下:(這裏用converter的unescape就能夠)tcp

這段,乍一看先懵一個base64吧。工具

解密後是這樣的,那就清楚了,這是ascii碼。直接工具轉,或者對着表很快。網站

因此就是 key{welcometovenus}ui

2.編碼

剛開始覺得是柵欄密碼,凱撒密碼什麼的。發現解開後沒有啥東西。

那就試試鍵盤:

跟着感受走,順着這個鍵盤能夠發現 B N C三個字符 一一對應上就好了

key{BNCBNNBNB}

3.

 

 下載解壓後是一個pcapng的流量包,用wireshark打開:

這個包仍是有不少東西的。不過基本上都是上傳圖片啊什麼東西。篩選出來http 發現最後上傳了一個zip

在這直接用wireshark導出文件保存爲zip(右鍵 有個extract)解壓後獲得一個這玩意:

不過我打開後都是空白的,覺得這是否是傳說中的doc什麼的加密。出來後右鍵查看屬性是有大小的,可能藏東西了,再看一眼詳細信息:

妙。

key{23ac600a11eaffc8}

5.

 

 這裏數據包用wireshark打開會報錯

並且根據題目和實際,這是個wifi的數據包,有wpa加密的那種。。。

這種題沒接觸過太多。。。(好像就一道)

因此這時候須要kali下的 aircrack-ng 工具 用字典暴力破解密鑰

密碼是 88888888.

以後 根據 essid 和 密碼 進行破解:

essid能夠直接用 aircrack-ng 命令查看

以後的命令是:

airdecap-ng shipin.cap -e 0719 -p 88888888

這裏會生成一個dec.cap:

打開後找到說的視頻網站:

ctf{push.m.youku.com}

6.

解壓後仍是用wireshark打開:

第一個直接右鍵 follow tcp streams:

看意思這個密碼好像是假的 這裏看下二進制。

7f是 del 就是刪除的意思 這樣就對上了 咱們知道ctf中的flag 常常把字母變成數字

這樣就是 backd00Rmate 就很ctf

flag{backd00Rmate}

7.

試了試柵欄和凱撒,都不太行。

可是越看越以爲像是base64.。。因而把加號和減號刪掉

itislikevenusverymuch

key{itislikevenusverymuch}

8.

 

 

一看就是jsfuck了。直接f12運行:

這裏%21是url編碼,其實就是!

因此key{itisjavascriptenjoy!}

9.

看到後面有一串,嘗試用16進制轉:

這裏看到 字符串是 alert|coolyougettheflag 而後結合這段代碼。 split是以什麼什麼爲分割,在這裏就是 用| 來分割字符串,然後面的1 則是第幾段。

(從0開始) coolyougettheflag就是咱們要的了

因此:key{coolyougettheflag}

10.

打開後看:是一段base64

解密後放到txt是這樣的:

嗯 你會發現 這其實看起來像一個二維碼。。。。

因此 得用腳本了。。這裏用了大佬的腳本:

# -*- coding: UTF-8 -*-
# __Author__:pad0y
from PIL import Image
MAX = 256
with open('flag.txt', 'r') as f:
    c = f.read()
    newIm = Image.new('RGB', (MAX, MAX))
    white = (255, 255, 255)
    black = (0, 0, 0)
    for x in range(0,MAX):
        for y in range(0, MAX):
            if c[MAX*x+y] == '1':
                newIm.putpixel((x, y), black)
            else:
                newIm.putpixel((x, y), white)
    newIm.save('flag.png')

  

分析後獲得:

flag{QR_Code_666_!!_?}

11.

打開後仍是jsfuck 直接f12運行:

這是編碼的問題,保存下來爲unicode形式,而後用winhex這樣的軟件打開:

 

因此:flag{? enusCtf}

12.

真沒想到還有usb協議包。。。

打開後一臉懵逼。

而後逼急了直接notepad++打開,find Pwn:

Pwnium{408158c115a82175de37e8b3299d1f93}

13.

打開後仍是流量包分析。能夠在最後幾回看到有 tar.gz的字樣

通常這種題都是篩選http的 並且通常要找的東西 你看它的長度確定不能是兩三百如下的。 就從這裏頭慢慢細心的找。

因此咱們就得從這段的tcp流裏面提取出一段tar.gz

tar.gz的文件頭是 1f 8b 

用hex模式查看而後尋找1f:

把這段複製下來,到winhex裏面,用hex方式導入,而後另存爲.tar.gz的格式:

打開後就有flag了:

ISG{China_Ch0pper_Is_A_Slick_Little_Webshe11}

14.

這兩道題都是分析文件中的sql注入語句,而後根據字符來肯定flag的值。

這裏轉載大佬的文章,很詳細:

https://blog.csdn.net/qq_34356800/article/details/83895210

15.

百度了一下 這是 傳說中的夏多密碼:

 

 具體的解密:

https://www.33iq.com/group/topic/242254/

16.

打開圖片,文本形式搜flag無果,詳細信息沒有。。。

用神器stegsolve看一下:

識別一下:

17.

圖片用notepad++打開,最後發現flag.txt

試試直接改後綴變成zip,還真行,解壓獲得flag.txt:

 

flag{WelcomeT3WhaleCTF}

18.

這個直接用神器 stegsolve 逐幀分析 發現隱藏一個:

flag{youfindmeWHALE}

19.

直接詳細信息:

 

flag{firsttry}

20.

仍是用 stegsolve 逐幀分析:

GUETCTF{Y0u_sEE_m3}

21.

用stegsolve看,看詳細信息,找flag無果。

用winhex打開:

兔子的腳下果真有東西,一段unicode編碼,解出來:

 

flag{pE3kQzmaMN}

22.

點進去是個黑色的圖片(加載不出來)

能夠複製這個圖片的連接到迅雷,直接就能夠下載了。

(挺大喲,有7mb多。)

而後詳細信息,stegsolve,文本搜索巴拉巴拉沒有啥東西。

拖進winhex慢慢研究。

關於ihdr,涉及到最多的就是寬和高的問題。

這個圖原圖寬比高大出一倍多。是33多少來着。(我改完忘了。。。懶得重下一遍)

熟悉ihdr文件格式的能夠直接去找,不熟悉的能夠搜圖片詳細信息的高度寬度來定位。

在這裏我把高度調整的很高,最終仍是如我所願。

FLAG{ihDR_ALSO_FUN}

23.

丟進stegsolve中發現了這個:

識別一下看看:

還覺得有啥別的坑。。沒想到直接出來了:

flag{AppLeU0}

24.

 

 

25.

打開後你會發現 末尾:

其實打開前就知道了這道題是須要修補文件頭的,反正我電腦顯示不出來圖像。直接補全:

修改前:

修改後:

而後gif就能正常動了。

是裏面的灰色那部分,總共4幀有關的吧,應該是base64編碼,用stegsolve逐幀拿出來:

Y2F0Y2hfdGh1X2R5bmFtaWNfZmxhZ19pc19xdW10ZV9zaW1wbGU= 

base64解碼:

catch_thu_dynamic_flag_is_qumte_simple

要注意這裏有坑。。。單詞要正確

得改爲:

key{catch_the_dynamic_flag_is_quite_simple}

26.

打開後老三樣往上盤她。。。

發現沒啥東西。

丟進linxu binwalk一下:

這裏 的 15AFFB 丟進winhex是這樣的:

看到後先把二進制轉到16進制:

發現不對勁了。由於你轉到16以後,就沒可能再轉了(157位 誰的倍數也不是)

那就看看01.。。。。又想起了上午那個 二維碼 25的平方是625??

代碼:(就是那道題改一下max)

# -*- coding: UTF-8 -*-
# __Author__:pad0y
from PIL import Image
MAX = 25
with open('flag.txt', 'r') as f:
    c = f.read()
    newIm = Image.new('RGB', (MAX, MAX))
    white = (255, 255, 255)
    black = (0, 0, 0)
    for x in range(0,MAX):
        for y in range(0, MAX):
            if c[MAX*x+y] == '1':
                newIm.putpixel((x, y), black)
            else:
                newIm.putpixel((x, y), white)
    newIm.save('flag.png')

  

二維碼小的可憐識別一下:

 

 SCTF{(121.518549,25.040854)}

27.

這道題涉及到的就是最低位這個東西。。。

最低位莫過於 0和1 天然而然就想到二維碼。。。

原圖在stegsolve下有隱寫二維碼可是隻有一點。

bmp屬於比較高位的,這道題之前有相似的,大概就是 用畫圖打開,而後另存爲 png格式

而後再用stegsolve打開:

flag{i love u}

28.

圖片拿過來老三樣。。。啥都沒有鴨。

而後用binwalk發現兩個png:

一個大,一個小,不用說,大的確定隱藏東西了。

用stegsolve打開大的文件,而後選擇 image combiner 選擇小文件:

sub(就是減的意思)

多了一條小紅線。

因此咱們去大文件的red0 看一看:

ISG{E4sY_StEg4n0gR4pHy}

搞定。

今天到這裏。

相關文章
相關標籤/搜索