2-看雪CTF
注册 看雪账号
挑战
Game-1
1 | -.--/---/..-/.--/../-. |
可以判断为摩斯密码,摩斯密码破解
Game-2
判断为二维码修复
找到一张普通的二维码
用ps修复
扫描得出flag{62d0cbb2c69133b52f386701726f29c1}
Game-3
base64解码Base64 编码/解码 - 在线工具 (toolhelper.cn)
直接提交是错识误的,题中说”错误的md5”,一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,所以把里面的唯一可能有问题的字符修改一下提交,o -> 0
Game-4
推断出为盲文,对照表,flag为ikanxue
Game-5
打开之后显示不正常,可能为零宽度字符隐写
零宽度字符是一些不可见、不可打印的字符,在页面中用于调整字符的显示格式。零宽度字符本质上是unicode编码。
零宽度字符隐写:需要加密的内容转换为二进制,然后将二进制转换成一系列的零宽度字符,这样加密的内容就被隐藏了(普通文本编辑器不显示零宽度字符)。
常见零宽度字符
U+200B:零宽度空格
U+200C:零宽度非连接符
U+200D:零宽度非连接符
U+200E:从左到右书写标记
U+200F:从右到左书写标记
打开虚拟机linux,用vim打开文件
1 | 看雪学院(<200c><200c><200c><200c><200d><202c><200d><202c><200c><200c><200c><200c><200d><202c><feff><200c><200c><200c><200c><200c><200d><202c><200c><200d>kanxue<200c><200c><200c><200c><200d><202c><200d><feff>.<200c><200c><200c><200c><200d><feff><202c><feff><200c><200c><200c><200c><200c><feff><200d><202c><200c><200c><200c><200c><200d><202c><200c><200d>com<200c><200c><200c><200c><200d><202c><200d><202c>)<200c><200c><200c><200c><200c><feff><202c><200d><200c><200c><200c><200c><200c><feff><200d><feff><200c><200c><200c><200c><200c><feff><200c><200d><200c><200c><200c><200c><200d><202c><200c><200d><200c><200c><200c><200c><200c><feff><200d><200c><200c><200c><200c><200c><200c><feff><200c><202c><200c><200c><200c><200c><200c><feff><200d><feff><200c><200c><200c><200c><200c><feff><202c><200c>,<200c><200c><200c><200c><200c><feff><200c><202c><200c><200c><200c><200c><200c><feff><200c><200d><200c><200c><200c><200c><200c><feff><200c><200d><200c><200c><200c><200c><200c><feff><200d><200d><200c><200c><200c><200c><200d><202c><200c><200d><200c><200c><200c><200c><200c><feff><200d><200d>是一个专注于<200c><200c><200c><200c><200c><feff><202c><200d>PC、移动、<200c><200c><200c><200c><200c><feff><200d><200c>智能设备安全研究及逆向工程的开发者社区!成立于<200c><200c><200c><200c><200d><202c><200c><202c>2000<200c><200c><200c><200c><200d><202c><200c><200d><200c><200c><200c><200c><200c><feff><200c><202c>年,<200c><200c><200c><200c><200c><feff><200c><feff><200c><200c><200c><200c><200c><feff><200c><200d>经历了二十年的磨砺<200c><200c><200c><200c><200c><feff><202c><200c><200c><200c><200c><200c><200d><202c><200c><feff>,<200c><200c><200c><200c><200c><feff><200c><200c><200c><200c><200c><200c><200c><feff><200d><200c>见证了国内安全行业的发展<200c><200c><200c><200c><200c><feff><200c><200d>,<200c><200c><200c><200c><200c><feff><200d><feff>被誉为安全界的黄埔军校<200c><200c><200c><200c><200d><202c><200c><200d><200c><200c><200c><200c><200d><202c><200d><200c><200c><200c><200c><200c><200d><feff><feff><200d>。它是中国最早的安全人员交 |
勾选对应字符编码
Game-6
下载,打开为二进制数字
8个为一组,在线二进制转文本工具 - UU在线工具 (uutool.cn)
iodj{7115i261eig7i42d5fg7412fh86ded7h}
为凯撒密码加密结果,在线凯撒密码加密解密 (lddgo.net) ,依次测试偏移量,flag{7115f261bfd7f42a5cd7412ce86aba7e}
Game-7
下载文本文件,根据提示想到栅栏密码,栅栏密码有传统形和W型,这个是W型,110米要跨10个栏
ZmxhZ3s1YzI3N2E0MzUxNzIzMWJiMWZlY2U4NzIzZDJkNjU2OX0=
再经过base64解密
得到:flag{5c277a43517231bb1fece8723d2d6569}
Game-8
猜测这是一道逆向题
首先要使用工具判断软件版本以及是否有壳。
查壳工具 Exeinfo PE 0.0.8.3 集成插件单文件汉化版
Exeinfo PE 0.0.8.3.exe - 蓝奏云 (lanzouw.com)
发现是32位程序,没有加壳
然后进行反汇编
用ida打开winxor.exe文件找到main函数,按tab或者f5查看源代码,发现flag
双击check函数查看
对比a1是Buffer也就是要输入的答案,a2是flag变量,a3是38
对比ascll编码表0x31是1,双击flag查看flag中的内容,根据循环判断38次运算,为38个编码
往下数38个
1 | string=[0x57,0x5D,0x50,0x56,0x4A,0x3,0x53,0x4,0x53,0x8,0x54,0x9,0x4,0x0,0x54,0x50,0x6,0x3,0x3,0x8,0x4,0x2,0x8,0x54,0x5,0x2,0x54,0x3,0x7,0x9,0x8,0x5,0x52,0x5,0x3,0x0,0x1,0x4C ] |
对照代码flag内容与1进行异或得出最终结果:flag{2b5b9e851ea7229539e43e26894c4210}
Game-9
文件为png图片文件,先用010查是否隐写010Editor Professional 14 (十六进制编辑器)
010 Editor 注册码_010editor 注册码-CSDN博客
一个 PNG 文件格式为:
1 | 文件头(89 50 4E 47 0D 0A 1A 0A) + 数据块 + 数据块 + 数据块…… + 文件尾(00 00 00 00 49 45 4E 44 AE 42 60 82) |
PNG 定义了两种类型的数据块,一种是称为关键数据块,这是标准的数据块,另一种叫做辅助数据块,这是可选的数据块。关键数据块定义了4个标准数据块,每个 PNG 文件都必须包含它们。
每个数据块都有着统一的结构,由 4 个部分组成:
IHDR(文件头数据块)
第一块是文件头数据块(IHDR),它由第11——32字节组成(从0开始),包含有 PNG 文件中存储的图像数据的基本信息,数据从第 16字节开始,有13个字节,其前8字节分别用4个字节规定了图片的宽和高(十六进制,以像素为单位)。
IDAT(图像数据块)
它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。它采用 LZ77 算法的派生算法进行压缩,可以用 zlib 解压缩。
IHDR 篡改图片宽高
IHDR 的前8字节规定了图片的宽和高,我们可以用十六进位文件编辑器更改它们以使得这张图片显示不完整,从而达到隐藏信息的目的。此时它的图片数据并没有变,在Windows图片查看器中超过规定的图片宽高的部分只是不显示了。
LSB 隐写
PNG 文件中的图像像数一般是由 RGB 三原色(红绿蓝)组成(有的图片还包含A通道表示透明度),每一种颜色占用8位,取值范围为0x00至0xFF。LSB 隐写就是修改 RGB 颜色分量的最低二进制位(LSB),它修改了每个像数颜色的最低的1 bit,而人类的眼睛不会注意到这前后的变化,这样每个像素可以携带3比特的信息。
如果是要寻找这种 LSB 隐藏痕迹的话,有一个工具 Stegsolve 是个神器,可以来辅助我们进行分析。通过下方的按钮观察每个通道的信息,我们可以捕捉异常点,抓住 LSB 隐写的蛛丝马迹(这玩意儿很难说,一般就是一看就感觉奇怪的n行或n列颜色块),进而利用 Stegsolve –> Analyse –> Data Extract 功能指定通道进行提取。
对于PNG和BMP文件中的 LSB 等常见的隐写方式,我们也可以使用 zsteg 工具直接进行自动化的识别和提取。
从0开始学杂项 第三期:隐写分析(2) PNG图片隐写 - 知乎 (zhihu.com)
简单查看图片没有被隐写,打开图片
图片名称位wakanda,浏览器搜索wakanda,找到瓦坎达文字对照表
对照表得出YOUGOTIT
Game-10
判断为幂数加密(云影加密)01248密码,该加密法采用0作间隔,其他非0数隔开后组合起来相加表示序号1-26之一的字母
821010841088421108841022104084210884021084210841
python代码快速解密:
1 | a = "821010841088421108841022104084210884021084210841" |
kamxuedotcom直接提交还是不对,“看”的拼音不对,就把M改为N,提交正确flag{kanxuedotcom}
Game-11
还需要密码吗?看题目想到伪加密
用010打开,修改压缩文件加密标志位为00,保存后就没有密码了
flag{d9ae4d859de9b941af40f91f69b13f31}
Game-12
zip伪加密原理
50 4B 03 04:头文件标记(0x04034b50)4bytes
14 00:加压文件所需pkware版本 2bytes
00 00:全局方式位标记(有无加密) 2bytes 09 00
08 00:压缩方式 2bytes
B7 8B:最后修改文件时间 2bytes
88 55:最后修改文件日期 2bytes
ED 2C BE 32:CRC-32校验 4bytes
28 00 00 00:压缩后尺寸 4bytes
26 00 00 00:未压缩尺寸 4bytes
08 00:文件名长度 2bytes
00 00:扩展记录长度 2bytes
- Title: 2-看雪CTF
- Author: 小浩
- Created at : 2024-05-08 09:55:45
- Updated at : 2024-06-08 13:52:13
- Link: https://blog.xh8.shop/2024/05/08/2-看雪CTF/
- License: This work is licensed under CC BY-NC-SA 4.0.