202509-恒泽CTF安全测试题WriteUP

题目详解

分数区间
202509-恒泽CTF安全测试题WriteUP
题型分布
202509-恒泽CTF安全测试题WriteUP
解题次数
202509-恒泽CTF安全测试题WriteUP

模块1:theory(理论)

1.以下哪项是信息安全的三大核心目标(CIA三要素)?

  • A. 保密性、完整性、可用性

  • B. 机密性、真实性、可审计性

  • C. 可控性、可靠性、可追溯性

  • D. 保密性、可扩展性、合规性

答案:A

解析:信息安全的核心目标是CIA三要素:

保密性(Confidentiality):确保信息不被未授权访问。 完整性(Integrity):确保信息在存储和传输过程中不被篡改。 可用性(Availability):确保授权用户在需要时可以访问信息和资源。 其他选项中的“真实性”“可审计性”等是扩展目标,但CIA是基础。

2.在信息安全风险管理中,风险 = ?

  • A. 威胁 × 脆弱性 × 影响

  • B. 威胁 × 资产价值 × 控制措施

  • C. 资产 × 威胁 × 脆弱性

  • D. 损失 × 发生概率

答案:D

解析:风险的基本计算公式为:风险 = 事件发生的可能性 × 事件发生后的影响(损失) 虽然威胁、脆弱性、资产价值是影响风险的因素,但标准定义中风险是“潜在损失的期望值”,即损失乘以概率。选项A是定性评估中常用的简化模型,但D更符合标准定义。

3.以下哪项属于“预防性控制”?

  • A. 日志审计

  • B. 入侵检测系统(IDS)

  • C. 防火墙

  • D. 数据备份

答案:C

解析:

  • 预防性控制:旨在防止安全事件发生,如防火墙、访问控制、加密。

  • 检测性控制:用于发现已发生的事件,如IDS、日志审计。

  • 纠正性控制:用于恢复,如数据备份、灾难恢复。 防火墙通过规则阻止非法访问,属于典型的预防性控制。

4.在风险评估中,“残余风险”是指:

  • A. 未被识别的风险

  • B. 实施安全控制后仍存在的风险

  • C. 被完全消除的风险

  • D. 风险评估过程中遗漏的风险

答案:B

解析:残余风险是指在实施了安全控制措施后,仍然存在的风险。组织需要评估残余风险是否在可接受范围内,若不可接受,则需采取进一步措施。

5.计算机信息计量单位中的K代表

  • A. 102

  • B. 210

  • C. 103

  • D. 28

答案:B

解析:

  • KKilo 的缩写,在计算机科学中,由于计算机使用二进制系统,1K 等于 2 的 10 次方,即 1024

  • 它常用于表示数据存储容量或内存大小,例如:

    • 1 KB (千字节) = 1024 字节 (Byte)

    • 1 Kbps (千比特每秒) = 1024 比特每秒

6.组成计算机的CPU的两大部件是

  • A.运算器和控制器

  • B. 控制器和寄存器

  • C.运算器和内存

  • D. 控制器和内存

答案:A

解析:

  • 运算器 (ALU):负责执行所有的算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、比较)。

  • 控制器 (CU):负责从内存中取出指令、解码指令,并协调和控制计算机其他部件(如运算器、内存、输入输出设备)来执行这些指令。

7.Windows的目录结构采用的是

  • A.树形结构

  • B.线形结构

  • C.层次结构

  • D.网状结构

答案:A

解析:

  1. 根目录为起点:整个文件系统从一个或多个根目录开始(例如 C:, D:),每个根目录代表一个逻辑驱动器。

  2. 分支与子目录:在根目录下可以创建多个文件夹(即目录),每个文件夹下又可以继续创建子文件夹,形成分支。

  3. 父子关系:目录之间存在明确的父子层级关系。一个父目录可以包含多个子目录和文件,而一个子目录只能有一个直接的父目录。

  4. 路径表示:通过路径(Path)来定位文件或文件夹。路径由一系列用反斜杠 分隔的目录名组成,从根目录开始直到目标文件或文件夹。例如:C:UsersUsernameDocumentsfile.txt

  5. 唯一路径:树形结构确保了每个文件或文件夹都有一个唯一的路径,便于管理和查找。

这种结构类似于一棵倒置的树,根目录是树根,各级文件夹是树枝,文件则是树叶,因此被称为“树形结构”或“目录树”。

8.操作系统按其功能关系分为系统层、管理层和( )三个层次。

  • A.数据层

  • B.逻辑层

  • C.用户层

  • D.应用层

答案:D

