[BJDCTF 2nd]最簡單的misc-y1ng
1、zip偽加密
2、補全png文件頭
3、hex轉ascii。
[BJDCTF 2nd]A_Beautiful_Picture
1、在linux下打不開,高被改了。
[BJDCTF 2nd]小姐姐-y1ng
1、jpg圖片,HxD搜索關鍵字BJD。或者strings...
[BJDCTF 2nd]Real_EasyBaBa
1、jpg圖片,對比其他jpg格式,發現中間有段字符,離遠點好看。
[BJDCTF 2nd]EasyBaBa
1、foremost命令分離jpg圖片
2、file命令或HxD查看文件類型,改后綴為.avi,用pr打開,一個4張二維碼
3、hex轉ascii。
[BJDCTF 2nd]聖火昭昭-y1ng
1、jpg圖片屬性,新與佛論禪解密,得到:
gemlovecom
2、outguess隱寫:
outguess -k "gemlove" -r sheng_huo_zhao_zhao.jpg 1.txt
[WUSTCTF2020]alison_likes_jojo
1、在boki.jpg中發現zip,用binwalk命令分離
2、暴力破解后得到:
WVRKc2MySkhWbmxqV0Zac1dsYzBQUT09
3、base64 decode后得到:
killerqueen
4、jljy.jpg,outguess隱寫
outguess -k "killerqueen" -r jljy.jpg out.txt
[WUSTCTF2020]爬
77637466323032307b746831735f31735f405f7064665f616e645f7930755f63616e5f7573655f70686f7430736830707d
hex轉ascii。
[WUSTCTF2020]find_me
1、在jpg圖片屬性里發現盲文,用在線解密:https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=mangwen

[WUSTCTF2020]girlfriend
1、wav打開聽都是電話音,用dtmf2num.exe可以破解

999*666*88*2*777*33*6*999*4*444*777*555*333*777*444*33*66*3*7777
2、到這兒,我連賽后的wp都沒看懂(原因就是我我手機英文9鍵沒打開)
手機英文9鍵解密,直接對着輸數字就行
得到:
youaremygirlfriends
[NPUCTF2020]HappyCheckInVerification(未解完)
1、用file命令得知是zip,改后綴后解壓失敗,用winrar自帶的修復工具也8行

發現zip文件尾被放在了開頭(或者對zip熟悉的話,直接看開頭是50 4B 05 06),zip偽加密
2、用windows自帶畫圖工具補全3個定位點,得到:
?flag{this_is_not_flag}三曳所諳陀怯耶南夜缽得醯怯勝數不知喝盧瑟侄盡遠故隸怯薩不娑羯涅冥伊盧耶諳提度奢道盧冥以朋罰所即栗諳蒙集皤夷夜集諳利顛吶寫無怯依奢竟#¥#%E68BBFE4BD9BE68B89E6A0BCE79A84E5A7BFE58ABFE59CA8E69C80E5908E32333333||254333254242254338254342254231254338254345254432254238254643254236254145254239254441254437254234254232254131254236254245253244253244254343254438254330254341254336254435...sadwq#asdsadasf faf\(use\)dasdasdafafa_\(ba##se64\)
與佛論禪解密,得到:
說了這不是佛拉格,你還來轉?給爺爪巴
base16decode,得到:
拿佛拉格的姿勢在最后2333
后面一串hex轉ascii(發現這個base16解出來也是一樣的),得到:
%C3%BB%C8%CB%B1%C8%CE%D2%B8%FC%B6%AE%B9%DA%D7%B4%B2%A1%B6%BE%2D%2D%CC%D8%C0%CA%C6%D5
urldecode(編碼為gb2312),得到:
沒人比我更懂冠狀病毒--特朗普
整段最后提示use base64
3、GWPI_1.mp4
能聽到2處電話音,視頻轉wav音頻后,


