第八届浙江省大学生网络与信息安全竞赛 初赛 红头文件之谜

Realknow Lv2

红头文件之谜

一份即将发布的战略规划(红头文件)疑似被境外APT组织窃取,调查人员在对方的服务器上找到了一个被破坏的WPS文档碎片以及零散的系统日志和流量,你能发现其中隐藏的flag吗?


下载得到一个QAQ.wps,一个system_log.hex和一个1.zip。

其中1.zip是加密的。看到wps,我蠢蠢地就去虚拟机上下载了wps,以为能够用wps打开。正所谓一步错,步步错,在第一步上翻车,我也只好去看wp了。

好吧,原来是把这个.wps文件转换为压缩包。众所周知,docx文件的本质就是压缩包,那么,.wps文件应该也是吧。使用010Editor打开,发现是一个缺少了文件头的zip:

image-20251119185041916

那还说啥了,直接补上50 4B 03 04就得了。不过我对于在010Editor中插入字节有点疑问。为啥只能一个字节一个字节的插入?是我打开方式不对吗?

image-20251119185636940

插入,并重命名为.zip。

image-20251119185931130

打开可以发现里面有一个app.xml,用记事本打开。

image-20251119190137717

在这里又猪脑过载了。看到XOR_key,但是不知道是啥跟啥XOR??我还以为是Adm1n和2025异或💦

是原文和XOR_key异或,得到system_log.hex啦!根据异或的可逆性,只要再把system_log.hex和XOR_key异或就能得到原文了。

这里使用cyberchef内置的XOR就可以了。首先拉一个from HEX的recipe,把hex转化为binary,这样才能异或嘛!但是为啥cyberchef显示的是utf-8字符?因为utf-8才可能是“人类的语言”啊,相当于cyberchef自动把转化得到的binary再次转为utf-8显示了。

然后再拉一个XOR的recipe。

image-20251119190952985

这样我们就解密得到了看得懂的system log。从中可以看到一串base64的zip密码,对这个密码使用from base64 recipe即可。

image-20251119191149152

得到zip密码:eXywHM0F4YypMhl0。打开1.zip,可以获得一个流量包。乍一看好像里面的流量都差不多。看看详细信息,发现似乎有许多“噪音”–“noise”。于是我就一个一个详细信息地看过去,直到看到了这一条……

停停停,这样有点麻烦了。可以点击info进行排序,你就会发现突破口就是唯一的那个POST流量。

image-20251119192003045

挖藕我看到了什么?是SM4加密哦。既然有了key和iv(初始化向量。但大概不是这里的3,我也不清楚,不需要这个似乎也能解密),那再把这个任务交给cyberchef就行了。

复制这些内容也是一个小问题。怎么做呢?右键选中左下框里你想复制的内容,选择显示分组字节,然后在弹出的窗口中记得选择显示为UTF-8,这样就方便复制了😋

image-20251119192450049

然后就是cyberchef的工作了。但是需要注意,我们的密文X-Blob好像有点特殊?有“/”“+”,这不是base64编码吗?所以在使用SM4 Decrypted之前,不要忘了先使用from base64哦!

这样,flag就出来啦!

  • Title: 第八届浙江省大学生网络与信息安全竞赛 初赛 红头文件之谜
  • Author: Realknow
  • Created at : 2025-11-19 00:00:00
  • Updated at : 2026-02-12 16:16:48
  • Link: https://realknowtech.github.io/2025/11/19/第八届浙江省大学生网络与信息安全竞赛-初赛-红头文件之谜/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
第八届浙江省大学生网络与信息安全竞赛 初赛 红头文件之谜