第十六届蓝桥杯大赛全国总决赛网络安全赛道 2025

第十六届蓝桥杯大赛全国总决赛网络安全赛道 2025
Aristore数据分析
server_logs
Challenge
某服务器在 2023-06-15 02:00-04:00 期间被入侵,请分析日志并回答:
- 攻击者使用的 SSH 用户名和 IP
- 植入的恶意服务名称
- 泄露机密文件时使用的 DNS 域名
提交形式:flag
Solution
/var/log/auth.log
的第 201 行找到攻击者使用的 SSH 用户名和 IP 分别是 attacker
和 192.168.42.77
1 | Jun 15 02:30:15 server sshd[5678]: Accepted password for attacker from 192.168.42.77 port 1337 |
/var/log/syslog
的第 501-502 行找到植入的恶意服务名称是 hidden_backdoor
1 | Jun 15 02:35:15 server systemd[1]: Started hidden_backdoor.service |
/var/log/dnsmasq.log
的第 601-604 行找到泄露机密文件时使用的 DNS 域名为 data.leak.ev
1 | Jun 15 02:40:15 dnsmasq[123]: query[A] CiAgICByb290Oio6MTk0Nzk6MDo5OTk5OTo3Ojo6.data.leak.ev from 192.168.42.77 |
拼起来得到 flag
1 | flag{attacker_192.168.42.77_hidden_backdoor_data.leak.ev} |
flowzip2 [复现]
Challenge
There are many encrypted zip files.
Solution
从流量包导出 200 个加密方式为 AES 的.zip
压缩包
在压缩包的备注发现提示 \d{3}
,推测密码是三位数的数字,用 ARCHPR 爆一下发现还真是
写脚本尝试从 000 到 999 的三位数字密码来暴力破解并解压指定目录下名为 000.zip 至 199.zip 的加密压缩包
1 | # -*- coding: utf-8 -*- |
最后在 138.zip
(解压密码是 853
)中的 dcsxr.txt
找到 flag
1 | flag{5f5491b6-fddf-4be8-ab44-5a18831cc45b} |
密码破解
xxtea
Challenge
It’s getting hard to even copy the data this time.
Solution
没啥好说的,照猫画虎就是了 From Hexdump, XXTEA Decrypt - CyberChef
1 | 00000000 9e 45 02 82 ea 25 d2 62 0d 06 e7 b4 5f dc 62 bd |.E...%.b...._.b.| |
1 | flag{4eb88a16-be48-4de2-ab2a-ed09a09ed386} |
fastcoll
Challenge
这是一个 MD5 碰撞挑战:你能找到两个不同文件,但却拥有相同的 MD5 值吗?
Solution
题目要求有相同前缀 gamelab
,因此先在当前目录下新建内容为 gamelab
的文件 prefix.txt
然后运行得到两个文件
1 | fastcoll_v1.0.0.5.exe -p prefix -o msg1.bin msg2.bin |
用厨子分别编码一下然后交上去就行
1 | Z2FtZWxhYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgJW38EhH3hRbFIaBQ1pJrGjBHm7YrS5TlmOI0uqIkmIeLjwF5kFHpLMMBS9qHZu8CskXE6WmVGDv5KV/BJywYUt9xfoI2x/8k8ldPje4Yyx6N3WzwZgr8tsyDXKmCoxtcr9AOvCI4e+v6BkkqwGwu2OQlPh8TpgdH0Mq0Cic8m |
1 | Z2FtZWxhYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgJW38EhH3hRbFIaBQ1pJrGjBFm7YrS5TlmOI0uqIkmIeLjwF5kFHpLMMBS9iHau8CskXE6WmVGDv5K1/BJywYUt9xfoI2x/8k8ldPje4Yyx6N32zwZgr8tsyDXKmCoxtcr9AOvCI4e+v6BkkowGwu2OQlPh8TpgdH0Mi0Cic8m |
逆向分析
encodefile [复现]
Challenge
分析一个用于加密明文的可执行程序,通过识别其加密逻辑成功解密生成的密文文件,恢复出原始数据内容。
Solution
这个程序的核心功能是读取 flag.txt
,使用 RC4 加密算法对其内容进行加密,然后将加密后的结果写入一个名为 enc.dat
的文件
加密所使用的密钥是硬编码在程序中的字符串 key2025lqb
找到主函数 sub_40487D
并分析
1 | __int64 sub_40487D() |
分析加密函数 sub_404605
1 | unsigned __int64 __fastcall sub_404605(_QWORD *a1, __int64 a2) |
发现这是标准的 RC4,密钥是硬编码在主函数中的 key2025lqb
,用厨子解就行 RC4 - CyberChef
1 | flag{db6007d2-9b1e-2f98-cef3-6595b63763dd} |
rand_pyc
Challenge
对由 Python 打包生成的 exe 文件进行逆向处理,提取并还原出其核心源码,以便进一步分析程序逻辑并获得正确的输入。
Solution
解包反编译拿到代码
1 | # Source Generated with Decompyle++ |
程序将输入的内容 base64 编码在尾部添加字符串_easyctf
,然后分别将这些字符作为伪随机数的种子后生成一个数
由于种子是知道的因此这些随机数也是知道的,用 base64 的表制作一个对应的伪随机数的表,然后查表还原出密文,最后解码 base64 即可
1 | import random |
1 | flag{30de99f4-50d2-9f8f-2868-dcfa9d81483c} |