但是我用dtmf2num.exe解這段是44807
第二段整不出來,這玩意太難了
[網鼎杯 2020 青龍組]虛幻2
hint:1. 漢信碼 2. 圖片要轉轉 3. 暴力修補
知識點
4個腳是定位點,圈出來的輔助定位點一圈是白的
題解
from PIL import Image
img = Image.open("file.png")
str = ''
for w in range(36):
for h in range(12):
rgb = img.getpixel((w,h))#取rgb值,發現都是255,0。255記1,0記0
str += '1' if rgb[0] == 255 else '0'
str += '1' if rgb[1] == 255 else '0'
str += '1' if rgb[2] == 255 else '0'
size = int(len(data)**0.5)#36
code = Image.new('RGB',(36,36))
i=0
for x in range(36):
for y in range(36):
if str[i] == '1':
code.putpixel((x,y),(255,255,255))
else:
code.putpixel((x,y),(0,0,0))
i+=1
code.show()
code.save('res.png')
得31*31規格的碼,對照一下,不一樣?整體逆時針旋轉90度,得到:

后來看fz大佬的wp,那樣不行,轉轉轉不會那么簡單隨便
將res.png逆時針旋轉180度,再左右翻轉,感覺和前面文檔的特征差不多,再改那個7*7的定位點
from PIL import Image
img = Image.open("res.png")
img = img.rotate(180) #逆時針180度
img = img.transpose(Image.FLIP_LEFT_RIGHT) #左右鏡像
img.save('slip.png')
漢信碼在線識別網站可能因為比賽掃的人太多停了
用中國編碼app可以識別遼,嗚嗚嗚
[GKCTF2020]code obfuscation
hint:壓縮包密碼是加密過的
1、用win自帶畫圖工具把缺少的黑色填好

