常用JPG图片隐写工具
- steghide extract -sf encryption.jpg -p password
- outguess -r encryption.jpg enc.txt -k password
- java Extract encryption.jpg -p password
伟大的司令官(题目原名称不能发)
题目是 伟大的司令官(题目原名称不能发).gif,用Stegsolve逐个frame查看,第21、51、79 frame拼起来是 flag{he11ohongke}
[UTCTF2020]sstv
慢扫描TV工具,不知道这个工具就GG了。Kali上安装qsstv,选择Options-Sound-From file,然后选择附件 attachment.wav ,然后等待图像出现。 flag{6bdfeac1e2baa12d6ac5384cdfd166b0}
二维码
题目附件是个压缩包,没密码。解压是个QR_code.png,扫码得到secret is here。
binwalk可以从QR_code.png分离出另一个 4number.zip,里面是 4number.txt。根据这个提示,ARCHPR爆破一下,指定密码是4位数字,得到密码7639。解压看到内容是 CTF{vjpw_wnoei}。提交flag{vjpw_wnoei}
你竟然赶我走
题目附件是biubiu.jpg,用010Editor打开,发现尾部有 flag IS flag{stego_is_s0_bor1ing}
大白
看不到图? 是不是屏幕太小了。爆破png图片高度为479即可,flag{He1l0_d4_ba1}
N种方法解决
附件解压缩得到key.exe,发现不可执行。DIE检查发现是plain text,果断重命名为key.txt。内容只一行,内容是data:image/jpg;base64……一看就是base64编码转图片。全选,然后转成jpg图片,是一个二维码(在线工具)。扫码得到 KEY{dca57f966e4e4e31fd5b15417da63269},提交flag{dca57f966e4e4e31fd5b15417da63269}
乌镇峰会种图
010Editor打开,最后有 flag{97314e7864a8f62627b26f3f998c37f1}
基础破解
给你一个压缩包,你并不能获得什么,因为他是四位数字加密的哈哈哈哈哈哈哈。。。爆破一下密码,base64 再转一下,flag{70354300a5100ba78068805661b93a5c}
wireshark
题目描述,黑客通过wireshark抓到管理员登陆网站的一段流量包(管理员的密码即是答案) 。wireshark搜索-字符串-分组字节流,搜索password,得到 flag{ffb7567a1d4f4abdffdb54e022f8facd}
文件中的秘密
图片中的秘密.jpeg 属性-备注- flag{870c5a72806115cb5439345d8b014396}
LSB
如此明显的提示。RGB plane0 LSB 另存为qr.png。扫描二维码得到 cumtctf{1sb_i4_s0_Ea4y},提交 flag{1sb_i4_s0_Ea4y}
zip伪加密
如此明显的提示。加密标志字节,0x09 改为 0x00,解压缩得到 flag{Adm1N-B2G-kU-SZIP}
rar
根据提示爆破得到4位密码 8795,flag{1773c5da790bd3caff38e3decd180eb7}
小明的保险箱
小明的保险箱.jpg隐写了一个rar文件,根据提示爆破得到4位密码 7869,提交 flag{75a3d68bf071ee188c418ea6cf0bb043}
ningen
ningen.jpg隐写了一个zip文件,根据提示爆破得到4位密码 8368,提交 flag{b025fc9ca797a67d2103bfbc407a6d5f}
被嗅探的流量
某黑客潜入到某公司内网通过嗅探抓取了一段文件传输的数据,该数据也被该公司截获,你能帮该公司分析他抓取的到底是什么文件的数据吗?
wireshark打开,搜索无果。过滤 http.request.method==GET 无果。过滤http.request.method==POST,发下第233个包有传输了一张路飞的jpg图片,图片例隐写了一个字符串,提交 flag{da73d88936010da1eeeb36e945ec4b97}
镜子里面的世界
图片名为steg.png,提示比较明显,LSB隐写,得到 flag{st3g0_saurus_wr3cks}
爱因斯坦
misc2.jpg隐写了一个zip,属性里有解压缩密码 this_is_not_password,提交 flag{dd22a92bf2cceb6c0cd0d6b83ff51606}
easycap
wireshark打开,发现只有TCP协议,过滤条件如下,发现每个包只传输一个字节,连起来就是flag。
ip.src_host==172.31.98.199 && tcp.payload
追踪TCP流,得到 flag{385b87afc8671dee07550290d16a8071}
隐藏的钥匙
隐藏的钥匙.jpg 图片隐写了一张图片。两张图片之间夹杂着数据 flag:base64:(Mzc3Y2JhZGRhMWVjYTJmMmY3M2QzNjI3Nzc4MWYwMGE=),解码一下得到flag{377cbadda1eca2f2f73d36277781f00a}
另外一个世界
monster.jpg尾部隐写了56个字符,01101011011011110110010101101011011010100011001101110011。变成7个字节,对应ascii为koekj3s,提交 flag{koekj3s}
FLAG
注意:请将 hctf 替换为 flag 提交,格式 flag{}。FLAG.png文件LSB隐写了一个zip文件。解压缩得到 1.elf,放到linux执行一下 或者 010Editor看一下得到 flag{dd0gf4c3tok3yb0ard4g41n~~~}
BOOM
这是在BUUCTF的QQ群里看到的。有一个BOOM.zip加密的压缩文件,README.md里面全是“阿巴……”,但是注意到BOOM.zip里面也有一个README.md,根据文件大小判断要采用明文攻击。
把README.md压缩为README.zip。用ARCHPR明文攻击。这里有2点要特别注意:
- 压缩README.zip的时候使用windows自带压缩工具,右键-发送到-压缩(zipped)文件夹,这样可以避免ARCHPR报错
- 明文攻击搜索秘钥一般十几秒就可以完成,然后自动尝试破解密码,此时可以停止爆破就能看到3个密钥,用秘钥就可以破解zip文件。
得到的图片尾部有字符串,反转过来就是 flag{Don't_you_think_there's_something_missing_from_this_picture} ,但这不是flag。提示你少了什么,发现CRC32校验报错,经爆破是高度改了,真实高度是640,图片如下,提交flag{Stop_d@ydreaming!}
神秘龙卷风
神秘龙卷风转转转,科学家用四位数字为它命名,但是发现解密后居然是一串外星人代码!!好可怕! 注意:得到的 flag 请包上 flag{} 提交。爆破密码得到 5463,得到解压文件,里面全是“+.>”之类的BrainFuck密码。解密码得到 flag{e4bbef8bdf9743f8bf5b727a9f6332a8}。
假如给我三天光明
附件是muzic.zip和pic.jpg。pic.jpg上的盲文为 KMDONOWG,小写 kmdonowg 是 muzic.zip 的解压密码,解压得到 music.wav。
听music.wav是电报码,用Audacity看波形得到摩斯码并解码如下。把CTF去掉,并提交小写的内容 flag{wpei08732?23dz}
1010 1 0010 011 0110 0 00 11111 11100 11000 00011 00111 001100 00111 00011 100 1100
-.-./-/..-./.--/.--././../-----/---../--.../...--/..---/..--../..---/...--/-../--..
CTFWPEI08732?23DZ
数据包中的线索
公安机关近期截获到某网络犯罪团伙在线交流的数据包,但无法分析出具体的交流内容,聪明的你能帮公安机关找到线索吗?流量中的线索.pcapng里面 http.response.code==200 过滤一下只有一个包,把传输文本base64一下发现是jpg文件头,存成jpg得到 flag{209acebf6324a09671abc31c869de72c}
后门查杀、webshell后门【D盾工具】
两个题目类似,网站打包备份作为附件,找到黑客的webshell(Webshell中的密码(md5)即为答案)。看writeup得知有个工具叫D盾,查杀指定目录,并在可疑文件中找关键字$pass即可找到答案。
后门查杀 flag{6ac45fb83b3bc355c024f5034b947dd3}
webshell后门 flag{ba8e6c6f35a53933b871480bb9a9545c}
来首歌吧
附件stego100.wav看波形图1:10到2:30之间有规律,解密摩斯码得到字符串 5BC925649CB0188F52E617D70929191C。原以为要md5撞库(撞库结果是valar dohaeris),没想到flag就是这个(这次居然就是大写字母的) flag{5BC925649CB0188F52E617D70929191C}
...../-.../-.-./----./..---/...../-..../....-/----./-.-./-.../-----/.----/---../---../..-./...../..---/./-..../.----/--.../-../--.../-----/----./..---/----./.----/----./.----/-.-./
荷兰宽带数据泄露【RouterPassView工具】
附件是config.bin文件,用工具RouterPassView打开可以看内容。搜索了flag、key、pass等都不是flag,看别人博客才知道原来username才是flag,提交 flag{053700357621}
面具下的flag【zip伪加密、vmdk用7z解压缩】
附件mianju.jpg,binwalk看一下发现有隐写了一个zip文件。解压缩得到zip是加密的,但是ZIPFILERECORD头部是50 4B 03 04 14 00 00 00,ZIPDIRENTRY头部是50 4B 01 02 3F 00 14 00 09 00,说明是伪加密,把09改成00后直接解压缩。
得到flag.vmdk。本以为要用虚拟机挂盘打开,结果发现挂盘后文件根本打不开。直接用010Editor打开发现:NUL、key_part_one.txt文件附近有BrainFuck编码,where_is_flag_part_two.txt、flag_part_two_is_here.txt附近有Ook编码。
但是,不能直接复制出来解码。 NUL、key_part_one.txt文件附近有BrainFuck编码中间有一些字符被篡改了,把两块取能用的部分才可以解码。看其他的writeup,说用7z解码直接得到编码,原理可以看7z官网或这篇博客。两个编码分别解码,得到 flag{N7F5_AD5 和 _i5_funny!},提交 flag{N7F5_AD5_i5_funny!}
7z x flag.vmdk
九连环【zip伪加密、steghide工具】
附件是123456cry.jpg,隐写了一个zip文件。
zip文件是伪加密的,把good-已合并.jpg这个ZIPDIRENTRY的14 00 01 08改成14 00 00 08,另存一个z1.zip文件。
z1.zip解压缩得到asd目录,里面有good-已合并.jpg和qwe.zip两个压缩文件。需要通过good-已合并.jpg找到qwe.zip的解压缩密码。steghide不需要密码找到ko.txt
steghide extract -sf good.jpg
ko.txt里面是解压密码 bV1g6t5wZDJif^J7,提交 flag{1RTo8w@&4nK@z*XL}
被劫持的神秘礼物
某天小明收到了一件很特别的礼物,有奇怪的后缀,奇怪的名字和格式。小明找到了知心姐姐度娘,度娘好像知道这是啥,但是度娘也不知道里面是啥。。。你帮帮小明?找到帐号密码,串在一起,用32位小写MD5哈希一下得到的就是答案。 链接: 百度网盘 请输入提取码 提取码: 31vk 注意:得到的 flag 请包上 flag{} 提交。
附件gift.pcapng,根据提示是账号密码,过滤条件是http.request.method==POST,过滤得到一个包,里面name=admina word=adminb,adminaadminb的32位小写MD5哈希 flag{1d240aafe21a86afc11f38a45b541a49}
刷新过的图片【F5-steganography工具】
浏览图片的时候刷新键有没有用呢 注意:得到的 flag 请包上 flag{} 提交,附件是Misc.jpg。
根据提示“刷新键”是F5,用 F5-steganography 工具,得到 output.txt。
java Extract Misc.jpg
观察output.txt内容判断为zip文件,而且是伪加密的。把 14 00 01 00 改成 14 00 00 00解压缩即可得到flag.txt,提交 flag{96efd0a2037d06f34199e921079778ee}
[BJDCTF2020]认真你就输了【ms-office文件本质是zip】
附件是10.xls文件,打开有4个sheet,其中Line和Parabola画了一条直线和一条抛物线,并温馨提示flag就在这里。
The flag is under this nicely made chart.
The flag is also right under this nicely made chart.
但是,认真你就输了。这些和flag没有关系。MS-Office文件word、excel、ppt本质都是zip文件,就可以隐写。把01.xls重命名为01.zip,解压缩后在 xl/charts 目录里有 flag.txt 提交 flag{M9eVfi2Pcs#}
[BJDCTF2020]藏藏藏
附件是蓝盾的jpg图片,隐写了一个zip没有密码,解压缩得到 福利.docx,里面是二维码,扫码得到 flag{you are the best!}
被偷走的文件【zip和rar文件都应该4位爆破一下、rar文件格式】
一黑客入侵了某公司盗取了重要的机密文件,还好管理员记录了文件被盗走时的流量,请分析该流量,分析出该黑客盗走了什么文件。 注意:得到的 flag 请包上 flag{} 提交。
附件 被偷走的文件.pcapng,因为提到偷走文件,找http或ftp,发现第55个包是ftp-data,传输了一个flag.rar文件。dump下来发现是加密的。分析了半天没有搞定,还是看了别人的writeup,码的,居然是4位数字爆破……一点提示都没有……教训就是zip和rar文件拿到后都应该4位爆破一下。
爆破得到密码 5790,解压缩得到 flag{6fe99a5d03fb01f833ec3caa80358fa3}
顺便复习一下rar文件格式,RAR文件头部的Maigc有2种:
RAR 5.0 文件格式
RAR 5.0的 Magic 由8个字节组成:
0x52 0x61 0x72 0x21 0x1A 0x07 0x01 0x00
RAR 4.x 文件格式
一个RAR4.x
压缩文件由若干可变长度的块组成,常见块类型如下:
标记块: HEAD_TYPE=0x72
压缩文件头: HEAD_TYPE=0x73
文件头: HEAD_TYPE=0x74
旧风格的注释头: HEAD_TYPE=0x75
旧风格的用户身份信息:HEAD_TYPE=0x76
旧风格的子块: HEAD_TYPE=0x77
旧风格的恢复记录: HEAD_TYPE=0X78
旧风格的用户身份信息:HEAD_TYPE=0X79
子块: HEAD_TYPE=0x7A
最后的结束块: HEAD_TYPE=0x7B
文件头部Magic,7字节内容是固定的。前两个字节0x52 0x61
是CRC校验值,0x72
是标记块。
RAR 4.x的 Magic 由7字节组成:
0x52 0x61 0x72 0x21 0x1A 0x07 0x00
压缩文件头,前两个字节 0xCE 0x99是CRC校验值,0x73是压缩文件头标记。接下来2字节是位标记,0x8000表示加密,0x0000表示未加密。0xD000表示块长度13字节。
文件头, 前两个字节是CRC校验值,0x74是压缩文件头标记。内容比较多,涉及操作系统、时间、压缩方式、文件名、文件内容等,可以参考这篇博客。
文件尾部,7字节内容是固定的。前两个字节0xC4 0x3D
是CRC校验值,0x7B
是结束块,0x00 0x40
是位标记,0x07 0x00
是块大小。
RAR 4.x的 Magic 由7字节组成:
0xC4 0x3D 0x7B 0x00 0x40 0x07 0x00
snake【serpent对称加密算法】
附件snake.jpg隐写了一个zip,解压缩得到cipher和key两个文件。key里面是base64编码,解码得到 What is Nicki Minaj's favorite song that refers to snakes?,Nicki Minaj的歌曲里有一首anaconda(水蟒),所以真正的key就是anaconda。然后尝试对称加密算法,无果。
看了writeup得知还有一种名为 serpent (蛇)的对称加密算法,在线解密地址为Serpent Encryption – Easily encrypt or decrypt strings or files。
解密后提交 flag{who_knew_serpent_cipher_existed}
[GXYCTF2019]佛系青年
附件[GXYCTF2019]佛系青年.zip,有两个文件 1.png 和 fo.txt。其中 fo.txt 是要密码的;1.png可以直接解压缩,010Editor打开发现其实是1.jpg格式,但是这图片没什么用。
尝试4位字母、4位数字爆破zip没有结果,010Editor打开发现是伪加密。改完解压看到fo.txt,是与佛论禅编码,解码得到 flag{w0_fo_ci_Be1}
[BJDCTF2020]你猜我是个啥
附件 [BJDCTF2020]你猜我是个啥.zip 打不开。010Editor看是png格式,重命名为[BJDCTF2020]你猜我是个啥.png,是个二维码,扫码得到“flag不在这”。010Editor打开png图片再仔细看,尾部隐写了字符串 flag{i_am_fl@g}
菜刀666【流量分析】
附件 666666.pcapng。
wireshark先过滤一下,发现在 http 200 的1367包里面传输了一个zip文件,里面有flag.txt。dump下来发现flag.zip是加密的,需要密码。
http.response.code==200
wireshark再过滤一下,发现POST的1068包里面传输的参数有特点,FFD8FF……FFD9,似乎是个jpg图片,保存下来发现图片就是密码 Th1s_1s_p4sswd_!!! 解压得到 flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
http.request.method==POST
秘密文件【流量分析】
附件 秘密文件.pcapng。按照提示有文件传输过滤,http协议9个包没有特点,那么过滤ftp协议,发现95包命令传输了文件 6b0341642a8ddcbeb7eca927dae6d541.rar,但是没有ftp-data协议。
ftp.request.command==RETR
在附近找到96、97包用TCP协议传输了这个文件。dump下来发现有解压缩密码,爆破得到4位数字弱口令1903,解压缩得到 flag{d72e5a671aa50fa5f400e5d10eedeaa5}
[BJDCTF2020]just_a_rar
附件 4位数.rar,爆破得到4位数字密码2016,解压缩得到flag.jpg,图片属性备注 flag{Wadf_123}
[BJDCTF2020]鸡你太美【gif文件格式、脑洞】
附件 篮球.gif(鸡你太美)、篮球副本.gif(打不开)。010Editor打开篮球副本.gif,发现缺少gif的文件头部(复习一下gif的Magic是 GIF89a,也就是0x47 0x49 0x46 0x38 0x39 0x61)。在文件开始插入4个字节,写入GIF8,另存为b.gif。图片显示 zhi-yin-you-are-beautiful 提交发现不对,脑洞来了,把连字符换成下划线,提交 flag{zhi_yin_you_are_beautiful} 正确。
[BJDCTF2020]一叶障目
附件 1.png,crc32校验报错,爆破高度为844,另存2.png,图片里有 flag{66666}
[SWPU2019]神奇的二维码【俄罗斯套娃、耐心】
附件 BitcoinPay.png 是个二维码,扫码得到 swpuctf{flag_is_not_here},明显不是flag,出题人好贱!。
binwalk 从 BitcoinPay.png 分离出4个rar文件:encode.rar、flag.jpg.rar、flag.doc.rar、good.rar,一个一个解决。出题人好贱!
1、encode.rar解压出encode.txt,内容 YXNkZmdoamtsMTIzNDU2Nzg5MA==,base64解码得到asdfghjkl1234567890,显然不是flag。出题人好贱!
2、flag.jpg.rar 解压出 flag.jpg、看看flag在不在里面^_^.rar 两个文件。看看flag在不在里面^_^.rar 的解压缩密码是 asdfghjkl1234567890,解压缩还是一模一样的 flag.jpg,这个文件没用。出题人好贱!
![](https://i-blog.csdnimg.cn/blog_migrate/c94f0567a2a1ca93c1011c6f02dd54d5.jpeg)
3、flag.doc.rar 解压出 flag.doc,内容是很长的 base64 编码,经过高达20次 base64 解码得到 comEON_YOuAreSOSoS0great,这个有用但不是flag。出题人好贱!
4、good.rar 需要解压缩密码 comEON_YOuAreSOSoS0great,解压缩得到 good.mp3,用 Audacity 看波形图得到摩斯码,摩斯码解码得到flag,提交 flag{morseisveryveryeasy} 出题人好贱!
--/---/.-./..././../.../...-/./.-./-.--/...-/./.-./-.--/./.-/.../-.--
MORSEISVERYVERYEASY
梅花香之苦寒来【字符串描述的ascii】
附件 meihuai.jpg,写着图穷匕见,说明尾部有隐写。010Editor打开看到尾部有字符串, 28372c37290a28372c38290a……可以看出规律,每两位对应数字转ascii码为 (7,7)\n(7,8)……,应该是一组坐标,每行一个坐标。思路是字符串转坐标再画图,下面是代码。画出图像是二维码,扫码得到 flag{40fc0a979f759c8892f4dc045e28b820}
import matplotlib.pyplot as plt
'''
buuctf misc 梅花香之苦寒来
字符串存入meihuai.txt文件
'''
with open('meihuai.txt', 'r') as f:
string = f.readline()
# 删除括号 ascii 0x28 0x29; 分割坐标 ascii 0x0a; 注意去掉最后一个空字符串
strings = string.replace('28', '').replace('29', '').split('0a')[:-1]
# 转换坐标 '372c313233'->['37','313233']->['7', '123']->(7,123)
coordinates = list(map(
lambda s: tuple(map(lambda s_ascii: int(s_ascii[1::2]), s.split('2c'))),
strings))
x = list(map(lambda c: c[0], coordinates))
y = list(map(lambda c: c[1], coordinates))
plt.figure()
plt.scatter(x, y, s=1)
plt.axis('equal')
plt.savefig('meihuai.png')
[BJDCTF2020]纳尼【gif文件格式】
附件 6.gif、题目.txt。还问我为啥gif打不开!文件头部缺少 GIF8 呗。补全得到能打开的gif,一共4个frame,把4段字符串拼接得到 Q1RGe3dhbmdfYmFvX3FpYW5nX2lzX3NhZH0=,base64解码得到 CTF{wang_bao_qiang_is_sad},提交 flag{wang_bao_qiang_is_sad}
穿越时空的思念【摩斯码】
附件 穿越时空的思念.mp3,该题目为小写的32位字符,提交即可。用 Audacity 打开,把摩斯码解码,提交 flag{f029bd6f551139eedeb8e45a175b0786}
..-./-----/..---/----./-.../-../-..../..-./...../...../.----/.----/...--/----./././-.././-.../---.././....-/...../.-/.----/--.../...../-.../-----/--.../---../-..../..-./-----/..---/----./-.../-../-..../..-./.....
F029BD6F551139EEDEB8E45A175B0786F029BD6F5 数32个字符做flag的内容
[ACTF新生赛2020]outguess
附件 [ACTF新生赛2020]outguess.tar,解压缩里面附件也很多,但是伪加密、改扩展名都是障眼法,有用的只有 mmm.jpg。flag.txt 还提示“你guess一下啊”,明显是用 outguess 工具。
![](https://i-blog.csdnimg.cn/blog_migrate/ebc0ff6f7fa4e9ca8680409ee932ec47.jpeg)
mmm.jpg 的属性-备注是“公正民主公正文明公正和谐”,解码得到 abc。执行命令如下得到 ACTF{gue33_Gu3Ss!2020},提交 flag{gue33_Gu3Ss!2020}
outguess -r mmm.jpg mmm.txt -k abc
[HBNIS2018]excel破解【excel文件隐写】
附件是[HBNIS2018]excel破解.xls(有密码)。010Editor打开搜索flag得到 flag is here CTF{office_easy_cracked} 提交 flag{office_easy_cracked}
[HBNIS2018]来题中等的吧【摩斯码】
附件转摩斯码解码得到
.-/.-../.--./..../.-/.-../.-/-...
ALPHALAB
flag{alphalab}
谁赢了比赛?
附件who_won_the_game.png。binwalk分离出rar文件,爆破解压缩密码1020。解压缩得到hehe.gif。Stegsolve浏览frame,第310个frame有个图片,另存为 frame310.png。Stegsolve浏览 frame310.png 发现 red plane 0,有个二维码,扫码得到 flag{shanxiajingwu_won_the_game}
![](https://i-blog.csdnimg.cn/blog_migrate/381930b948f70564c1755e1236b7ade9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/830a46a02bf683b55ce89b6aef963cbe.png)
[SWPU2019]我有一只马里奥【ntfs流特性】
附件是一个exe,执行后得到1.txt,提示ntfs、flag.txt。
这是新知识,直接看writeup。NTFS交换数据流(简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,除了主文件流之外还可以有许多非主文件流寄宿在主文件流中,而我们无法查看到非主文件数据流,因文件夹大小始终显示0
以下是进行文件流计生和查看的方法,以后在windows命令行下查看文件,都用 dir /r
寄生在文件上
echo hidden_string > 3.txt:flag.txt
notepad 3.txt:flag.txt
寄生在文件夹上
type 2.txt > test:2.txt
notepad test:2.txt
查看方式
dir /r
dir /r 1.txt:flag.txt 得到 flag{ddg_is_cute}
[WUSTCTF2020]find_me.jpg【盲文】
附件 [WUSTCTF2020]find_me.jpg,属性-备注里有盲文,解码即可。地址戳这里文本加密为盲文,可自设密码|文本在线加密解密工具
⡇⡓⡄⡖⠂⠀⠂⠀⡋⡉⠔⠀⠔⡅⡯⡖⠔⠁⠔⡞⠔⡔⠔⡯⡽⠔⡕⠔⡕⠔⡕⠔⡕⠔⡕⡍=
wctf2020{y$0$u_f$1$n$d$_M$e$e$e$e$e}
flag{y$0$u_f$1$n$d$_M$e$e$e$e$e}
[GXYCTF2019]gakki【字频统计、脑洞】
附件 wolaopo.jpg 是一张新垣结衣的图片。隐写了一个rar文件(有密码),爆破得到密码8864。解压缩得到 flag.txt,内容如下,没有规律。查了writeup,居然是字频分析,统计每个字符出现次数,按照字频从高到低排序。flag就隐藏在其中,下面是代码。提交 flag{gaki_IsMyw1fe}。出题人脑(真)洞(欠)好(揍)大。
![](https://i-blog.csdnimg.cn/blog_migrate/9232b904c035b0de8959930c28d1c863.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/669ee79f60c95522d536870c53972ff4.png)
with open('flag.txt') as f:
line = f.readline()
count = dict()
for c in line:
if count.get(c):
count[c] += 1
else:
count[c] = 1
keys = sorted(count, key=lambda x: count[x], reverse=True)
for k in keys:
print(k, count[k])
print(''.join(keys))
# GXY{gaki_IsMyw1fe}DAQOWJHNSEKUP*Z&8#294BC%^V$3@)(R-FT05=L76ohqdujlmczxnpbvtr![;,. '
[ACTF新生赛2020]base64隐写【base64隐写、脑洞】
附件 近在眼前.zip(无密码),解压缩得到 hint.jpeg 和 ComeOn!.txt。hint.jpeg是微信公众号二维码,备注里面提示去公众号找线索,但是并未找到(可能当年比赛时有线索)。ComeOn!.txt是多行base64编码,2次base64解码得到类似C++代码,但是flag并不在这里。
查看writeup才知道这题脑洞多大。分析大佬们的脚本,得到如下结论
base64编码,6bit一组查base64 alphabet得到编码。这决定了当字符串长度不是3的倍数时,余有bit。剩余bit,用0补充到6位再查base64 alphabet得到最后一个编码表字符。编码最后用=补充。
长度为3n的字符串,不用补=。
长度为3n+1的字符串,余2bit,需要补充4bit的0凑够6位,再补==。
长度为3n+2的字符串,余4bit,需要补充2bit的0凑够6位,再补=。
以字母a为例,ascii编码为01100001
一般base64编码会补0: 011000 010000 -> YQ -> YQ==
但是如果补其他内容,只要位数不变,就不会影响解码的效果。
比如a可以补位为是 010001 or 010010 ... or 011111 -> YR== YS== ... Yf==
运行下面的代码,就看到解码都是字母a
b1 = [b'YQ==', b'YR==', b'YS==', b'YT==', b'YU==', b'YV==', b'YW==', b'YX==',
b'YY==', b'YZ==', b'Ya==', b'Yb==', b'Yc==', b'Yd==', b'Ye==', b'Yf==', ]
b2 = list(map(lambda x: base64.b64decode(x), b1))
print(b2)
所以对隐写编码先base64解码再base64编码得到一般编码。隐写编码和一般编码最后一个字符的偏移量转二进制,左侧补0。补0后位数为该行编码等号个数的2倍,如果已经达到足够位数就不补0(用str.zfill实现)。然后8位一组转ascii得到 ACTF{6aseb4_f33!},提交 flag{6aseb4_f33!}
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('ACTF2022_base64_steg.txt', 'r') as fin:
steg_lines = fin.readlines()
steg_lines = list(map(lambda line: line.strip('\n'),
steg_lines)) # steg_lines要迭代多遍,所以转成list
# 先解码再编码得到一般的base64编码
normal_lines = map(lambda line: base64.b64decode(line.encode('utf-8')),
steg_lines)
normal_lines = map(lambda line: base64.b64encode(line).decode('utf-8'),
normal_lines)
# 计数每行编码的=个数eq_counts
eq_counts = map(lambda line: line.count('='), steg_lines)
# 去掉=,看最后一个字符的差别得到offsets
steg_lines = map(lambda line: line.replace('=', ''), steg_lines)
normal_lines = map(lambda line: line.replace('=', ''), normal_lines)
offsets = map(lambda steg_line, normal_line: abs(
alphabet.index(steg_line[-1]) - alphabet.index(normal_line[-1])),
steg_lines, normal_lines)
# 按照=个数*2,左边补0,形成二进制字符串
bin_strs = map(lambda eq_count, offset: bin(offset)[2:].zfill(
eq_count * 2) if eq_count else '', eq_counts, offsets)
bin_str = ''.join(bin_strs)
chs = []
for i in range(0, len(bin_str), 8):
chs.append(chr(int(bin_str[i:i + 8], 2)))
print(''.join(chs))
[GUET-CTF2019]KO【Ook!】
附件 [GUET-CTF2019]KO.txt,内容是Ook编码。解码得到 flag{welcome to CTF}
[MRCTF2020]ezmisc【png图片crc32爆破】
附件 flag.png 图片,crc32爆破得到weight: 500(0x1f4), height: 456(0x1c8),提交 flag{1ts_vEryyyyyy_ez!}
![](https://i-blog.csdnimg.cn/blog_migrate/8c73167882925ca9e05afb7f657be9bc.png)
[SWPU2019]伟大的侦探【EBCDIC编码、图形密码】
附件 [SWPU2019]伟大的侦探.zip(有密码),里面 密码.txt 可以解压缩。看writeup说用EBCDIC编码查看,得到解压缩密码 wllm_is_the_best_team!
解压缩得到18张图片,文件名是jpg实际是png图片。是《福尔摩斯探案集》里面跳舞的小人密码。
大多数密码表对照不出来,参考BUUCTF:[SWPU2019]伟大的侦探_末初mochu7的博客-CSDN博客_[swpu2019]伟大的侦探可以对照出来,提交 flag{iloveholmesandwllm}
黑客帝国【png、jpg文件格式】
附件 黑客帝国.rar(有密码),爆破得到密码 3690,解压缩得到txt文件,内容是一行字符串。看到52617221……知道是rar文件。010Editor粘贴后得到a.rar文件,解压缩得到a.png文件但打不开。010Editor查看发现内容有JFIF,以0xFFD9结尾,推断为jpg文件。把开头的4个字节从 0x89504E47 改为 0xFFD8FFE0,另存为a.jpg文件,打开得到
flag{57cd4cfd4e07505b98048ca106132125}
[MRCTF2020]你能看懂音符吗【rar文件格式、音符密码】
附件 [MRCTF2020]你能看懂音符吗.rar,文件打不开。010Editor查看,文件头部aRr!,改为Rar!也就是0x52617221,解压缩得到 你能看懂音符吗.docx。word文档-字体-隐藏文字,显示被隐藏内容,如下图。
用搜狗输入打特殊符号如下
♭♯♪‖¶♬♭♭♪♭‖‖♭♭♬‖♫♪‖♩♬‖♬♬♭♭♫‖♩♫‖♬♪♭♭♭‖¶∮‖‖‖‖♩♬‖♬♪‖♩♫♭♭♭♭♭§‖♩♩♭♭♫♭♭♭‖♬♭‖¶§♭♭♯‖♫∮‖♬¶‖¶∮‖♬♫‖♫♬‖♫♫§=
在文本加密为音乐符号,可自设密码|文本在线加密解密工具解密得到 MRCTF{thEse_n0tes_ArE_am@zing~} 提交 flag{thEse_n0tes_ArE_am@zing~}
[HBNIS2018]caesar【凯撒密码】
题目:caesar
描述:gmbhjtdbftbs
flag格式:XXX 明文
提交:直接提交明文 (小写)
凯撒解密,offset=1,提交 flag{flagiscaesar}
[HBNIS2018]低个头【脑洞】
题目是txt文件,内容乱码中有可读部分——EWAZX RTY TGB IJN IO KL
出题人脑洞真可(欠)以(打)……题目“低个头”居然是提示看键盘,这几个字母形成的字符是CTF,提交 flag{CTF}
[SUCTF2018]single dog【aaencode等**encode密码】
附件[SUCTF2018]single dog.jpg,隐写了一个zip文件,解压得到1.txt。内容是颜文字。百科一下,知道了好几种代码混淆的工具可以作为密码使用,这里是aaencode。除此之外还有jjencode、ppencode、rrencode、uuencode、xxencode,暂时没有找到具体的算法,待研究。
在线工具地址 CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码,也可以使用随波逐流,解码得到 JavaScript 代码如下,提交 flag{happy double eleven}
function a()
{
var a="SUCTF{happy double eleven}";
alert("双十一快乐");
}
a();
我吃三明治【base32】
附件 flag.jpg,010Editor查看隐写了一个jpg,且两个jpg之间有字符串(像三明治一样夹在中间)。字符串 MZWGCZ33GZTDCNZZG5SDIMBYGBRDEOLCGY2GIYJVHA4TONZYGA2DMM3FGMYH2。
应注意到base系列的padding问题,本例缺少padding导致部分工具无法破解。补齐padding的编码应为MZWGCZ33GZTDCNZZG5SDIMBYGBRDEOLCGY2GIYJVHA4TONZYGA2DMM3FGMYH2===,解码得到 flag{6f1797d4080b29b64da5897780463e30}
sqltest【流量分析】
附件 sqltest.pcapng,wireshark打开先协议分级一下发现只有http协议。过滤发现只有GET请求。规律是:每次http请求,就是逐位尝试数据库名、表名、字段名和字段值。
逐次递进最终尝试出:数据库名 db_flag、表名 tb_flag、字段名 flag。因此只要按照这个规则把每次(位)尝试的最后一次值求出来就是flag。
使用 tshark过滤,注意过滤条件。
tshark -r sqltest.pcapng -2 -R 'http.request.uri.query.parameter contains "id=1 and ascii(substr(((select concat_ws(char(94), flag) from db_flag.tb_flag limit 0,1)), "' -T fields -e http.request.uri.query.parameter > 1.txt
得到内容如下,处理一下,取出每位最后一次尝试值,转为ascii。
102, 108, 97, 103, 123, 52, 55, 101, 100, 98, 56, 51, 48, 48, 101, 100, 53, 102, 57, 98, 50, 56, 102, 99, 53, 52, 98, 48, 100, 48, 57, 101, 99, 100, 101, 102, 55, 125
flag{47edb8300ed5f9b28fc54b0d09ecdef7}
[ACTF新生赛2020]music【m4a文件格式】
附件vip.m4a无法播放,错误码0x80040241。这里必须知道.m4a文件的格式。前32个字节:
- 0-3字节都是0x00;
- 12-15字节都是0x00;
- 4-7字节是4个字符 ftyp;
- 8-10和16-18的内容是一样的,可能是 M4A,也可能是 mp42;
观察vip.m4a,前32字节中,0-3和12-15字节本应是0x00却变成了0xA1,且8-10和16-18字节内容相同,猜想vip.m4a文件和0xA1异或了。
代码如下,得到vip2.m4a,播放听到 actfabcdfghijk,提交 flag{abcdfghijk}
f1 = open('vip.m4a', 'rb')
ba1 = f1.read()
f1.close()
ba2 = bytes()
for b in ba1:
i = b ^ 0xA1
ba2 += i.to_bytes(1, 'big')
f2 = open('vip2.m4a', 'wb')
f2.write(ba2)
f2.close()
也可以010Editor-Tool-Hex Operation,直接异或保存。
[SWPU2019]你有没有好好看网课【Kinovea工具、敲击码】
附件解压缩得到 flag2.zip 和 flag3.zip,都有密码。看writeup才知道这题脑洞真不小。
flag3.zip备注有提示,密码是6位数字爆破得到183792。解压缩得到 flag.docx 和 影流之主.mp4。flag.docx 这个word文件没有什么特别内容,据说520和711是提示截屏位置的,但是时间和帧数都对不上。影流之主.mp4在5秒和7秒的时候,吊灯位置一闪而过,写了密文。看writeup说用Kinovea工具,可以慢放,然后逐帧查看视频影像。我认为这个地方不好,CTF是技术,不是比脑洞和眼力。
![](https://i-blog.csdnimg.cn/blog_migrate/8f77df9e51fa13487b15f5ac0c468050.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f410296dede85c1e5ee64b6f19e2f73.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cc4ec7766b7be5724a2895d9ae184712.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3400a2ae5a4d0476720652fbdaf17df6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/287a9bd86f3c2a31674f7d11b6191c22.jpeg)
第一个截屏,..... ../... ./... ./... ../ 是敲击码,对照码表得到 wllm。
第二个截屏,dXBfdXBfdXA=,base64解码得到up_up_up。
两个拼一起 wllmup_up_up 是 flag2.zip 的解压缩密码。得到 Real flag.jpg,文件尾部隐写了字符串swpuctf{A2e_Y0u_Ok?},提交flag{A2e_Y0u_Ok?}
[ACTF新生赛2020]NTFS数据流【ntfs流特性】
此题 与[SWPU2019]我有一只马里奥 异曲同工。直接 dir /r ,过滤 $DATA字符串,发现293.txt后面跟了NTFS流。notepad 293.txt:flag.txt 打开查看 ACTF{AAAds_nntfs_ffunn?},提交 flag{AAAds_nntfs_ffunn?}
john-in-the-middle【流量分析、PNG隐写】
附件 john-in-the-middle.pcap,发现只有HTTP协议,只有 200 OK,传输了6张图片。全部复制为 Hex Stream,粘贴到010Editor里保存为png图片。逐个用StegSolve查看,发现logo.png里面在Random Color Map 时有 flag{J0hn_th3_Sn1ff3r}
(http.request.uri contains ".png") || (tcp.payload contains "PNG" && tcp.payload contains "IEND")
![](https://i-blog.csdnimg.cn/blog_migrate/0f3367ffc8d9e7aacf0c874b6dda012e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b8086c015d4531093f2b0ca187296cb6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/df54bf3d73feb85f809800c1ec70ccdd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/310cfdd17373d4ca1307569ad41a929b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0c7c5d7ce2502f5c63e16f567522d0fa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a9b9b14b51d5b661d429f98c8619f10f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/debd6a3c00bcf3136f98e7955bfe5d2a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1228e74b1623d6d63c1c2661fff5d742.png)
喵喵喵【ntfs流及工具、umcompyle6工具】
附件mmm.png。StegSolve查看发现RGB三色plane0的顶部有异常。用Data Extract,选择RGB的plane0,通道顺序BGR,小端模式LSB,发现是一个PNG图片,另存为qr.png。qr.png是半个二维码,crc32爆破高度得到完整二维码qr1.png。可以用QRResearch直接扫码qr1.png,或者qr1.png反色后用微微二维码扫描,得到字符串 https://pan.baidu.com/s/1pLT2J4f。
![](https://i-blog.csdnimg.cn/blog_migrate/b57ac5333616870db024e4e99f6ee34d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e3e68dca8a29b8f7c46972ceada4c8e5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d23ad1ac3443817060e976340c122941.png)
从网盘下载到flag.rar文件。winrar解压缩报错。里面的flag.txt内容为“flag不在这里哦 你猜猜flag在哪里呢? 找找看吧”。
此时考虑NTFS流数据。用NtfsStreamsEditor工具搜索得到flag.pyc。
![](https://i-blog.csdnimg.cn/blog_migrate/180bee6dfac53a9401801eb110a20223.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5a32f4a931aa8f2041003834da40faf8.png)
用uncompyle6反编译。
![](https://i-blog.csdnimg.cn/blog_migrate/65b1b559fcfd70aeec8d6b1c4fd7a2eb.png)
查看flag.py是一段加密代码,encode函数把flag字符串加密成ciphertext。
# uncompyle6 version 3.8.0
# Python bytecode 2.7 (62211)
# Decompiled from: Python 3.10.7 (main, Oct 1 2022, 04:31:04) [GCC 12.2.0]
# Embedded file name: flag.py
# Compiled at: 2017-12-05 23:42:15
import base64
def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))
return ciphertext[::-1]
ciphertext = [
'96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132',
'46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112']
我们编写decode函数把ciphertext解密得到 flag{Y@e_Cl3veR_C1Ever!}
def decode():
ciphertext = [
'96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132',
'46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112']
ciphertext = ciphertext[::-1]
flag = []
for i, s in enumerate(ciphertext):
if i % 2 == 0:
s = int(s) - 10
else:
s = int(s) + 10
s = chr(i ^ s)
flag.append(s)
print(''.join(flag))
if __name__ == '__main__':
decode()
uncompyle6报错和配置
刚安装完,执行 uncompyle6 -h 发现报错。参看大神的博客知道是python版本不在uncompyle6一个文件的内部。修改文件,增加自己的python版本(我是3.10.7)。这样就正常了。
![](https://i-blog.csdnimg.cn/blog_migrate/5fd7ee00049ba719679b363071706b4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/147925114367bdd60ce01cfa366d263b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bb540999316cc879c8312f520260a66c.png)
[ACTF新生赛2020]swp【zip伪加密、vim】
附件wget.pcapng,协议里只有GET方法的HTTP流。虽然传输有大量图片,但是图片都没用。最后两次HTTP的GET内容有用,一个secret.zip(有密码),另一个是提示。hint.html页面上写着“<h1>you don't need password</h1>”。那就是伪加密,修改后加密标志位可以解压缩。
(http.request.method==GET && (http.request.uri contains "zip" || http.request.uri contains "hint")) || http.response.code==200
secret.zip解压缩得到 flag(elf文件) 和 .flag.swp 两个文件。看来是在用vim篡改这个elf文件。使用 vim -r flag 可以恢复flag文件,可以看看这篇博客。但是不管原来的还是恢复的flag.elf都不能执行,执行就报错。最后用010Editor打开flag.elf直接搜索 actf 找到 actf{c5558bcf-26da-4f8b-b181-b61f3850b9e5},提交 flag{c5558bcf-26da-4f8b-b181-b61f3850b9e5}
[GXYCTF2019]SXMgdGhpcyBiYXNlPw==【base64隐写】
附件是flag.txt,有66行base64编码,解码得到一首法语诗(歌词)?内容不太重要。重点是以后看到有多行base64编码,的就考虑base64隐写。此题与 [ACTF新生赛2020]base64隐写 异曲同工。参考这题代码得到 GXY{fazhazhenhaoting},提交 flag{fazhazhenhaoting}
间谍启示录【隐藏文件】
附件是一个iso镜像,可以解压缩得到内容。文档说明里面有提示“杀毒杀掉的恰恰是线索”。
![](https://i-blog.csdnimg.cn/blog_migrate/f3e1683defe58c026009d5509808eca4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a6bb1015c2c1b68c420f1713f3a3a46b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/65ff6dbfb2c45086d350ffeefdfb1df3.png)
执行一下 systemzx.exe,发现是解压缩,得到 文件已被销毁.exe。执行 文件已被销毁.exe,没有反应,但这个exe肯定有问题。010Editor打开 文件已被销毁.exe,搜索 flag 发现里面有del flag.exe字样。binwalk 一下发现还真有 flag.exe。
执行flag.exe发现没有反应。用IDA反编译一下,发现flag.exe打开了一个文件写入了flag。dir /r 看目录下并没有多出文件,但是按tab键逐个查看时发现有 机密文件.txt,这个文件的属性是“隐藏”。里面就是 flag{379:7b758:g7dfe7f19:9464f:4g9231}
Mysterious【反编译】
附件 Mysterious.exe,打开后让输入字符串进行crack。没发现其他问题,用IDA反编译。
WinMain中调用了DialogBoxParamA函数弹出对话框,回调函数是DialogFunc函数。DialogFunc函数调用sub_401090函数。我们需要构造String,让程序走到“well done”。这需要让v4=atoi(String)得到122,String的后3个字符为xyz。所以输入 122xyz,得到 flag{123_Buff3r_0v3rf|0w}
[UTCTF2020]docx【word本质是zip】
附件 [UTCTF2020]docx.docx。改为[UTCTF2020]docx.zip,解压缩,在word/media目录里找到image23.png图片,得到 flag{unz1p_3v3ryth1ng}
![](https://i-blog.csdnimg.cn/blog_migrate/965d1f985b891fff6b58fa6009a524d0.png)
弱口令【cloacked-pixel隐写工具】
附件 弱口令.zip 有密码。打开发现有备注。备注空格、制表符对应点、横线。
![](https://i-blog.csdnimg.cn/blog_migrate/4cf4ee208ad5c45d56c93114bc1b8af1.png)
对应的点、横线再摩斯码解码得到hell0forum,但这不是密码。
...././.-../.-../-----/..-./---/.-./..-/--
hell0forum
把hell0forum存成一个txt文件作为字典,用ARCHPR工具字典爆破密码得到 HELL0FORUM
![](https://i-blog.csdnimg.cn/blog_migrate/e9f807362b2fe43a7aca39f1e294e9a3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8219cc075ede2f20a1e51140e47c1e8f.png)
用 HELL0FORUM 密码解压缩得到 女神.png 图片。
看writeup知道有个cloacked-pixel隐写工具。这个工具比较老,需要python2环境。
conda create -n py27 python=2.7
conda activate py27
conda install numpy matplotlib pandas pillow pycryptodome
python .\lsb.py extract .\ns.png ns.txt 123456
搭好环境,用弱口令 123456 执行命令得到 ns.txt,内容 flag{jsy09-wytg5-wius8}
[RoarCTF2019]黄金6年【Kinovea工具】
附件是个mp4视频,用010Editor打开,发现结尾有base64编码。转码发现 Rar! 字样,考虑转成二进制文件,写段代码转成flag.rar文件(有密码)。
import base64
c = b'UmFyIRoHAQAzkrXlCgEFBgAFAQGAgADh7ek5VQIDPLAABKEAIEvsUpGAAwAIZmxhZy50eHQwAQADDx43HyOdLMGWfCE9WEsBZprAJQoBSVlWkJNS9TP5du2kyJ275JzsNo29BnSZCgMC3h+UFV9p1QEfJkBPPR6MrYwXmsMCMz67DN/k5u1NYw9ga53a83/B/t2G9FkG/IITuR+9gIvr/LEdd1ZRAwUEAA=='
p = base64.b64decode(c)
f = open('flag.rar', 'wb')
f.write(p)
f.close()
之后看writeup才知道要到视频里找解压密码。用Kinovea打开逐帧查看,我找到了3帧有二维码,扫码得到key1、key2和key3。据说key4要用Adobe Pr才能找到,反正我是没找到。拼起来密码iwantplayctf,解压缩得到flag.txt,提交flag{CTF-from-RuMen-to-RuYuan}
![](https://i-blog.csdnimg.cn/blog_migrate/19e168c1a40a5383d8cee2029c07ec26.png)
![](https://i-blog.csdnimg.cn/blog_migrate/926e2697674182d129d097fe2cf80e40.png)
![](https://i-blog.csdnimg.cn/blog_migrate/00bcce80d70c5f1448274292924f1ca3.png)
小易的U盘【autorun.inf文件】
附件iso文件解压缩,得到U盘内容。下面是提示:
小易的U盘中了一个奇怪的病毒,电脑中莫名其妙会多出来东西。小易重装了系统,把U盘送到了攻防实验室,希望借各位的知识分析出里面有啥。请大家加油噢,不过他特别关照,千万别乱点他U盘中的资料,那是机密。
用windows日记本(不是日志查看器)打开jnt文件,没有flag。flag.txt说flag还没有生成,那么查看编号2-64的autoflag.exe程序,但是运行也没有结果,生成的flag.avi文件里面只有单一的字符f。
直接看writeup。autorun.inf 作用是允许在双击磁盘时自动运行指定的某个文件。但是近几年出现了用autorun.inf文件传播木马或病毒,它通过使用者的误操作让目标程序执行,达到侵入电脑的目的,带来了很大的负面影响。
U盘里有 autorun.inf 文件,自动运行的是autoflag - 副本 (32)。用IDA反编译,得到 flag{29a0vkrlek3eu10ue89yug9y4r0wdu10}。
autorun.inf 里面 Open的含义
含义:指定设备启用时运行之命令行。
格式:Open=命令行(命令行:程序路径名 [参数])
参数:
命令行:自动运行的命令行,必须是 .exe、.com、.bat 文件,其他格式文件可以使用start.exe打开或使用ShellExecute命令。
![](https://i-blog.csdnimg.cn/blog_migrate/b6f0fe241ec2676653eb49aa91cdb6c3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/15b1a6065ed6786f39e4f935e373d1fb.png)
[WUSTCTF2020]爬
附件是pdf,提示flag被图片覆盖住了,用Adobe编辑pdf,把图片删掉,下面还有一张图片。内容hex转成ascii得到 wctf2020{th1s_1s_@_pdf_and_y0u_can_use_phot0sh0p}
0x77637466323032307b746831735f31735f405f7064665f616e645f7930755f63616e5f7573655f70686f7430736830707d
[WUSTCTF2020]alison_likes_jojo【john、outguess】
附件boki.jpg、jljy.jpg两个图片。
![](https://i-blog.csdnimg.cn/blog_migrate/9f4bf2ad4917dce089d780e70ba95cee.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/3dd5e01a62273c2073f0bfd9c1968f34.jpeg)
用binwalk从boki.jpg里分离出2B3DB.zip,在用john破解出压缩密码888866,解压缩得到beisi.txt。beisi.txt内容经过3次base64解码得到killerqueen。
再用outguess命令 outguess -k killerqueen -r jljy.jpg jljy.txt 从jljy.jpg里面得到flag为 wctf2020{pretty_girl_alison_likes_jojo}
[安洵杯 2019]吹着贝斯扫二维码
附件是加密的flag.zip和其他36个文件。36个文件都是jpg图片,且能拼图成一个二维码。扫描得到BASE Family Bucket ??? 85->64->85->13->16->32。
flag.zip的备注是:GNATOMJVIQZUKNJXGRCTGNRTGI3EMNZTGNBTKRJWGI2UIMRRGNBDEQZWGI3DKMSFGNCDMRJTII3TMNBQGM4TERRTGEZTOMRXGQYDGOBWGI2DCNBY
随波逐流可以先base32解码,再base16解码,看来要把上面的过程反向做一遍。32->16->13->85->64->85解码,其中13指的是rot13,最终得到解压密码ThisIsSecret!233。
解压缩得到flag.txt内容是 flag{Qr_Is_MeAn1nGfuL}
从娃娃抓起
附件文本,一行是中文电码,一行是五笔字型,对应的中文字符串是“人工智能”、“也要从娃娃抓起”。计算“人工智能也要从娃娃抓起”的md5值,提交flag{3b4b5dccd2c008fe7e2664bd1bc19292}。
"""
题目描述:伟人的一句话,标志着一个时代的开始。
那句熟悉的话,改变了许多人的一生,为中国三十年来计算机产业发展铺垫了道路。
两种不同的汉字编码分别代表了汉字信息化道路上的两座伟大里程碑。
请将你得到的话转为md5提交,md5统一为32位小写。
0086 1562 2535 5174
bnhn s wwy vffg vffg rrhy fhnv
请将你得到的这句话转为md5提交,md5统一为32位小写。
提交格式:flag{md5}
"""
import hashlib
m = hashlib.md5()
m.update('人工智能也要从娃娃抓起'.encode('utf-8'))
f = m.hexdigest()
print(f)
[GUET-CTF2019]zips【时间戳当密码】
222.zip有密码,6位数字爆破得到密码723456。解压缩得到111.zip发现是伪加密,解压缩得到setup.sh和flag.zip。可以看到flag.zip是用时间戳加密的。
#!/bin/bash
#
zip -e --password=`python -c "print(__import__('time').time())"` flag.zip flag
观察flag.zip的创建时间是2019-05-17 08:25,因此找到临近时间08:00-09:00换成时间戳,把两个时间戳作为掩码爆破的范围。因为加密密码小数点后位数不确定,可以从小数点后一位开始尝试。掩码爆破得到密码 1558080832.15(实际时间是2019-05-17 08:13:52),解压缩得到flag{fkjabPqnLawhvuikfhgzyffj}。
import time
st1 = time.strptime("2019-05-17 08:00", "%Y-%m-%d %H:%M")
print(time.mktime(st1))
# 1558051200.0
st2 = time.strptime("2019-05-17 09:00", "%Y-%m-%d %H:%M")
print(time.mktime(st2))
# 1558054800.0