解析:

  • 系统层:也称为内核层,是操作系统最核心的部分,直接管理硬件资源,提供最基本的系统调用和中断处理。

  • 管理层:负责对系统的各种资源进行管理和调度,如处理器管理(进程管理)、存储管理、文件管理、设备管理等。

  • 应用层:为用户提供操作界面和应用程序接口(API),使用户和应用程序能够方便地使用系统资源。这一层包括命令解释器(如命令提示符、PowerShell)、图形用户界面(GUI)以及各种系统工具和实用程序。

9.组成计算机的CPU的两大部件是

  • A.运算器和控制器

  • B. 控制器和寄存器

  • C.运算器和内存

  • D. 控制器和内存

答案:A

解析:

  • 运算器 (ALU):负责执行所有的算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、比较)。

  • 控制器 (CU):负责从内存中取出指令、解码指令,并协调和控制计算机其他部件(如运算器、内存、输入输出设备)来执行这些指令。

10.微型计算机的内存容量主要指( )的容量。

  • A. RAM

  • B. ROM

  • C. CMOS

  • D. Cache

答案:A

解析:

  • RAM (Random Access Memory),即随机存取存储器,也叫主存运行内存。它是计算机中用于临时存储正在运行的程序和数据的部件。当计算机运行程序时,会先将程序和所需数据从硬盘等外部存储设备加载到 RAM 中,CPU 再直接从 RAM 中快速读取和处理这些信息。

11.十进制数27对应的二进制数为

A.1011

B.1100

C.10111

D.11011

答案:D

解析:转换方法(除2取余法):

  1. 27 ÷ 2 = 13 余 1

  2. 13 ÷ 2 = 6 余 1

  3. 6 ÷ 2 = 3 余 0

  4. 3 ÷ 2 = 1 余 1

  5. 1 ÷ 2 = 0 余 1

将余数从下往上(从最后一个到第一个)倒序排列:11011

所以,(27)₁₀ = (11011)₂。

12.将回收站中的文件还原时,被还原的文件将回到(  )。

A.桌面上

B.“我的文档”中

C.内存中

D.被删除的位置

答案:D

解析:

  • 当你删除一个文件或文件夹时,它并不会立即从硬盘上消失,而是被移动到了“回收站”这个特殊的系统文件夹中,同时系统会记录下它原来的位置

  • 当你选择“还原”回收站中的某个文件时,操作系统会根据这个记录,将文件从回收站移回其原始的文件夹路径中。

13.根据《网络安全法》,网络运营者应当采取哪些措施保障网络安全?(多选)

  • A. 制定内部安全管理制度和操作规程

  • B. 采取防范计算机病毒和网络攻击的技术措施

  • C. 记录并保存网络日志不少于六个月

  • D. 定期开展网络安全认证、检测和风险评估

答案:A、B、C、D

解析:《中华人民共和国网络安全法》第二十一条明确规定了网络运营者的安全保护义务,包括制度建设、技术防护、日志留存(≥6个月)、安全检测评估等,属于强制性要求。

模块2:MISC(杂项)

14.神秘的文本

  • 小明收到了一段看似乱码的字符串,他记得朋友说“一层层剥开我的心”。你能帮他解开这段信息吗?

  • Q1RGe0Jhc2U2NElzRXNzZW50aWFsfQ==

考点:

  • Base64 编码与解码

  • 基础编码转换

答案:CTF{Base64IsEssential}

解析:

  1. 使用 Base64 解码工具(如 CyberChef、在线解码网站或 Python 的 base64 模块)解码给定的字符串。解码后得到 CTF{Base64IsEssential}

  2. 这已经是 flag,无需再次解码(“套娃”只有一层)。

15.MISC2

  • 目的是介绍 Misc 方向中与图片相关的常见出题点;

  • 题目按照知识点分类,并尽量保证难度为入门水平;

  • 大部分题目仅涉及单一知识点,但可能有多种解法;

  • 找到flag并不困难,关键是了解每一题背后的原理;

  • 藏在哪?为什么可以这样藏?请多考虑这两个问题;

  • 希望能对刚接触 Misc 方向的朋友有所帮助。

考点:文件编码

答案:ctfshow{6f66202f21ad22a2a19520cdd3f69e7b}

解析:解压之后发现是TXT文件,表头有png提示,202509-恒泽CTF安全测试题WriteUP

把文件类型改为.jpg,ctfshow{6f66202f21ad22a2a19520cdd3f69e7b}

16.有趣的表情包

有趣的表情包

考点:

答案:flag{3XiF_iNf0rM@ti0n}

解析:

1.将下载得到的压缩包解压可得到一张jpg图片

202509-恒泽CTF安全测试题WriteUP

2.右键图片在属性中的详细信息可看见照相机型号,得到一串字符串

202509-恒泽CTF安全测试题WriteUP

