標題:CTF之MISC練習一

taibeihacker

Moderator

一、flag的提交格式​

flag{th1s_!s_a_d4m0_4la9}

二、PDF隐写​

writeup:使用在線word轉pdf工具,轉成word文件,然後拖動就可以查看到flaghttps://app.xunjiepdf.com/pdf2word/

三、GIF图片隐写一​

writeup:1.使用Stegsolve工具的Frame Browser瀏覽器查看靜態的圖片File Format: 文件格式,這個主要是查看圖片的具體信息
Data Extract: 數據抽取,圖片中隱藏數據的抽取
Frame Browser: 幀瀏覽器,主要是對GIF之類的動圖進行分解,動圖變成一張張圖片,便於查看
Image Combiner: 拼圖,圖片拼接
1049983-20210806170733688-1639547127.png
2.二維碼缺少三個小方塊,而這些小方塊被稱為定位圖案,用於標記二維碼矩形的大小,用三個定位圖案可以標識並確定一個二維碼矩形的位置和方向。 3.將靜態圖片截圖保存下,使用phoshtop工具修復二維碼圖片,然後進行掃描

四、jar隐写​

writeup:
1.用jd-gui 打開,直接搜索:flag
1049983-20210806170734226-2031427154.png
1049983-20210806170735894-1564562099.png
2.通過base64解密得到flag{DajiDali_JinwanChiji}

五、压缩包隐写之黑白图片​

writeup:1.用winhex查看這些圖片,沒有發現可利用信息,於是想到黑白可能代表二進制0和1。我們將白色視為0黑色視為1或者反過來嘗試一遍。一共有104張圖片正好是8的倍數,可以轉為8個一對二進制,再轉化為ASCII碼。由於圖片較多,我們寫一個python腳本。這裡使用Python圖像庫PIL(Python Image Library),是python的第三方圖像處理庫。 from PIL import Image
result=''
for i in range(104):
img=Image.open(f'C:\\Users\\backlion\\Desktop\\ctf\\jpg\\gif\\{i}.jpg')
im_RGB=img.convert('RGB') # 將圖片轉換為RGB模式
r,g,b=im_RGB.getpixel((1,1)) #獲得x,y坐標的rgb值
print(r,g,b)# 這題中白色圖片rgb值:255,255,255 黑色圖片rgb值:12,12,0
if r !=255: #255是白色
result +='1'
else:
result +='0'
#將二進制轉換為ascii碼
for i in range(0,len(result),8):
byte=result[i:i+8]
print(chr(int(byte,2)),end='')
'''
rusult:
flag{FuN_giF}
'''2.在線二進制轉字符串http://www.txttool.com/wenben_binarystr.asp
1049983-20210806170736323-824509265.png

六、十六进制转ascii​

writeup:該報文如:c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2writeup:1.這個加解密的方式還是挺好猜的,字母最大為f,猜16進制,於是兩個一組。每兩個一組,將16進制轉換為10進制,發現每組數據都大於127,但是ascii碼的值不大於127,所以所有數值都減去128,再轉換成字符,就得到flag了string='c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
flag=''
for i in range(0,len(string), 2):
s='0x' + string + string[i+1]
flag +=chr(int(s, 16) - 128)
print(flag)2.得到:Hi, FreshDog! The flag is: hjzcydjzbjdcjkzkcugisdchjyjsbdfr注:也可以用JPocketKnife進行進制轉換

七、与佛论禅加解密​

writeup:1.顯示文字為:夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙吶神。舍切真怯勝吶得俱沙罰娑是怯遠得吶數罰輸哆遠薩得槃漫夢盧皤亦醯吶娑皤瑟輸諳尼摩罰薩冥大倒參夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮
2.通過在線翻譯工具http://www.keyfc.net/bbs/tools/tudoucode.aspx開頭上佛曰兩字即可解密佛語的意思:
1049983-20210806170736841-882418160.png
3.接著將解密後的MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9使用rot-13工具(根據題目描述的“如來十三掌”)再一次進行解碼,
得到ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9
1049983-20210806170738486-1202624319.png
import string
def decoder(crypt_str,shift):
crypt_list=list(crypt_str)
plain_str=''
num=int(shift)
for ch in crypt_list:
ch=ord(ch)
if ord('a')=ch and ch=ord('z'):
ch=ch + num
if ch ord('z'):
ch -=26
if ord('A')=ch and ch=ord('Z'):
ch=ch +num
if ch ord('Z'):
ch -=26
a=chr(ch)
plain_str +=a
print(plain_str)
crypt_str=raw_input('Crypto_text:')
print '!------decode------!'
shift=13
decoder(crypt_str,shift)注:rot13使用一個簡單的替換加密算法,對前字符13個字符和後13字符對調
4.base64解密
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

