2025年江西省“天工杯”数据安全管理职业技能竞赛线上赛题解
数据安全题
1. 解压的密码
题目描述
小王需要将一份秘密的文件发给小李,为了确保文件的安全,他使用了密码对文件进行加密。每次加密的密码都会进行变更,密码通过一个双方约定好的方法进行了编码。已知其中一个解压密码编码后为 N0MydWZ1d2lURU5CdUdWVUhvbTJTZQ==,请分析出原始的解压密码并进行提交。
解题步骤
- 编码字符串为 Base64 编码,解码后得到原始密码。
- 使用 Base64 解码:
import base64 encoded = "N0MydWZ1d2lURU5CdUdWVUhvbTJTZQ==" decoded = base64.b64decode(encoded).decode('utf-8') print(decoded) - 解码结果即为原始解压密码。
答案
原始解压密码为解码后的字符串。
2. 解压的密码2
题目描述
提供了一段 Python 代码(strangersa.py),用于生成加密参数。已知输出参数 c(密文)、e(公钥)、n(模数)和 hint(提示),要求恢复原始密码。
解题步骤
-
分析代码逻辑:
m是原始密码的整数形式。p是 1024 位素数。q是通过q = p * 7 + i生成的素数(i从小递增直到q为素数)。r是另一个 1024 位素数。n = p * q * r。e = 65537。c = pow(m, e, n)。hint = pow(p, 3, n)。
-
利用
hint恢复p:- 由于
hint = p^3 mod n,且p^3 < n(因为p是 1024 位,n是 3072 位),所以p = hint^(1/3)(整数立方根)。
- 由于
-
恢复
q:- 计算
n_p = n // p。 - 遍历
i(从 1 开始),计算q_candidate = 7 * p + i,检查是否整除n_p。 - 找到
q后验证是否为素数。
- 计算
-
恢复
r:r = n // (p * q)。 -
计算私钥
d:phi = (p-1) * (q-1) * (r-1)。d = inverse(e, phi)。
-
解密:
m = pow(c, d, n),然后转换为字节串。
答案
原始密码为 f8be83156f83438cb172651ec3c5e168。
3. numberleak
题目描述
小明设计了一套基于多项式加密的系统,密钥是多项式的根。通过窃取的加密多项式,找出根并计算指定值以验证安全漏洞。连接服务器 nc 111.74.9.131 18060 进行交互。
解题步骤
-
解析多项式字符串,提取系数和模数
p。 -
根据查询要求(如
Vx + Vy + ...),计算函数值。 -
计算函数值公式:
- 设多项式为
f(x) = f0 * x^c + f1 * x^(c-1) + ... + fc。 - 计算
inv_f0 = pow(f0, p-2, p)(模逆元)。 - 对于每个
k(查询中的数字),计算j = c + 1 - k。 - 计算项
term = f[j] * inv_f0 % p,若j为奇数则取负。 - 累加所有项并取模
p。
- 设多项式为
-
将结果转换为十六进制(不带
0x)发送给服务器。
代码实现
见题目提供的 solved.py。
4. 数据安全4
题目描述
某公司客户联系表泄露,需通过 IM 截图工具的隐写功能还原截图来源。隐写机制包含截取者的姓名和工号,提交 md5(姓名:工号)。
解题步骤
- 分析截图文件的隐写数据(如 EXIF 信息、二进制隐写等)。
- 提取姓名和工号。
- 计算
md5(姓名:工号)。
答案
需根据实际隐写数据提取后计算。
5. 数据安全5
题目描述
实验室电脑被入侵,窃取了登录验证程序和流量包。分析登录程序和解密流量包,获取工作人员的验证 ID。
解题步骤
- 逆向登录程序,发现使用 SM4 算法和密钥。
- 从流量包中提取加密数据。
- 使用 SM4 解密得到验证 ID。
答案
验证 ID 需通过解密流量包获得。
数据分析题
题目一:Webshell 攻击分析
问题
- 攻击者最终使用的 Webshell 文件名是什么?
- Webshell 流量加密的密钥是什么?
- 攻击者窃取敏感文件所执行命令的 MD5 值是什么?
解题步骤
- 分析流量包,发现通过
shell.php写入混淆的 Webshell,文件名为en.php。 - 反混淆
en.php得到原始代码,密钥为aa90999ce3aa3fc8413a442d7c39ee04。 - 提取攻击者执行的命令(如
cat /etc/passwd),计算其 MD5 值。
答案
en.phpaa90999ce3aa3fc8413a442d7c39ee04- 执行命令的 MD5 值(需根据实际命令计算)。
题目二:Tomcat 暴力破解与数据库窃取
问题
- 攻击者对 Tomcat 管理后台暴力破解的失败尝试次数是多少?成功登录的口令是什么?
- 窃取的数据库用户口令是什么?
- 数据库中第三位用户的手机号是什么?
解题步骤
- 分析流量包:
- 过滤认证失败包(状态码 401),统计失败次数(82 次)。
- 成功登录包(状态码 302)的 Basic 认证解码得口令
1234567890。
- 分析数据库访问流量,提取查询语句或直接获取口令。
- 查询用户表,提取第三位用户的手机号。
答案
82:1234567890- 数据库口令(需根据流量分析)
- 第三位用户的手机号(需根据数据库内容)
总结
本题解涵盖了数据安全与数据分析的主要知识点,包括加密算法、多项式计算、流量分析和逆向工程。关键点包括 Base64 解码、RSA 参数恢复、多项式求值、Webshell 分析、暴力破解统计和数据库信息提取。实际解题需结合附件流量包和代码文件进行深入分析。