3.在winhex中打开图片,下拉到底部,可发现一个flag.txt

202509-恒泽CTF安全测试题WriteUP

4.随后在kali中使用foremost工具进行分离,得到一个压缩包

202509-恒泽CTF安全测试题WriteUP

202509-恒泽CTF安全测试题WriteUP

 

5.发现此压缩包需要密码,将前面得到的照相机型号字符串进行解密得到密码sdnisc_2018

202509-恒泽CTF安全测试题WriteUP

6.随后可得flag{3XiF_iNf0rM@ti0n}

202509-恒泽CTF安全测试题WriteUP

 

17.时间的秘密(时间侧信道攻击)

一个简单的登录页面,密码是 6 位纯数字。但每次输入错误,服务器都会告诉你“密码错误”,并且响应时间似乎和密码的正确性有关… 你能利用这一点破解密码吗?

Hint(提示):

  • 响应时间越长,说明前面匹配正确的位数越多。

  • 单次测量可能不准,考虑多次测量取平均。

  • 从第一位开始,逐位爆破。

考点:

  • 时间侧信道攻击 (Timing Attack)

  • 编程自动化(Python requests)

  • 网络延迟处理与平均值计算

答案:CTF{TimeIsTheKey_2025}

解析:

  1. 分析提供的 login.py 代码,

    import time from flask import Flask, request, render_template  app = Flask(__name__) CORRECT_PASSWORD = "135790"  # 真实密码,不会在代码中明示  @app.route('/', methods=['GET', 'POST']) def login():     if request.method == 'POST':         user_input = request.form.get('password')         # 经典的时间侧信道漏洞:逐字符比较,匹配则延迟         if len(user_input) != len(CORRECT_PASSWORD):             return "密码长度错误", 400         for i in range(len(user_input)):             if user_input[i] != CORRECT_PASSWORD[i]:                 return "密码错误", 400             time.sleep(0.1)  # 每匹配一位,延迟 0.1 秒         return "Login Success! Flag is CTF{TimeIsTheKey_2025}", 200     return render_template_string('''         <form method="post">             Password: <input type="text" name="password"><br>             <input type="submit" value="Login">         </form>     ''')  if __name__ == '__main__':     app.run(host='0.0.0.0', port=80)

    发现 for 循环中,每成功匹配一位密码,就会 sleep(0.1) 秒。

  2. 编写 Python 脚本,对每一位密码(0-9)进行测试。

  3. 对每个候选数字,发送多次请求(例如 3-5 次),测量平均响应时间。

  4. 响应时间最长的那个数字,极大概率就是该位的正确密码(因为它触发了更多的 sleep)。

  5. 依次确定每一位,最终得到完整密码 135790

  6. 使用正确密码登录,获取 flag。

18.流量分析1

There are many zip files.

考点:

答案:flag{c6db63e6-6459-4e75-bb37-3aec5d2b947b}

解析:

法一:
1. 在流量包中对http进行过滤,随后全局搜索flag,即可得到flag

202509-恒泽CTF安全测试题WriteUP

法二:
1. 对流量包中的http导出,可发现046.zip大小与其他文件不一致

202509-恒泽CTF安全测试题WriteUP

202509-恒泽CTF安全测试题WriteUP

2. 导出后对其进行解压,可得flag{c6db63e6-6459-4e75-bb37-3aec5d2b947b}

202509-恒泽CTF安全测试题WriteUP

 

模块3:Crypto(密码学)

19.古典密码的问候

  • 欢迎来到密码学的世界!在开始之前,先来破译一段简单的古典密码吧。

  • 密文:Wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj.

考点:

  • 古典密码(凯撒密码)

  • 密码分析基础

答案:flag{the_quick_brown_fox_jumps_over_the_lazy_dog}

解析:

  1. 观察密文,发现其由英文字母组成,且有空格分隔,符合英文句子的特征。

  2. 提示“凯撒一下?”明确指向凯撒密码(Caesar Cipher)。

  3. 凯撒密码是通过将字母表中的每个字母向前或向后移动固定位数(偏移量)来加密的。

  4. 最简单的破解方法是暴力枚举所有可能的偏移量(0-25)。

  5. 尝试偏移量为3时,Wkh -> Thetxlfn -> quickeurzq -> brownlra -> fox。这已经形成了有意义的英文单词 “The quick brown fox”。

  6. 继续解密整个句子,得到明文。

    202509-恒泽CTF安全测试题WriteUP

20.Caesar’s Echo (凯撒的回声)

  • 古老的凯撒大帝留下了一条加密信息,据说其中隐藏着一个简单的秘密。你能破译它吗?

  • 密文: Uryyb, Jbeyq! V’z n pvcuregrkg gung unf orra rapbqrq jvgu n fnsr nern.

