[TOC]
金三胖 1 下载压缩包打开是一个gif的动图,里面隐写了flag ,用puzzlesolver
你竟然赶我走
二维码 1 先binwark 查看图片内有什么文件,然后foremost提取文件
大白
乌镇峰会种图
wireshark 1 下载流量包,放进wireshark中过滤一下post 请求的包http .request.method==POST
N种方法解决 1 2 3 4 下载是一个exe文件,用010打开是base64 ,并且提示是图片.那就是base64 转图片 touch 1.txt然后把base64 内容:从i开始到== 复制到1.txt中base64 -d 1.txt > 2.png打开2.png就是一个二维码
基础破解
文件中的秘密
zip伪加密 1 2 3 4 下载zip压缩包,解压有密码,用010 打开这个就是伪加密 https:// blog.csdn.net/qq_29566629/ article/details/ 122936177 https:// zhuanlan.zhihu.com/p/ 399456259 把两个0 x09改成0 x00就行了
LSB 1 LSB 隐写 用stegsolve打开图片 打开Analyse(分析)选项卡,使用Data Extract(数据提取)选项,进行分析。
1 2 https ://blog.csdn.net/qq_38154820/article/details/122694645 2 、提取Red,Green和Blue的0 通道信息,在这三个颜色的0 通道上打勾,并按下Preview键。
1 2 按save Bin键保存为PNG文件。 3 、得到一张二维码图片,通过扫描二维码,获得flag。
被嗅探的流量
rar
qr
镜子里面的世界
爱因斯坦
1 foremost分离出一个压缩包,但是有密码,用010 打开图片发现密码
ningen
1 foremost 分离一下,压缩包有密码 四位数密码 爆破得到8368
小明的保险箱 1 2 3 binwalk 分析一下有压缩包,foremost分离一下,爆破一下压缩包密码flag {75 a3d68bf071ee188c418ea6cf0bb043}
easycap
隐藏的钥匙
另外一个世界
1 01101011011011110110010101101011011010100011001101110011
数据包中的线索
1 2 base64 转图片,我本地工具尝试好几次没有成功https://www.lddgo.net/convert /base64 -to-image
神秘龙卷风
1 这是一种名为“Brainfuck”的计算机语言。https:// www.w3cschool.cn/tryrun/ runcode?lang=brainfuck
FLAG 1 LSB隐写,用stegsolve打开发现是压缩包,点save bin 保存为1. zip
1 2 3 压缩包打开报错了,不影响依然打开,解压然后string s string s 1 > 111. txt
假如给我三天光明
1 解出密码kmdonowg,打开wav文件,短的为点,长的为线,得到flag:flag {wpei08732?23dz}
后门查杀
webshell后门
来首歌吧 1 2 ..... -... -.-. ---- . ..--- ..... -.... ....- ---- . -.-. -... ----- .---- --- .. --- .. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ---- . ..--- ---- . .---- ---- . .---- -.-. 莫尔斯密码
1 5BC925649CB0188F52E617D70929191C
面具下的flag
1 第二部分flag在key_p art_ two/where_ is _f lag_p art_ two.txtflag_p art_ two_ is _ here.txt
荷兰宽带数据泄露 1 conf.bin 文件为一个路由器的配置文件。我们用RouterPassView打开conf.bin 文件
九连环
1 在主压缩包的压缩源文件目录区的全局加密位出现了01 08,可以判断为压缩包伪加密,将01改为00
1 2 3 4 5 6 7 8 steghide基本用法: 将secret.txt文件隐藏到text .jpg中: 从text .jpg解出secret.txt: 拿到压缩包密码bV1g6t5wZDJif^J7
[BJDCTF2020]认真你就输了
被劫持的神秘礼物 1 2 http.request.method == "POST " 追一下登录的post协议 name=admina&word=adminb
被偷走的文件 1 攻击者用的ftp 传输的,发现了一个rar,用binwalk
[BJDCTF2020]藏藏藏 1 先binwalk然后foremost,然后解压压缩包即可
[GXYCTF2019]佛系青年 1 压缩包部分有密码,图片没有密码,010打开发现是伪加密,09改成00
[BJDCTF2020]你猜我是个啥 1 file 一下发现是个图片,直接010 搜索flag
刷新过的图片 1 2 隐写方法为f5 加密 java Extract /Desktop/1 .png
1 把上面这个文件从txt改成zip ,删掉伪加密,解压
秘密文件 1 统计-协议分级.发现FTP最大了,还是传输,肯定是用ftp 传了.直接过滤ftp 包
[BJDCTF2020]鸡你太美
[BJDCTF2020]just_a_rar 1 2 爆破,4 位数字的密码2016 拖进010 直接搜flag
snake 1 binwalk一下然后foremost一下发现key 是base64 ,
1 2 3 serpent加密,key(小写):anaconda http: flag{who_k new _ serpent_ cipher_ existed}
菜刀666 1 流量分析过滤POST的包http.request.method= = POST
1 2 传了个图片,再加上FF D8 开头FF D9 结尾,判断为jpg图片,将这些十六进制复制出来,以原始文件流写入文件 先保存到txt里,然后导入16 进制数,保存成jpg就ok
1 2 binwalk分析出还有一个zip,foremost分离出来用上面那个密码解压就可以了
[BJDCTF2020]一叶障目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import zlibimport structwith open (r'1.png' ,'rb' ) as image_data: bin_data = image_data.read() data = bytearray (bin_data[12 :29 ]) crc32key = eval (str (bin_data[29 :33 ]).replace(r'\x' , '' ).replace("b'" , '0x' ).replace("'" , '' )) n = 4096 for w in range (n): width = bytearray (struct.pack('>i' , w)) for h in range (n): height = bytearray (struct.pack('>i' , h)) for x in range (4 ): data[x+4 ] = width[x] data[x+8 ] = height[x] crc32result = zlib.crc32(data) if crc32result == crc32key: print ("width:%s height:%s" % (bytearray (width).hex (), bytearray (height).hex ())) exit()
[SWPU2019]神奇的二维码 1 2 foremost BitcoinPay.png 发现foremost分不了,用binwalk -e BitcoinPay.png --run-as=root
1 base64 解出来线索asdfghjkl1234567890
1 连续解码有这个线索comEON_YOuAreSOSoS0 great
1 2 18394.rar可以用comEON_YOuAreSOSoS0great解压,音频是摩尔密码(粗的为-,短的为.) flag {morseisveryveryeasy}
[BJDCTF2020]纳尼 1 发现gif正常打不开,用010查看,发现缺少文件头
1 将00 00 00 00 改为47 49 46 38 解码后得到flag
[HBNIS2018]excel破解
[HBNIS2018]来题中等的吧 1 2 第一个红框代表“-”,第二个红框代表“.”,第三个红框代表“ ”(空格)。 .- .-.. .--. .... .- .-.. .- -...
梅花香之苦寒来 1 用010打开发现16进制数,粘贴出来保存到txt,用010导入16进制数导入进去
1 要画图.用gnuplot之前需要先将坐标格式转换成gnuplot可以识别的格式,其实就是把()和,去掉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 with open ('result.txt' , 'r' ) as res : # 坐标格式文件比如(7 ,7 ) re = res .read () res .close () with open ('gnuplotTxt.txt' , 'w' ) as gnup: # 将转换后的坐标写入gnuplotTxt.txt re = re.split () tem = '' for i in range (0 , len (re)): tem = re[i] tem = tem.lstrip('(' ) tem = tem.rstrip(')' ) for j in range (0 , len (tem)): if tem[j ] == ',' : tem = tem[:j ] + ' ' + tem[j +1 :] gnup.write (tem + '\n' ) gnup.close ()
1 2 $ apt-get install gnuplot
谁赢了比赛? 1 binwalk 看一下,有个 rar,-e 提取一下
1 rar 加密,放到 ARCHPR 里面爆破一下 1020
1 得到 gif,这时候放到 stegsolve 里面,用 frame browser 看一下,这个功能是专门用来一帧一帧看 gif 图,保存这一帧,再用 stegsolve 打开保存的 bmp
1 发现在红色亮度为 0 时有个二维码,扫码得 flag
[ACTF新生赛2020]outguess
1 2 3 4 outguess下载安装 kail 终端命令输入git clone https://github.com/crorvick/outguess,安装包下载完成到文件夹。 打开文件夹,右键空白处选终端打开,输入命令./configure && make && make install进行安装。
1 查看mmm.jpg图片属性,得到一段经过社会主义核心价值观编码加密的密文:“公正民主公正文明公正和谐”。
1 2 outguess -k "abc" -r mmm.jpg flag.txt 隐写的内容最终会导入flag.txt文件。
[WUSTCTF2020]find_me
1 https:// www.qqxiuzi.cn/bianma/ wenbenjiami.php?s=mangwen
穿越时空的思念
1 2 3 4 5 print ("F029BD6F551139EEDEB8E45A175B0786" .lower() )包上flag就是题目三十二位小写的答案了 flag{f029bd6f551139eedeb8e45a175b0786 }
[GUET-CTF2019]KO
[SWPU2019]我有一只马里奥 1 发现附件为attachment.exe ,管理员运行后发现多出了一个1 .txt,内容为ntfs flag.txt
1 2 根据提示查看ntfs流,在当前目录打开cmd ,并输入 notepad 1 .txt:flag.txt
[ACTF新生赛2020]base64隐写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 # !python2 def get_base64_diff_value (s1, s2): base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' res = 0 for i in xrange (len (s2)): if s1[i] != s2[i]: return abs (base64chars.index (s1[i]) - base64chars.index (s2[i])) return res def solve_stego (): with open ('ComeOn!.txt' , 'rb' ) as f: file_lines = f.readlines () bin_str = '' for line in file_lines: steg_line = line.replace ('\n' , '' ) norm_line = line.replace ('\n' , '' ).decode ('base64' ).encode ('base64' ).replace ('\n' , '' ) diff = get_base64_diff_value (steg_line, norm_line) print diff pads_num = steg_line.count ('=' ) if diff: bin_str += bin (diff)[2 :].zfill (pads_num * 2 ) else: bin_str += '0' * pads_num * 2 print goflag (bin_str) def goflag (bin_str): res_str = '' for i in xrange (0 , len (bin_str), 8 ): res_str += chr (int (bin_str[i:i + 8 ], 2 )) return res_str print (res_str)if __name__ == '__main__' : solve_stego ()
[MRCTF2020]ezmisc 1 在010 Editor中打开,提示CRC 校验错误,认为图片被修改了宽高,不符合CRC 校验。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 import os import binascii import struct crcbp = open ("repair.png" , "rb" ).read () #打开图片(修改图片路径) for i in range (2000 ): for j in range (2000 ): data = crcbp[12:16] + \ struct.pack ('>i' , i)+struct.pack ('>i' , j)+crcbp[24:29] crc32 = binascii.crc32 (data) & 0 xffffffff if (crc32 == 0 x9BF1293B): #图片当前CRC(修改CRC) print (i , j) print ('hex:' , hex (i), hex (j))
[GXYCTF2019]gakki
1 用7z解压了一下,有密码,不是伪加密,爆破一下 8864
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]" strings = open('./flag.txt' ).read() result = {} for i in alphabet: counts = strings.count(i) i = '{0}' .format(i) result[i] = counts res = sorted(result.items(),key =lambda item:item[1],reverse =True ) for data in res: print (data) for i in res: flag = str(i[0]) print (flag[0],end ="" )
[HBNIS2018]caesar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 def decrypt (ciphertext, shift ): """移位解密函数""" plaintext = '' for char in ciphertext: if char.isalpha(): if char.isupper(): plaintext += chr ((ord (char) - shift - 65 ) % 26 + 65 ) else : plaintext += chr ((ord (char) - shift - 97 ) % 26 + 97 ) else : plaintext += char return plaintext ciphertext = 'gmbhjtdbftbs' shift = 3 ciphertext = ciphertext.lower() for i in range (26 ): plaintext = decrypt(ciphertext, i) print ("%d %s" % (i, plaintext))
[SUCTF2018]single dog 1 使用foremost分离一下这张图片得到两个文件夹和一个txt
黑客帝国
1 2 查看文本内容数量,发现是4 的倍数。而且开头为52617221 ,猜测这是个rar文件。尝试将文件写为16 进制格式 用010 导入16 进制数直接导入即可
1 得到一个加密的rar文件,尝试使用archpr爆破 3690
1 得到密码后打开压缩包得到一张图片,但是图片损坏无法打开
[HBNIS2018]低个头
[SWPU2019]伟大的侦探 1 解压提示需要密码,但解压出一个密码.txt 文件。
1 2 压缩包密码:摂m墷m卪倕ⅲm仈Z 呜呜呜,我忘记了压缩包密码的编码了,大家帮我解一哈。
1 使用010 Editor打开密码.txt 文件,选择编辑方式为EBCDIC (B),找到明文密码 wllm_is_the_best_team!
1 使用密码解压压缩包,得到18个.jpg 图片,图片为跳舞的小人图形密码(出自于《福尔摩斯探案集》跳舞的小人)
1 flag {iloveholmesandwllm}
[MRCTF2020]你能看懂音符吗 1 拿到附件解压放进010 看文件头61527221 ,发现rar头错了,改成52617221 解压
1 打开发现有乱码,查看word 中的隐藏文字,其他软件类似,反正就是把隐藏文字打勾
1 https:// www.qqxiuzi.cn/bianma/ wenbenjiami.php?s=yinyue
我吃三明治
1 这是base32 MZWGCZ33 GZTDCNZZG5 SDIMBYGBRDEOLCGY2 GIYJVHA4 TONZYGA2 DMM3 FGMYH2
Slogan:
Do you believe in DESTINY ?