2、binwalk分離(png)出加密rar
base16、32、36(不會)、58、62、64、91(不會)、92(不會)挨個試
base58:CfjxaPF解鎖rar
3、在線js反混淆解得:
for n in a b c d e f g h i j k l m n o p q r s t u v w x y z do eval An = "n"
done
for n in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z do eval An = "n"
done
num = 0
for n in a b c d e f g h i j do eval Bn = "n"
num =
$((num + 1)) done alert(
"Bk=' ';
Bm='"';
Bn='#';
Bs=' (';
Bt=')';
By='.';
Cb=';';
Cc=' < ';
Ce=' > ';
Cl='_ ';
Cn=' {';
Cp='}';
Da='0 ';
Db='1 ';
Dc='2 ';
Dd='3 ';
De='4 ';
Df='5 ';
Dg='6 ';
Dh='7 ';
Di='8 ';
Dj='9 ';
")
對着上面這寫出來就行了
[NPUCTF2020]碰上彩虹,吃定彩虹!
題目給了maybehint.txt、lookatme.txt、secret。不過,secret不知道是什么類型的file。
maybehint.txt
零寬空格(zero-width space, ZWSP)用於可能需要換行處。
Unicode: U+200B HTML:
零寬不連字 (zero-width non-joiner,ZWNJ)放在電子文本的兩個字符之間,抑制本來會發生的連字,而是以這兩個字符原本的字形來繪制。
Unicode: U+200C HTML:
零寬連字(zero-width joiner,ZWJ)是一個控制字符,放在某些需要復雜排版語言(如阿拉伯語、印地語)的兩個字符之間,使得這兩個本不會發生連字的字符產生了連字效果。
Unicode: U+200D HTML:
這里只用了3種零寬字符,在線工具解得:do u know NTFS?
2、ntfs
3、有重復字符較明顯,用腳本進行詞頻分析,得到:ZW5jcnlwdG8=
4、base64解得:encrypto
百度encrypto,這還是一款文件加密工具,使用 AES-256 加密,高安全性高,能設置密碼,也能加密碼提示信息,用Encrypto加密后的文件會重新包裝為.crypto,必須用Encrypto才能打開。
lookatme.txt

1、用記事本打開lootatme.txt,全選,手敲下Tab、空格,就能懂后半部分是Tab和空格的組合,Ctrl+H,空格替換為.,Tab替換為-,莫斯解碼(得到autokey)
2、搜篇github上的break_autokey
python break_autokey.py
這iamthepasswd密碼解不開。。。
3、用string命令看看,發現(Oh! You caught me! But...)完全沒用,將其刪除,nice~~,得到彩虹.png
4、foremost分離彩虹.png得到一個加密zip
5、6種黃色不一樣,用GIMP提取顏色信息,選擇顏色拾取工具,Shift,hex值最后2位不一樣:70、40、40、73、57、64,hex->ascii:p@ssWd
6、解壓得到弗拉格.docx,一堆堆小寫字母中間夾了幾個大寫字母ALPHUCK,而且小寫字母都是epacisjz這7個
7、百度ALPHUCK,Alphuck在線解碼
[UTCTF2020]docx
在word\media目錄下有一堆png,按大小排序。
[UTCTF2020]sstv

打開RX-SSTV工具,點擊recerving,播放音頻,flag一會就顯示出來了。
[INSHack2017]hiding-in-plain-sight
1、foremost。
[INSHack2019]gflag
1、

文件內是3D打印命令
后綴改為.gcode
http://gcode.ws
還有一個網站https://ncviewer.com

[QCTF2018]picture
1、帶key的lsb隱寫:
python lsb.py extract attachment.png out.txt wwjkwywq
2、打開out.txt,發現是DES,再用大佬的腳本解密。
[BSidesSF2020]mini-matroyshka
在kali下base64decode
cat flag.txt | base64 -d > 1
cat 1 | base64 -d > 2
cat 2 | base64 -d > 3
hex->ascii,base64decode,hex->ascii,base64decode,hex->ascii,hex->ascii,得到:
o110, o064, o163, o111, ...
octal->ascii:
f = open('6').read()
f = f.replace('o', '').split(', ')
s = ''
for i in f:
s += chr(int(i, 8))
with open('7', 'w') as f_:
f_.write(s)
base64decode,base64decode,hex->ascii,base64decode,urldecode,base85decode
import base64
f = open("10",'r').read()
print(base64.b85decode(f))
decimal->ascii:
f = open('11').read()
f = f.replace(' ', ', ').split(', ')
s = ''
for i in f:
s += chr(int(i))
with open('12', 'w') as f_:
f_.write(s)
base64decode,base64decode,摩斯解碼得到:
KFKUUNSXKRUFIUCTKZ3VI6SCG5MGYZZSKQYDS4TFGJXTAT2EKF2FKMDMNRIFKTJSJFLUUU2MLBFHUSTKHFLE6MTDG5RFMTRZKZCFSMTBNVITCUJSOA3GK3JZOVIVGRRXKZMFEV2OKRKXSYZTIVWVIQZRI5MGYVSJJNWXQSCTNVNGUS3KLIZE66KOGBSUQ2CYMJLVMM2QK5WEOYKHJZTFS6TUJJJG2SJTKFLE44KJGJYEYU3OKF4E2MLMMZLUKWSJJJCXI5KJPJNGWWKYJJIE2RKRNJRDA5ZUJFMEERSYPIYTEZSHPB4E2V2BOJNFMOJQKRWXA4SOKRDE6SSTOQ2FIR2CIRRTGSSLJJMFEUSSK5WFQVKEKEVVK3LMOFLFMZBQK5XHQVSUJA2UCUKTKZXUSM2CIJJFIQRVKFCXQOCNKZTTSTRTJJUFG2KNNVQVOQLNMVKFMN2WNF2FOZCDGFMU43CWGNGTGULULAZEUMKJKRSGQTTLKJDGKRSWNVRG2SLMLJLWYUKQPFGTQZDNN4ZVI3JVNRKVIQSPKZDXAMCYGNKSWUKXJE4FCVBRNNNEIQTMMFEFSNCRKRLGKVRSJI3VURSKPBLDGMJTJJLVCN22KRFE4S2GGVCU4VBYOFJFOY3NKMZWI6KSK5NGWUKIKJ3FOVS2MZSFMWTYKVDXI4KKKVWFMV2TNRXGCV2ZPFHEOWLKKZCXA6SXNFNEYUTKGF2GMWCSHBSFKNKHKZLFMSSSKY4XOZKDM4VU4RCSORKDCZCJKB4XA6S2IVNDOZCINB2U2WC2NJJDAUSTLAYWY22ZKNYDIZCGHFDFK3LILBSTESTWLFKXAOC2I5UEUZDOGRWE46KGORRVKUTJLJKHIUCWIZYDOTSYJZCFUVZZPBSDA2ZPJNWGIZ2OGNAXEY3LJJKGMRSCNBNFO6DRMJ4VETKSKZBHSYTKORJGGMSWLFGFKQSOLBWDSMCTNJ2HIURQOBWGK3KKNFKFK3DYKNWVUUCJGJSDMVSEKJHVKU3LNRNDEOLFKAZFC32NKZXWUTJSNB3VO2TYJRLUKQTLKBME4UKKKY4G2TCUHFZU6SCBPJKDCQLKMJCXI2LBKVLGYUBSKIVVS6JRJZJEI2DIJJCGY52LNJWFMU2FOBCUW6LQINRTARSHKB5HI2KOLBLDOZCIMRVVMSDENJSEI2DQJ4ZFCOKPLAYVSVCVGV3US6SCHFKTCVTKLEYHG3CJK5DDETT2KZSWMWDQINMXS3ZQKYZVK6KSGNITOSJRGVDVURLEOJIFKZDBLFCUCNCOKRAXOTKEIE6Q====
base32decode,base64decode得到:
ABzY8S=%pO0{X6OOk{j484-SIe=C6!bR-rs&?U;g;mS}T66jd5CjzzonA!{UtV552sq&L-FUHlGJfc6v;#txxWmew=iFhc_c;IFb7ASj#jKJt13Y_XFH\(Kn#6darO0D#oL8!pE_=v|lq1`+e_tNjk51N%+xL`CsrJ%tQEiWP4>RijUWtZ|UL~@A%h#pAE0y@L|1X=7raJ#&i`&y5{V+Vt-X6Uw3t-_bu!7a6DExUfnb%eiP?#<vj7NneQ0NTjt_u>Ab<A=dd0ehv8A5^Wb{dRqW}w%d;e2M(^D5?*Eg&KwrEfd@toYV_uVqPkj%IUY)gif24f#TJsZ&KF=m}t|uNFUUIE_px(>44mOWH?*sdF{txn1vcGDR_Yda*xt_ERhW{boaJ|dhIv~%7!mqDbe;OTZ{5sCeoqwI?*W`7p+rBS|Paeljo\)LEPrn;QseX-@M_tJ;mGJezbbMIqJfO#gzT4NQ)%go?d(1Z#3hpZ<KX@d=sP%_&-?l8p3OP#lKbiEe?d~c-MD8a$9p9UHJD+BsAF?;b5u{twdTwct8i;d=9}XMNp#0}SUccK%!av75}zBc*4Wu2Gt;#FdGk=GZ`@850000
base85decode:
import base64
f = b'ABzY8S=%pO0{^X6OOk{j484-SIe=C6!bR-rs&?U;g;mS}T66jd5CjzzonA!{UtV552sq&L-F^UH*lGJfc*6v;#txxWmew=iFhc_c;IFb7ASj#jKJt13Y_XFH$Kn#6darO0D#oL8!pE_=v|lq1`+e_tNjk51N%+xL`CsrJ%tQEiWP4>RijUWtZ|UL~@A%h#pAE0y@L|1X=7raJ#&i`&y5{V+Vt-X6Uw3t-_bu!7a6DExUfnb%eiP?#<vj7NneQ0NTjt_u>Ab<A=dd0ehv8A5^Wb{dRqW}w%d;e2M(^D5?*Eg&KwrEfd@toYV_uVqPkj%IUY)gif24f#TJsZ&KF=m}t|uNFUUIE_px(>44mOWH?*sdF{txn1vcGDR_Yda*xt_ERhW{boaJ|dhIv~%7!mqDbe;OTZ{5sCeoqwI?*W`7p+rBS|Paeljo$LEPrn;QseX-@M^_tJ;mGJezbbMIqJfO#gzT4NQ)%go^?d(1Z#3hpZ<KX@d=sP%_&-?l8p3OP#lKbiEe?d~c-MD8a$9p*9UHJD+*BsAF?;b5u{twdTwct8i;d=9}XMNp#0}SUccK%!av75^}zBc*4Wu2Gt;#^FdGk=GZ`@850000'
res = open('16', 'wb')
res.write(base64.b85decode(f))
base64decode,hex->ascii,decimal->ascii,base85decode,摩斯解碼,base32decode。
[MRCTF2020]不眠之夜

一共120張小圖,each piece is 200x100 pixels,猜測大圖是2000*1200像素(寬:10個小圖,高:12個小圖)
先用montage命令合成:
按順序拼成x軸M塊,y軸N塊,輸出文件為out.jpg:
montage *.jpg -tile MxN -geometry +0+0 out.jpg
montage *.jpg -tile 10x12 -geometry +0+0 out.jpg

再用gaps恢復:
gaps --image=out.jpg --size=200
(--size是小圖的寬)