八、pdf隐写之摩莫斯密码​

writeup:1.通過谷歌瀏覽器打開pdf文件,然後復製文字內容到text文字中
1049983-20210806170739240-1445752685.jpg
1049983-20210806170739829-1226725389.png
BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB2.一大段AABABA樣式的東西,猜測是01但是這些有分割,能想到的只有摩斯密碼有分割的,於是嘗試改成摩斯密碼接下來我們把“A”換成“.”,把“B”換成“-”,得到-.-. --- -. --.-.- - .- .-.- - . --- -. --.-- .-.-.- --. ---.---- -.- .---- .---- -.-.-- -- .-- ..- --.--3.通過ctfcraktools工具中莫斯解密工具得到
1049983-20210806170740268-681316427.png
CONGRATULATIONSnullFLAGnull1NV151BL3M3554G34.轉變成:取flagnull 後面的內容,字母換成小寫,套格式flag{1NV151BL3M3554G3}轉換成小寫:flag{1nv151bl3m3554g3}

九、受损rar文件之GIF隐写​

基礎知識:1.RAR文件數據塊結構:
1049983-20210806170740681-2140597341.png
1049983-20210806170741306-451881977.png
2.常見的文件頭頭和文件尾結構:
1049983-20210806170741902-1525952640.jpg
writeup:1.這個地方代表了文件頭,65是flag.txt的文件結尾,A8 3C代表了校驗碼,所以7C代表了塊類型,這裡我們的塊類型是文件頭,所以改成74就可以正常解壓文件。
1049983-20210806170743092-590535828.png
2.對7B進行填充修改為74即可
1049983-20210806170743710-1863320468.png
3.保存後解壓,再把sercet.png丟到winhex裡發現文件頭為gif圖,將圖片後綴名改為.gif。
這裡需要一些關於正常文件編碼的知識:
jpg圖像開始標誌:FF D8 結束標誌:FF D9
gif圖像開始標誌:47 49 46 38 39 61 結束標誌:01 01 00 3B
1049983-20210806170744364-828635658.png

1049983-20210806170745940-1299064485.png
4.修改後綴名為.gif,利用Stegsolve中的frame brower分解成兩個圖片然後用底下的左右箭頭選擇圖層分離出二維碼得到兩張不全的二維碼
1049983-20210806170746500-987564971.png

5.由題可知為雙層圖,用ps打開分離圖層後保存
(具體步驟:點擊圖層- 複製圖層- 確定,再點擊文件- 儲存- 保存)
1049983-20210806170747009-1082782632.png

1049983-20210806170747490-10134175.png
ps全二維碼,掃描得到flag:flag{yanji4n_bu_we1shi}
6.在線PS工具:https://www.uupoop.com/ps/?hmsr=ps_menu(選擇——色域,把色域調成1就能看的二維碼了,然後就拼接)
1049983-20210806170748147-136776722.png

十、zip伪加密之base64隐写​

基礎知識:1.壓縮源文件數據區:
w1asp402qza22172.png

50 4B 03 04:這是頭文件標記(0x04034b50)
14 03:解壓文件所需pkware 版本
00 00:全局方式位標記(判斷有無加密的重要標誌)
08 00:壓縮方式
68 BF:最後修改文件時間
9B 48:最後修改文件日期
FE 32 7D 4B:CRC-32校驗
E9 0D 00 00:壓縮後尺寸
B5 1B 00 00:未壓縮尺寸
09 00:文件名長度
00 00:擴展記錄長度
2.壓縮源文件目錄區:
5ppkv13nztx22173.png