考点:

答案:flag{hello_world}

解析:

21.RSA 的共模攻击

  • 我们发现了两份使用相同RSA公钥模数 n 但不同公钥指数 e1 和 e2 加密的密文。更糟糕的是,这两个指数 e1 和 e2 是互质的!

  • 已知信息:

  • 公钥模数 n: 1434890719

  • 公钥指数 e1: 17

  • 公钥指数 e2: 23

  • 密文 c1 (使用 e1 加密): 123456789

  • 密文 c2 (使用 e2 加密): 987654321

  • 任务:恢复出原始的明文消息 m(即Flag)。

考点:

  • RSA 加密算法

  • 数论基础(最大公约数、扩展欧几里得算法)

  • 共模攻击(Common Modulus Attack)

  • 费马小定理/欧拉定理

答案:flag{r5a_c0mm0n_m0duluz_4tt4ck} (实际值由计算出的 m 决定,此处为示例)

解析:

  1. 理解共模攻击的前提:相同的 n,不同的互质的 e1e2,加密了相同的明文 m

  2. 根据RSA,有:

    • c1 ≡ m^e1 mod n

    • c2 ≡ m^e2 mod n

  3. 因为 e1e2 互质,根据贝祖定理,存在整数 st 使得 s*e1 + t*e2 = 1

  4. 使用扩展欧几里得算法求解 st

  5. 利用这个等式,可以恢复明文:

    • c1^s * c2^t ≡ (m^e1)^s * (m^e2)^t ≡ m^(s*e1 + t*e2) ≡ m^1 ≡ m mod n

  6. 计算 m = (c1^s * c2^t) mod n 即可得到明文。

    参考代码:

    from math import gcd from Crypto.Util.number import inverse  def extended_gcd(a, b):     """扩展欧几里得算法"""     if a == 0:         return b, 0, 1     gcd, x1, y1 = extended_gcd(b % a, a)     x = y1 - (b // a) * x1     y = x1     return gcd, x, y  # 已知信息 n = 1434890719 e1 = 17 e2 = 23 c1 = 123456789 c2 = 987654321  # 检查 e1 和 e2 是否互质 assert gcd(e1, e2) == 1, "e1 and e2 must be coprime"  # 使用扩展欧几里得算法求解 s 和 t,使得 s*e1 + t*e2 = 1 gcd_val, s, t = extended_gcd(e1, e2) assert gcd_val == 1 and s*e1 + t*e2 == 1, "Failed to find Bezout coefficients"  # 注意:s 或 t 可能为负数,需要处理模逆 if s < 0:     # c1^s mod n = (c1^-1)^(-s) mod n     c1_inv = inverse(c1, n)     part1 = pow(c1_inv, -s, n) else:     part1 = pow(c1, s, n)  if t < 0:     c2_inv = inverse(c2, n)     part2 = pow(c2_inv, -t, n) else:     part2 = pow(c2, t, n)  # 计算明文 m m = (part1 * part2) % n print(f"Recovered plaintext m: {m}")  # 假设 m 是一个整数,转换为字节得到Flag flag = m.to_bytes((m.bit_length() + 7) // 8, 'big').decode() print(f"Flag: {flag}")

设计思路:此题考察对RSA底层数学原理的深入理解。共模攻击是一个经典的理论攻击,要求选手熟练掌握数论知识和扩展欧几里得算法。题目设计了一个典型的攻击场景,即相同的模数被用于多个公钥,这是实际部署中应避免的严重错误。

21.信息泄露的艺术

  • 小明搭建了一个测试网站,他觉得非常安全,因为他没有做任何登录功能。你能从这个页面中找到管理员留下的“秘密”吗?

  • 目标:找到 flag 并提交。

考点:

  • .phpinfo() 信息泄露

  • 敏感文件暴露

  • 基础路径遍历意识

答案:flag{php_info_leak_is_dangerous}

解析:

  1. 用户访问 / 只看到一个欢迎页。

    202509-恒泽CTF安全测试题WriteUP

  2. 尝试常见敏感路径如 /flag.php 或使用 dirsearch 扫描。

  3. 访问 /flag.php 后,页面执行 phpinfo(),在大量信息中搜索关键词 flag

  4. 在 PHP 配置或变量区域发现 $flag 的值(实际显示内容中会直接输出)。

  5. 得到 flag:flag{php_info_leak_is_dangerous}

原创文章,作者:修行,如若转载,请注明作者昵称:修行及出处:https://www.xiuxingstudio.com/computer/information_security/4846.html

(0)
上一篇 2025年2月15日 15:21
下一篇 2021年2月13日 16:29

相关推荐

发表回复

登录后才能评论
在线客服 QQ交流群
返回顶部