Misc
FinalSign
打开附件发现有空白字符,猜测是Snow
雪花隐写,工具下载:https://www.darkside.com.au/snow/
直接下载32位的执行文件就行,-c提取出关键信息,异或的密钥为helloworld
1 | C:\Users\maple\Desktop\Misc\浙江大学生信息安全决赛\Misc1-FinalSign\tempdir\MISC附件>snow -C FinalSign.txt |
-C 如果隐藏数据,则压缩数据,如果提取,则解压缩数据。
-Q 安静模式。如果未设置,程序将报告 压缩百分比和已用可用存储空间量。
-S 报告可用于隐藏的大致空间量 消息。行长度被考虑在内,但 其他选项将被忽略。
-p 密码 如果已设置此项,则在 隐藏,或在提取过程中解密。
-l 行长度 当附加空格时,snow 将始终产生线条 短于此值。默认情况下,它设置为 80。
-f 消息文件 此文件的内容将隐藏在输入文本文件中。
-m 消息字符串 此字符串的内容将隐藏在输入文本文件中。 请注意,除非字符串中以某种方式包含换行符,否则 提取消息时,将不会打印 newline。
那就利用python将文本中的密文和helloworld
异或一下
1 | a=bytes.fromhex("2c243f2f3b3114345d0a0909333f06100143023b2c55020912") |
或者利用CyberChef
也能出,每个人习惯不同
天命人
附件是个压缩包解压之后得到一些以中华词语命名的文件
夜生白露 日落红尘 曲度紫鸳 未竟 火照黑云 风起黄昏
结合压缩包注释想起黑神话悟空里面的章节,将文件排序下得到
1 | 火照黑云 |
加之RAID 0
磁盘阵列猜测将文件组合形成一个新的文件,放到010Editor
看一下,没错就是把单个文件拆成了六个文件,按章节拼接组合即可,但可不是直接将文件整体拼接那么简单的
而是每个文件每一位按章节顺序拼接,简单查看了解到开头是504B0304
典型的压缩包
1 | file_list = ['火照黑云', '风起黄昏', '夜生白露', '曲度紫鸳', '日落红尘', '未竟'] |
利用python拼接文件得到zip文件,解压得到两个加密的zip文件
其中一个压缩包中有很多大小相等的文本文件,显然采用CRC32
爆破
Github
找到CRC32
爆破的项目AabyssZG/CRC32-Tools: Easy CRC32 Tools,so easy!!!,git clone一下
尝试用这个解密根器
压缩包,结果死活不行,卡了半天,结果这个密码是未竟
的压缩包密码😒
是自己太蠢了,回头一想这几个文本文件也就4字节,一般也没啥有用的信息
得到一张金箍棒.png
图片和一个紧箍咒
未知文件,仔细观察图片文件发现怎么布满了彩点,图片大概率隐藏了某些信息
我发现我眼镜拿掉站远点看隐隐约约能发现图片中间有一行字🤣
虽然不知道是啥隐写方法,看了其他师傅的WP得知是等距像素隐写
,每个像素间隔10像素,将这些彩色的像素拼起来
1 | from PIL import Image |
得到VeraCrypt
的密码为jinggubang
安装下VeraCrypt
,打开后加载另一个紧箍咒
未知文件,这里不仅要输入上面的密码还要将金箍棒.png
作为密钥文件才能成功挂载,踩坑了好久
最终得到DASCTF{T1m3_t0_F4Ce_De5t1nY}
非黑即白
拿到附件用file检查一下,没发现什么东西,利用010Editor
打开文件看一下,发现是个反的GIF
文件
利用CyberChef
反转一下,下载得到GIF
文件
发现是一张不断闪烁黑白的动图,频率还不规律
尝试利用convert
分离下GIF
动图发现有1536张,我勒个豆
这肯定需要脚本进行批量操作了
1 | from PIL import Image |
发现可以利用CyberChef
将得到的二进制文本转为ZIP
显然压缩包是加密的,这样就需要另寻方法找到压缩包的密码了
查看压缩包信息无果后回头检查GIF
文件,发现在CTF-Wiki中有一个关于GIF间隔隐藏信息的内容
尝试一下,发现果然有,前15张图片的间隔时间都不同
1 | ❯ identify -format "%s %T \n" MISC附件/download.gif |
identify
参数参考:ImageMagick:格式化和打印图像属性 — ImageMagick: Format and Print Image Properties
得到密码解压压缩包即可拿到flag,得到DASCTF{H3r3_1s_C0L0rful_W0rld}
数据安全
datasecurity_classifyl
现在有一份未归档的数据文件,里面有〖姓名、身份证号、手机号〗三种类型的数据,每一行一个数据值。请你对其进行数据分析并分类,类别有〖姓名、身份证号、手机号〗这三种类型。将其归档到 csv 文件中(文件列名为 “类型,数据值”,文件编码为 utf-8),最终将该文件上传至该题的校验平台(在该校验平台里可以下载示例文件 example.csv, 可作为格式参考),校验达标即可拿到 flag 。
附件是个csv文件,利用python
对着数据校验规范进行编写即可
1 | from string import ascii_letters |
将result.csv
,上传即可获得flag
datasecurity_classify2
现有一个流量文件,需要作为数据分析人员的你对该流量文件进行分析,并进行数据识别与分类。请你参考附件中《个人信息数据规范文档.pdf》中“数据上传规范”说明的要求识别出 身份证号(idcard)、手机号(phone)、IP地址 (ip)这三类敏感数据,并对其进行数据分类。最终将进行了数据识别与分类后的内容保存到 csv 文件中(文件编码 utf-8,并将该文件上传至该题的校验平台(在该校验平台里可以下载该题示例文件 example.csv, 可作为该题的格式参考),校验达标即可拿到 flag。
附件解压有个流量包,大多都说HTTP
流量,跟踪流,详细看看,发现每个流都有一大段话,每段话之间藏了idcard
phone
ip
等信息
可以利用tshark
命令导出data
的十六进制文件
1 | ❯ tshark -r data.pcapng -T fields -Y "http.request.method==POST" -e data >data.txt |
-r data.pcapng
:读取名为data.pcapng
的数据包捕获文件。-T fields
:指定输出格式为字段值,这些字段值由-e
选项指定。-Y "http.request.method==POST"
:使用显示过滤器来只显示 HTTP 请求方法为 POST 的数据包。-e data
:指定要显示的字段是data
字段>
是重定向操作符,它会将命令的输出重定向到指定的文件中。如果文件已经存在,它会被覆盖;如果文件不存在,它会被创建。data.txt
和data.dat
是你保存输出的文件名,你可以根据需要更改这些文件名。
再根据数据规范文档,利用python筛选
1 |
|
将csv
文件上传即可获得flag