50 4B 01 02:目錄中文件文件頭標記(0x02014b50)
3F 03:壓縮使用的pkware 版本
14 03:解壓文件所需pkware 版本
00 00:全局方式位標記(有無加密的重要標誌,這個更改這裡進行偽加密,改為09 00打開就會提示有密碼了)
08 00:壓縮方式
68 BF:最後修改文件時間
9B 48:最後修改文件日期
FE 32 7D 4B:CRC-32校驗(1480B516)
E9 0D 00 00:壓縮後尺寸(25)
B5 1B 00 00:未壓縮尺寸(23)
09 00:文件名長度
24 00:擴展字段長度
00 00:文件註釋長度
00 00:磁盤開始號
00 00:內部文件屬性
20 80 ED 81:外部文件屬性
00 00 00 00:局部頭部偏移量
壓縮源文件目錄結束標誌:
d4z111rypup22174.png

50 4B 05 06:目錄結束標記
00 00:當前磁盤編號
00 00:目錄區開始磁盤編號
01 00:本磁盤上紀錄總數
01 00:目錄區中紀錄總數
5B 00 00 00:目錄區尺寸大小
10 0E 00 00:目錄區對第一張磁盤的偏移量
00 00:ZIP 文件註釋長度
然後就是識別真假加密
1.無加密
壓縮源文件數據區的全局加密應當為00 00
且壓縮源文件目錄區的全局方式位標記應當為00 00
2.假加密
壓縮源文件數據區的全局加密應當為00 00
且壓縮源文件目錄區的全局方式位標記應當為09 00
3.真加密
壓縮源文件數據區的全局加密應當為09 00
且壓縮源文件目錄區的全局方式位標記應當為09 00writeup:
1.這題全局為00 00 但是在結尾發現是09 00,所以為假加密,把09 00 改成00 00就能解壓打開文件了。
1049983-20210806170749843-1584408947.png
2.通過Zipcenop.jar工具對其進行解密java-jarZipCenOp.jarrxxx.zip
1049983-20210806170750265-791968010.png
接3.著我們打開txt文件,可以看到很多base64密碼U3RlZ2Fub2dyYXBoeSBpcyB0aGUgYXJ0IGFuZCBzY2llbmNlIG9mIHdyaXRpbmcgaGlkZGVuIG1lc3NhZ2VzIGluIHN1Y2ggYSB3YXkgdGhhdCBubyBvbmV=LCBhcGFydCBmcm9tIHRoZSBzZW5kZXIgYW5kIGludGVuZGVkIHJlY2lwaWVudCwgc3VzcGU=Y3RzIHRoZSBleGl zdGVuY2Ugb2YgdGhlIG1lc3M=YWdlLCBhIGZvcm0gb2Ygc2VjdXJpdHkgdGhyb3VnaCBvYnNjdXJpdHkuIFS=aGUgd29yZCBzdGVnYW5vZ3JhcGh5IGlzIG9mIEd yZWVrIG9yaWdpbiBhbmQgbWVhbnMgImNvbmNlYW==bGVkIHdyaXRpbmciIGZyb20gdGhlIEdyZWVrIHdvcmRzIHN0ZWdhbm9zIG1lYW5pbmcgImNvdmVyZWQgb3Ig cHJvdGVjdGVkIiwgYW5kIGdyYXBoZWluIG1lYW5pbmcgInRvIHc=cml0ZSIuIFRoZSBmaXJzdCByZWNvcmRlZCB1c2Ugb2YgdGhlIHRlcm0gd2FzIGluIDE0OTkgYnkgSm9oYW5uZXMgVHJpdGhlbWl1cyBpbiBoaXMgU3RlZ2Fub2dyYXBoaWEsIGEgdHJlYV==dGlzZSBvbiBjcnlwdG9ncmFwaHkgYW5kIHN0ZWdhbm9ncmFwaHkgZ GlzZ8==dWlzZWQgYXMgYSBib29rIG9uIG1hZ2ljLiBHZW5lcmFsbHksIG1lc3P=YWdlcyB3aWxsIGFwcGVhciB0byBiZSBzb21ldGhpbmcgZWxzZTogaW1hZ2VzLC BhcnRpY2xlcywgc2hvcHBpbmcgbGlzdHMsIG9yIHNvbWUgb3R=aGVyIGNvdmVydGV4dCBhbmQsIGNsYXNzaWNhbGx5LCB0aGUgaGlkZGVuIG1lc3NhZ2UgbWF5IGJ
 
返回
上方