1. 程式人生 > 其它 >攻防世界MISC—進階區21-30

攻防世界MISC—進階區21-30

21.easycap

得到一個pcap檔案,協議分級統計,發現都是TCP協議


直接追蹤tcp流,得到FLAG

22.reverseMe

得到一張鏡面翻轉的flag,放入PS中,影象-影象旋轉-水平翻轉畫布,得到flag

23.stage1

扔進stegsolve中,在green plane 1處發現二維碼


QR掃描得到資料

用010 Editor儲存為pyc檔案,線上反編譯,再儲存為py檔案,執行一下,得到的資料就是flag

(程式碼結尾要自行新增flag())

24.Miscellaneous-200

這是一個繪圖題,
借用了別人的指令碼,稍微修改了一下
from ast import literal_eval
from PIL import Image
f = open('flag.txt', 'r')
corl = [literal_eval(line) for line in f.readlines()]
f.close()
img = Image.new('RGB', (270, 270), '#ffffff')
k=0
for i in range(246):
 for j in range(246):
 	 img.putpixel ([i , j], corl[k])
	  k=k+1
img.save("flag.png")


得到flag

25.Hear-with-your-Eyes

無後綴檔案,010檢視也沒有找到明顯的十六進位制位元組提示,於是嘗試改為zip,成功,開啟,又得到一個無後綴檔案,且010開啟後發現有sound.wav,直接匯入Audacity


檢視頻譜圖(點選左側的倒三角,選擇頻譜圖)

得到flag

26.Hidden-Message

得到pcap檔案,開啟,檢視分級協議,均為UDP


看info這列,可以看出只有後兩位在變且像二進位制資料

提取出來,二進位制轉換沒有成功,看了一下WP,得知需要轉換01的順序

import numbers
number = '10110111100110101001011010001100100110101001000110011101100110101000110110011000'
number1 = number.replace("1","A")
number2 = number1.replace("0","B")
print(number2)
number3 = number2.replace("A","0")
number4 = number3.replace("B","1")
print(number4)

二進位制轉字串,得到flag

27.Recover-Deleted-File

開啟後需要解壓兩次,最後得到disk-image這個檔案,使用extundelete恢復磁碟內容


extundelete參考內容:https://blog.csdn.net/a1779078902/article/details/84657816
執行後得到RECOVERED_FILES資料夾,開啟后里面有一個flag檔案
用kali的root使用者執行,剛開始許可權可能會報錯,可以先執行一下這條命令:

chmog a+x 檔名

然後再執行 ./flag
得到flag

28.What-is-this

得到檔案無後綴,新增zip字尾,解壓兩次,得到兩張jpg


根據經驗,用stegsolve合成一下,得到flag

29.red_green

參考了一下網上的WP,得知是要用指令碼對圖片中的紅綠兩種顏色進行識別,然後轉化為01,最後繪圖
貼上大佬的指令碼

from PIL import Image
import os
import bitstring

image_name = '1.png'
current_path = os.path.dirname(__file__)
im = Image.open(os.path.join(current_path,image_name))
image_width = im.size[0]
image_height = im.size[1]
# load pixel
pim = im.load()
bin_result = ''
for row in range(image_height):
	for col in range(image_width):
    	if pim[col,row][0] == 255:
        	bin_result += '1'
    	else:
        	bin_result += '0'
with open(os.path.join(current_path,'result.jpg'),'wb') as f:
f.write(bitstring.BitArray(bin=bin_result).bytes)

匯出的圖片上面就是flag

30.base64÷4**

得到一串編碼,根據題目提示,64 / 4 = 16;,直接線上base16解碼,得到flag