0x01 PNG圖片
PNG文件結(jié)構(gòu)分析
https://my.oschina.net/ososchina/blog/801358
(1)用16進(jìn)制編輯工具更改圖片的高度,會(huì)只顯示圖片的一部分族操,下面的部分就被隱藏了苛坚,是個(gè)藏東西的好辦法
找表示寬度和高度的位置的話比被,可以先看看圖片的屬性,得到寬高值泼舱,轉(zhuǎn)成16進(jìn)制等缀,搜索16進(jìn)制值就找到了
注:png圖片的保存恢復(fù)效果比較好,jpg貌似有點(diǎn)問(wèn)題
題目鏈接:http://pan.baidu.com/s/1qY8sxZI 密碼:5xam
圖片尺寸為500x420(寬x高)
00 00 00 0D 說(shuō)明IHDR頭塊長(zhǎng)為13
49 48 44 52 IHDR標(biāo)識(shí)
00 00 01 F4 圖像的寬娇昙,500像素
00 00 01 A4?圖像的高尺迂,420像素
最后四位CB D6 ?DF ?8 A為CRC校驗(yàn)
將圖片的高改為500像素就拿到flag了
(2)初次遇見(jiàn)條形碼。冒掌。噪裕。。
各種工具找股毫,最后看了writeup才知道這馬身上有條形碼膳音。。铃诬。祭陷。。
還是用畫(huà)圖工具拼接出來(lái)的完整條形碼去掃描的趣席,不會(huì)ps愁死人兵志。。吩坝。毒姨。。
在線掃描https://online-barcode-reader.inliteresearch.com/
(3)煩人de皮卡丘
題目鏈接:http://pan.baidu.com/s/1i5IG3JZ 密碼:lymw
不管是用binwalk還是stegsolve左右點(diǎn)都沒(méi)有結(jié)果钉寝,在大佬這找到了答案http://blog.csdn.net/fuzz_nancheng/article/details/53384353?locationNum=4&fps=1
原理我也不懂啊弧呐。。嵌纲。俘枫。。又找到相關(guān)文章http://www.tuicool.com/articles/qINzyum逮走,有待理解鸠蚪。。师溅。茅信。
(3)雙圖
題目鏈接:http://pan.baidu.com/s/1pLiCMdd 密碼:590r
拿過(guò)來(lái)圖片先用binwalk分析一波,發(fā)現(xiàn)有兩張圖片墓臭,用winhex摳出來(lái)之后發(fā)現(xiàn)和第一張一樣蘸鲸,第一張命名1.png,第二張2.png窿锉,用linux的compare命令比較一下酌摇,
compare 1.png 2.png diff.png,發(fā)現(xiàn)diff.png下面有紅線膝舅,
用stegslove打開(kāi)2.png選擇image combiner
選擇1.png這時(shí)候會(huì)做一個(gè)xor運(yùn)算,保存圖片為solved.bmp
winhex打開(kāi)solved.bmp
窑多,發(fā)現(xiàn)除了00就只有這里有東西了
記下地址之后把2.png用ps打開(kāi)另存為2.bmp仍稀,再用winhex打開(kāi)2.bmp找到剛剛記下的地址把16進(jìn)制數(shù)據(jù)復(fù)制出來(lái),寫(xiě)個(gè)腳本把其中的二進(jìn)制數(shù)扣出來(lái)埂息,00為0,01為1然后再把二進(jìn)制轉(zhuǎn)換成ascii碼得到flag
(4)再遇雙圖
題目鏈接:http://pan.baidu.com/s/1qYtzZIG 密碼:31bg
這次很直接技潘,解壓出來(lái)就是雙圖,用stegslove的image combiner
保存反色耿芹,再用stegslove對(duì)二維碼變化一下崭篡,得到三張二維碼,掃描結(jié)果是DES? 6XaMMbM7
? 和一長(zhǎng)串字符吧秕,des加密琉闪,秘鑰是6XaMMbM7,解密吧得到flag
(5)py的交易
題目鏈接:http://pan.baidu.com/s/1c2KmV1A 密碼:2m3f
binwalk跑了一下除了很多的zlib什么也沒(méi)發(fā)現(xiàn)砸彬,winhex打開(kāi)看到了幾個(gè)連續(xù)的pypypy颠毙。。砂碉。蛀蜜。。在一串常規(guī)的字符中看到了fireworks增蹭。滴某。。
發(fā)現(xiàn)圖層1被隱藏了滋迈,打開(kāi)后發(fā)現(xiàn)了二維碼
掃描得到一串16進(jìn)制
03f30d0a3b8bed56630000000000霎奢。。饼灿。幕侠。。用winhex保存一下看到了CTF字樣碍彭,
還有pyt晤硕。。file一下發(fā)現(xiàn)python 2.7 byte-compiled庇忌,應(yīng)該是pyc了舞箍,用uncompyle解一下發(fā)現(xiàn)flag里有個(gè)變量key,那key就是py了皆疹。強(qiáng)行符合題目要求创译。。墙基。
(6)盲水印攻擊
這里是利用腳本及說(shuō)明? https://github.com/chishaxie/BlindWaterMark
當(dāng)用compare兩張png之后發(fā)現(xiàn)不再是上面雙圖情況下的一條紅線软族,而是很多條,就可以考慮一下是不是盲水印攻擊了
(7)IDAT數(shù)據(jù)塊隱藏
前面說(shuō)過(guò)png的IHDR屬性残制,在png中立砸,大致分為四個(gè)大的數(shù)據(jù)塊,IHDR數(shù)據(jù)塊初茶,PLTE數(shù)據(jù)塊(調(diào)色板)颗祝,IDAT數(shù)據(jù)塊,IEND數(shù)據(jù)塊(結(jié)尾標(biāo)志)恼布,IDAT數(shù)據(jù)塊在一個(gè)png圖像中是可以存在多個(gè)的螺戳,但是好像正常情況下binwalk檢測(cè)和插入了IDAT數(shù)據(jù)塊后檢測(cè)的結(jié)果是不一樣的,折汞,可以這樣來(lái)辨IDAT是否有問(wèn)題
比如這是正常的png圖片倔幼,分析的結(jié)果是
這個(gè)圖片也是有多個(gè)IDAT的塊的,而在添加了一個(gè)IDAT塊之后檢測(cè)結(jié)果是這樣
并且FFDA位置是第二個(gè)IDAT的起始位置爽待。當(dāng)把第一個(gè)IDAT塊扣掉之后原圖就會(huì)顯露出來(lái)损同,
IDAT包含了四部分,第一部分是數(shù)據(jù)塊長(zhǎng)度(4位16進(jìn)制)鸟款,第二部分是IDAT標(biāo)識(shí)符(4位16進(jìn)制)膏燃,第三部分是數(shù)據(jù)塊,第四部分是CRC校驗(yàn)碼(4位16進(jìn)制)
00 00 FF A5(數(shù)據(jù)塊長(zhǎng)度為FFA5)
49 44 41 54 (IDAT標(biāo)識(shí)符)
接下來(lái)是數(shù)據(jù)塊何什,在FFA5長(zhǎng)度的數(shù)據(jù)塊之后是4位16進(jìn)制的CRC校驗(yàn)碼
并且合并過(guò)的IDAT的png圖片用fireworks打開(kāi)會(huì)提示格式錯(cuò)誤组哩,查看不了,ps就沒(méi)有這個(gè)功能处渣。伶贰。。霍比。
0x02jpg圖片
(1)圖種
題目鏈接:http://pan.baidu.com/s/1c2L8euk 密碼:4h6k
binwalk跑一下發(fā)現(xiàn)是兩張圖片
第二張圖片的偏移量是158792幕袱,用winhex將第二張圖片提取出來(lái)保存為jpg格式就是flag了
或者用foremost提取 foremost -v -i 2.jpg -o /root/aa ? ? aa為空目錄
(2)畫(huà)圖
題目鏈接:http://pan.baidu.com/s/1o7ZkGC6 密碼:rmro
這里沒(méi)有flag,用winhex打開(kāi)發(fā)現(xiàn)圖片后面有很多的數(shù)據(jù)
復(fù)制下來(lái)保存為txt文件用notepad++轉(zhuǎn)換一下編碼
這就是坐標(biāo)了,這樣來(lái)畫(huà)圖吧 轉(zhuǎn)換成gnuplot能識(shí)別的格式
掃碼得到flag
(3)妹子的默默
題目鏈接:http://pan.baidu.com/s/1c1YjjDA 密碼:id5a
binwalk跑一下發(fā)現(xiàn)rar文件,但是加密了悠瞬。们豌。。浅妆。找了很久密碼望迎,看了大佬的writeup才知道密碼是圖片上的“喜歡我嗎.”注意:密碼是漢字不是拼音,解壓出來(lái)是這個(gè)
第一個(gè)莫斯電碼解碼凌外,得到一個(gè)網(wǎng)址,根據(jù)下面 的提示是AES加密辩尊,解密得到momoj2j.png訪問(wèn)http://c.bugku.com/momoj2j.png得到二維碼
(4)F5隱寫(xiě)
鏈接:http://pan.baidu.com/s/1cnMYzs 密碼:v0er
cd F5-steganography
java Extract 123456.jpg -p 123456
后會(huì)生成output.txt文件,里面就有flag了
0x03bmp格式圖片隱寫(xiě)
題目鏈接:http://pan.baidu.com/s/1jIp82NG 密碼:ikov
下載下來(lái)之后發(fā)現(xiàn)后綴是png康辑,然而winhex打開(kāi)發(fā)現(xiàn)并不是png頭文件
file一下是bmp文件摄欲,用wbs43open來(lái)解密吧http://pan.baidu.com/s/1slc2YHR轿亮,
密碼值為空
解出來(lái)用notepad打開(kāi)就看到flag了
0x04流量分析
題目鏈接:http://pan.baidu.com/s/1mi3aWwK 密碼:4fd9
(1)下載了一個(gè)pcapng的文件,用wireshark打開(kāi)胸墙,過(guò)濾條件是http協(xié)議我注,發(fā)現(xiàn)了一句話的痕跡
在開(kāi)始的時(shí)候發(fā)現(xiàn)
有flag.tar.gz
接下來(lái)的http里應(yīng)該就有這個(gè)數(shù)據(jù)了,在最后一個(gè)包里發(fā)現(xiàn)
解一下壓縮吧
其他
(1)遇到了一個(gè)exe文件迟隅,用notepad++打開(kāi)發(fā)現(xiàn)是一串base64但骨,直接把代碼復(fù)制到在線base64轉(zhuǎn)圖片得到flag
題目鏈接:http://pan.baidu.com/s/1kUCWiNX 密碼:xlui
在線轉(zhuǎn)換 http://imgbase64.duoshitong.com/
(2)遇到一個(gè)寬帶信息泄露的bin文件用routerpassview查看搜索username找到用戶名就是flag
題目鏈接:http://pan.baidu.com/s/1pLbQzTT 密碼:g1i9
(3)linux基本問(wèn)題
題目鏈接:http://pan.baidu.com/s/1dFIivh3 密碼:olcx
用notepad++打開(kāi)發(fā)現(xiàn)flag.txt,用binwalk提取得到flag.txt
(4)onlyonefile
題目鏈接:http://pan.baidu.com/s/1geO9DHT 密碼:nia7
下載之后先用binwalk跑了一下發(fā)現(xiàn)很多zip包,果斷分解智袭,發(fā)現(xiàn)文件夾里都是布置格式的文件但名字是有規(guī)律的奔缠,并且還有一個(gè)0.zip解壓出來(lái)也沒(méi)發(fā)現(xiàn)什么,用winhex打開(kāi)第一個(gè)文件看到了PNG吼野,猜想是png圖片校哎,但是結(jié)尾沒(méi)有IEND,不完整箫锤,打開(kāi)最后一個(gè)文件發(fā)現(xiàn)了IEND贬蛙,題目又叫onefile,應(yīng)該是圖片分解了谚攒,于是linnux下cat outfile/* >1.png合成了png圖片阳准,但是依舊沒(méi)有flag,binwalk發(fā)現(xiàn)圖片后面好多zlib文件馏臭,找了很久野蝇,再用winhex查看發(fā)現(xiàn)了頭文件不遠(yuǎn)處的Adobe Fireworks CS5,下載下來(lái)看起來(lái)和ps差不多括儒。绕沈。。帮寻。乍狐。。打開(kāi)圖片后原來(lái)是兩個(gè)圖層固逗,把第一張圖片拉開(kāi)再翻轉(zhuǎn)一下二維碼顏色得到flag了浅蚪。
(5)再遇Adobe Fireworks CS5
題目鏈接:http://pan.baidu.com/s/1c3vzum 密碼:n26x ? 題目名為IHDR
這次比較干脆,直接給了一個(gè)png文件烫罩,winhex打開(kāi)一切正常惜傲,binwalk跑一下還是滿大街的zlib包,也發(fā)現(xiàn)了Adobe Fireworks CS5字樣贝攒,于是用Adobe Fireworks CS5打開(kāi)盗誊,發(fā)現(xiàn)格式錯(cuò)誤。。哈踱。荒适。∠桑回去看了看png文件格式吻贿,沒(méi)毛病,那就只有crc沒(méi)有檢測(cè)是否正確了哑子,給個(gè)crc抄襲的計(jì)算代碼。鏈接:http://pan.baidu.com/s/1dFcQTu5 密碼:ytxd? 里面的數(shù)據(jù)替換為相應(yīng)的HIDR Chunk肌割,就得到正確的crc了卧蜓,再次用Adobe Fireworks CS5打開(kāi)flag就直接出來(lái)了
(6)這個(gè)應(yīng)該屬于雜項(xiàng)
題目鏈接:http://pan.baidu.com/s/1jIwZIFc 密碼:bk62
file一下發(fā)現(xiàn)是data文件(跟沒(méi)發(fā)現(xiàn)一樣),扔到winhex里發(fā)現(xiàn)是這樣
FF D8不就是jpg頭文件,FF D9不就是jpg尾文件標(biāo)志嗎把敞,原來(lái)是把16進(jìn)制逆過(guò)來(lái)了 弥奸,寫(xiě)個(gè)腳本再還原回來(lái)就好了?
f=open("1.reverseme","rb")
g=open("1.jpg","wb")
f.write(g.read()[::-1])
f.close()
g.close()
用ps旋轉(zhuǎn)一下就好了
(7)加密的文檔
題目鏈接:http://pan.baidu.com/s/1misRWU0 密碼:b19t
下載得到一個(gè)zip壓縮包,確實(shí)加密了奋早。盛霎。。耽装》哒ǎ可是題目沒(méi)有給密碼提示啊,偽加密掉奄?試試看规个,眼瞎的我沒(méi)有看到在底部50 4B ,這個(gè)地方改成了09 00
還是找到writeup才回來(lái)找姓建,不過(guò)看到了大神用010Editor诞仓,又get到一個(gè)新工具,并且看到未加密是這里是0速兔,加密這里標(biāo)志位就不是0了
別忘了第二行還有標(biāo)志位墅拭。。涣狗。谍婉。
好了,改成0屑柔,成功解壓出一個(gè)docx文檔屡萤,
剛開(kāi)始還以為是把flag字體和背景顏色設(shè)置一樣了,結(jié)果沒(méi)有掸宛。死陆。。把圖片拷出來(lái)也沒(méi)找到。措译。别凤。。又回來(lái)看大神的writeup领虹,解壓之后的docx文檔還是藏著壓縮包规哪。。塌衰。诉稍。改成zip格式解壓出來(lái)找到兩張圖片
吐了一升血。最疆。杯巨。。努酸。