feat: add cybersecurity topic with 6 subtopics (204 questions)
Deploy Examination / deploy (push) Successful in 7s

New topic group: 网络安全专题 (cybersecurity)
Subtopics:
- web-security: Web 安全基础 (34 questions)
- crypto-basics: 密码学基础 (34 questions)
- buffer-overflow: 缓冲区溢出与漏洞利用 (34 questions)
- os-security: 操作系统安全 (34 questions)
- network-attack: 网络攻防 (34 questions)
- secure-coding: 安全编程实践 (34 questions)

Question types per subtopic:
- single_choice × 20
- true_false × 10
- short_answer × 3
- code_reading × 1

Difficulty range: 1-3 (基础)
This commit is contained in:
2026-09-17 13:33:04 +08:00
parent da9667c265
commit 70e368e235
31 changed files with 4516 additions and 1 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,28 @@
{
"slug": "network-attack",
"name": "网络攻防",
"description": "中间人攻击、ARP 欺骗、DNS 劫持、端口扫描",
"tags": [
"网络攻防",
"中间人攻击",
"arp欺骗",
"dns劫持",
"端口扫描"
],
"created": "2026-09-17",
"question_files": [
"code_reading.json",
"short_answer.json",
"single_choice.json",
"true_false.json"
],
"stats": {
"total": 34,
"by_type": {
"code_reading": 1,
"short_answer": 3,
"single_choice": 20,
"true_false": 10
}
}
}
@@ -0,0 +1,86 @@
{
"topic": "network-attack",
"type": "short_answer",
"schema_version": "1.0.0",
"generated": "2026-09-17T00:00:00+08:00",
"questions": [
{
"id": "sa-001",
"type": "short_answer",
"difficulty": 2,
"tags": [
"网络攻防",
"中间人攻击",
"arp欺骗"
],
"question": "请简要描述 ARP 欺骗(ARP Spoofing)攻击的原理,包括攻击者如何利用 ARP 协议的缺陷来实现中间人攻击。",
"answer": "ARP 协议在设计时缺乏身份验证机制,主机收到 ARP 应答报文后会无条件更新本地 ARP 缓存。攻击者利用这一缺陷,向目标主机发送伪造的 ARP 应答报文,将网关的 IP 地址映射为攻击者的 MAC 地址,同时向网关发送伪造的 ARP 应答,将目标主机的 IP 地址映射为攻击者的 MAC 地址。这样,目标主机与网关之间的通信流量都会经过攻击者的主机,攻击者即可截获、篡改或丢弃数据包,实现中间人攻击。",
"keywords": [
"ARP协议",
"缺乏身份验证",
"无条件更新",
"伪造ARP应答",
"MAC地址",
"ARP缓存",
"中间人"
],
"scoring_rubric": "答出ARP协议无身份验证机制(2分);答出伪造ARP应答报文更新ARP缓存的过程(3分);答出双向欺骗使流量经过攻击者实现中间人(3分);表述清晰、逻辑完整(2分)。满分10分。",
"explanation": "ARP 欺骗利用了 ARP 协议设计之初缺乏认证机制的缺陷。攻击者通过发送伪造的 ARP 应答报文,让目标主机和网关都将攻击者的 MAC 地址误认为对方的 MAC 地址,从而将双向流量引向攻击者,实现中间人攻击。回答时应涵盖协议缺陷、伪造报文过程和双向欺骗机制三个层面。",
"source": null,
"related": []
},
{
"id": "sa-002",
"type": "short_answer",
"difficulty": 2,
"tags": [
"网络攻防",
"DNS劫持"
],
"question": "什么是 DNS 劫持?请说明 DNS 劫持的常见实现方式,并列举至少两种防御措施。",
"answer": "DNS 劫持是指攻击者通过篡改 DNS 解析过程,将用户请求的域名解析到错误的 IP 地址,从而将用户引导至恶意网站。常见实现方式包括:(1) 本地 DNS 劫持——修改受害者主机的 hosts 文件或 DNS 配置,使其指向恶意 DNS 服务器;(2) 中间人 DNS 劫持——在网络传输过程中截获 DNS 查询请求并返回伪造的 DNS 响应;(3) 权威 DNS 篡改——入侵 DNS 服务器直接修改域名记录;(4) DNS 缓存投毒——向 DNS 缓存服务器注入伪造的 DNS 记录。防御措施包括:使用 DNS over HTTPS (DoH) 或 DNS over TLS (DoT) 加密 DNS 查询;部署 DNSSEC 对 DNS 响应进行数字签名验证;使用可信的公共 DNS 服务器(如 8.8.8.8、1.1.1.1);定期检查本地 DNS 配置和 hosts 文件。",
"keywords": [
"DNS解析",
"篡改",
"错误IP地址",
"hosts文件",
"DNS缓存投毒",
"DNSSEC",
"DoH",
"DoT",
"加密"
],
"scoring_rubric": "准确解释DNS劫持概念(2分);列举至少两种实现方式并简要说明(4分);列举至少两种有效的防御措施(3分);表述准确完整(1分)。满分10分。",
"explanation": "DNS 劫持通过篡改域名解析过程将用户引导至恶意网站。常见方式涵盖本地劫持(hosts文件/配置篡改)、传输层劫持(中间人DNS响应篡改)和服务端劫持(DNS服务器入侵/缓存投毒)。防御关键在于加密DNS查询(DoH/DoT)和签名验证(DNSSEC)。",
"source": null,
"related": []
},
{
"id": "sa-003",
"type": "short_answer",
"difficulty": 3,
"tags": [
"网络攻防",
"端口扫描",
"中间人攻击"
],
"question": "请比较 TCP SYN 扫描(半开放扫描)和 TCP Connect 扫描(全连接扫描)的区别,包括工作原理、隐蔽性和适用场景。",
"answer": "TCP Connect 扫描(全连接扫描)直接调用操作系统的 connect() 系统函数与目标端口完成完整的 TCP 三次握手。如果连接成功建立,说明端口开放;如果连接被拒绝(收到 RST),说明端口关闭。这种方式简单可靠,但会在目标系统日志中留下完整的连接记录,隐蔽性差。TCP SYN 扫描(半开放扫描)不完成完整的三次握手:扫描器向目标端口发送 SYN 包,如果收到 SYN/ACK 响应,说明端口开放,此时扫描器直接发送 RST 包断开连接,而不发送最终的 ACK;如果收到 RST 响应,说明端口关闭。由于连接从未完全建立,不会被大多数应用程序日志记录,隐蔽性较高。但 SYN 扫描通常需要原始套接字(raw socket)权限或管理员/root 权限。在适用场景方面,Connect 扫描适用于普通用户权限下对可靠性的要求较高的场景;SYN 扫描适用于渗透测试、红队演练等需要降低被发现概率的场景。",
"keywords": [
"SYN扫描",
"半开放",
"Connect扫描",
"全连接",
"三次握手",
"RST",
"隐蔽性",
"原始套接字",
"日志记录"
],
"scoring_rubric": "正确描述两种扫描的工作流程差异(4分);准确对比隐蔽性方面的区别及原因(3分);说明适用场景和权限要求(2分);表述条理清晰(1分)。满分10分。",
"explanation": "SYN 扫描与 Connect 扫描的核心差异在于是否完成三次握手。SYN 扫描在收到 SYN/ACK 后发送 RST 断开,连接未完全建立,不会记录到应用日志中,隐蔽性高但需 root 权限;Connect 扫描通过系统调用完成完整握手,简单可靠但留下完整日志。回答时应从工作原理、隐蔽性、权限要求和适用场景四个维度进行对比。",
"source": null,
"related": []
}
]
}
@@ -0,0 +1,409 @@
{
"topic": "network-attack",
"type": "single_choice",
"schema_version": "1.0.0",
"generated": "2026-09-17T00:00:00+08:00",
"questions": [
{
"id": "sc-001",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"中间人攻击"
],
"question": "中间人攻击(Man-in-the-Middle Attack)的核心原理是什么?",
"options": {
"A": "直接破解目标主机的密码",
"B": "在通信双方之间秘密拦截并可能篡改数据",
"C": "利用操作系统漏洞获取 root 权限",
"D": "通过大量请求使目标服务器过载"
},
"answer": "B",
"explanation": "中间人攻击的核心是攻击者将自己置于通信双方之间,能够拦截、读取甚至篡改双方传输的数据,而通信双方对此毫不知情。A 描述的是暴力破解攻击,C 描述的是提权攻击,D 描述的是拒绝服务(DDoS)攻击。",
"source": null,
"related": []
},
{
"id": "sc-002",
"type": "single_choice",
"difficulty": 1,
"tags": [
"网络攻防",
"arp欺骗"
],
"question": "ARP 协议工作在 OSI 模型的哪一层?",
"options": {
"A": "应用层",
"B": "传输层",
"C": "网络层",
"D": "数据链路层"
},
"answer": "C",
"explanation": "ARP(Address Resolution Protocol)协议用于将 IP 地址解析为 MAC 地址,工作在 OSI 模型的网络层(第三层)。虽然 ARP 的结果用于数据链路层的帧封装,但 ARP 协议本身在网络层定义和运作。",
"source": null,
"related": []
},
{
"id": "sc-003",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"arp欺骗"
],
"question": "ARP 欺骗攻击中,攻击者通常发送什么类型的 ARP 报文来污染目标主机的 ARP 缓存表?",
"options": {
"A": "ARP 请求报文,将自己的 MAC 地址映射为网关的 IP",
"B": "ARP 应答报文,将自己的 MAC 地址映射为网关的 IP",
"C": "RARP 请求报文,请求 IP 地址分配",
"D": "免费 ARP 报文,仅用于检测 IP 冲突"
},
"answer": "B",
"explanation": "在 ARP 欺骗中,攻击者主动发送伪造的 ARP 应答(Reply)报文,声称某个 IP 地址(如网关)对应的 MAC 地址是攻击者的 MAC 地址。目标主机收到后会更新 ARP 缓存表,将后续发往网关的流量发送给攻击者。A 虽然也可能涉及伪造,但 ARP 请求是广播形式,应答是更直接的欺骗手段;C 的 RARP 是逆向 ARP,与此无关;D 的免费 ARP 仅用于 IP 冲突检测,不能直接实现欺骗。",
"source": null,
"related": []
},
{
"id": "sc-004",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"DNS劫持"
],
"question": "DNS 劫持攻击的本质是什么?",
"options": {
"A": "使 DNS 服务器过载导致无法响应",
"B": "篡改 DNS 解析过程,使域名指向错误的 IP 地址",
"C": "加密 DNS 查询内容以防止被监听",
"D": "利用 DNS 协议进行数据外泄"
},
"answer": "B",
"explanation": "DNS 劫持的本质是攻击者通过篡改 DNS 解析过程(如修改本地 hosts 文件、劫持 DNS 服务器、篡改 DNS 响应报文等),将目标域名解析到攻击者控制的错误 IP 地址上,从而引导用户访问恶意网站。A 描述的是 DNS 洪泛攻击(DDoS 的一种),C 描述的是 DNSSEC 或 DoH 的防御功能,D 描述的是 DNS 隧道技术。",
"source": null,
"related": []
},
{
"id": "sc-005",
"type": "single_choice",
"difficulty": 1,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "TCP SYN 扫描又被称为「半开扫描」,原因是?",
"options": {
"A": "扫描只发送一次数据包",
"B": "扫描只完成 TCP 三次握手的前两步,不建立完整连接",
"C": "扫描只对一半的端口进行探测",
"D": "扫描速率只有全连接扫描的一半"
},
"answer": "B",
"explanation": "TCP SYN 扫描发送 SYN 包后,如果收到 SYN/ACK 响应,说明端口开放,但扫描器发送 RST 包而非最后的 ACK 包来中断连接,因此只完成了三次握手的前两步(SYN → SYN/ACK → RST),没有建立完整的 TCP 连接。这种方式比全连接扫描更隐蔽,且速度更快。",
"source": null,
"related": []
},
{
"id": "sc-006",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"中间人攻击"
],
"question": "以下哪种技术可以有效防御 HTTPS 环境下的中间人攻击?",
"options": {
"A": "使用静态 ARP 绑定",
"B": "启用 HTTPS 证书验证和证书固定(Certificate Pinning)",
"C": "关闭 ICMP 协议",
"D": "使用 UDP 协议替代 TCP"
},
"answer": "B",
"explanation": "HTTPS 通过 TLS/SSL 加密传输数据,结合证书验证可以确保通信对方的身份合法性。证书固定(Certificate Pinning)进一步限制只有特定证书才被信任,防止攻击者使用伪造证书进行中间人攻击。A 仅防御 ARP 欺骗型中间人攻击,不防 HTTPS 层面的攻击;C 关闭 ICMP 对防御中间人攻击无直接帮助;D 使用 UDP 不仅不能防御中间人攻击,还丢失了 TCP 的可靠性保障。",
"source": null,
"related": []
},
{
"id": "sc-007",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"arp欺骗"
],
"question": "在局域网中实施 ARP 欺骗后,攻击者通常还需要开启什么功能才能让目标主机正常上网而不察觉攻击?",
"options": {
"A": "IP 转发(IP Forwarding)",
"B": "NAT 地址转换",
"C": "DHCP 服务",
"D": "DNS 缓存服务"
},
"answer": "A",
"explanation": "攻击者通过 ARP 欺骗截获目标主机的流量后,需要开启 IP 转发功能(IP Forwarding),将截获的数据包正常转发给网关,再将网关的响应回传给目标主机。这样目标主机的网络通信不会中断,攻击者可以在中间透明地监听或篡改数据。如果不开 IP 转发,目标主机将无法上网,攻击很容易被发现。",
"source": null,
"related": []
},
{
"id": "sc-008",
"type": "single_choice",
"difficulty": 1,
"tags": [
"网络攻防",
"DNS劫持"
],
"question": "以下哪一项属于 DNS 劫持的常见实施方式?",
"options": {
"A": "修改目标主机的 hosts 文件",
"B": "向目标主机发送大量 ICMP 包",
"C": "利用 SQL 注入获取数据库信息",
"D": "通过钓鱼邮件获取用户密码"
},
"answer": "A",
"explanation": "修改 hosts 文件是一种典型的 DNS 劫持方式。hosts 文件的优先级高于 DNS 服务器查询,攻击者在其中写入错误的域名-IP 映射后,目标主机访问该域名时会直接访问错误的 IP 地址。B 是 ICMP 洪泛攻击,C 是 Web 应用攻击,D 是社会工程学攻击,均不属于 DNS 劫持。",
"source": null,
"related": []
},
{
"id": "sc-009",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "Nmap 工具中,-sS 和 -sT 两种扫描方式的主要区别是什么?",
"options": {
"A": "-sS 扫描 UDP 端口,-sT 扫描 TCP 端口",
"B": "-sS 是半开扫描不建立完整连接,-sT 是全连接扫描",
"C": "-sS 扫描速度更慢,-sT 速度更快",
"D": "-sS 只能扫描本地端口,-sT 可以扫描远程端口"
},
"answer": "B",
"explanation": "Nmap 中 -sS 指定 SYN 扫描(半开扫描),发送 SYN 后根据响应判断端口状态,不完成三次握手,需要 root 权限但更隐蔽快速;-sT 指定 TCP Connect 扫描(全连接扫描),通过系统调用完成完整的三次握手,不需要 root 权限但更容易被日志记录。A 错误,两者都是 TCP 扫描;C 错误,-sS 通常更快;D 错误,两者都可以扫描远程端口。",
"source": null,
"related": []
},
{
"id": "sc-010",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"中间人攻击"
],
"question": "SSL Stripping 攻击的原理是?",
"options": {
"A": "暴力破解 SSL 证书的私钥",
"B": "降级 HTTPS 连接为 HTTP,使加密保护失效",
"C": "伪造 CA 机构签发虚假证书",
"D": "利用 SSL 协议漏洞直接解密通信内容"
},
"answer": "B",
"explanation": "SSL Stripping 是一种中间人攻击技术,攻击者在客户端和服务器之间拦截通信。当客户端请求 HTTPS 页面时,攻击者与服务器建立 HTTPS 连接,但以 HTTP 方式与客户端通信,从而「剥离」了 SSL/TLS 加密层。客户端的地址栏显示 HTTP 而非 HTTPS,数据以明文传输。该攻击由 Moxie Marlinspike 在 2009 年提出。",
"source": null,
"related": []
},
{
"id": "sc-011",
"type": "single_choice",
"difficulty": 3,
"tags": [
"网络攻防",
"arp欺骗"
],
"question": "要防御 ARP 欺骗攻击,以下哪种方案最为全面有效?",
"options": {
"A": "仅在客户端绑定静态 ARP 条目",
"B": "在网络设备上启用动态 ARP 检测(DAI),并结合 DHCP Snooping",
"C": "关闭所有主机的 ARP 协议",
"D": "将所有主机的 ARP 缓存超时时间设为 0"
},
"answer": "B",
"explanation": "动态 ARP 检测(Dynamic ARP Inspection, DAI)配合 DHCP Snooping 可以在网络交换机层面验证 ARP 报文的合法性,丢弃非法 ARP 报文,是目前最为全面有效的 ARP 欺骗防御方案。A 的静态绑定在大规模网络中难以维护,且无法防御网关侧的 ARP 欺骗;C 关闭 ARP 协议会导致局域网内无法正常通信;D 设超时为 0 会导致 ARP 请求泛滥且不能阻止攻击。",
"source": null,
"related": []
},
{
"id": "sc-012",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"DNS劫持"
],
"question": "DNSSEC(DNS Security Extensions)主要解决哪类 DNS 安全问题?",
"options": {
"A": "DNS 服务器遭受 DDoS 攻击",
"B": "DNS 响应被篡改或伪造",
"C": "DNS 查询内容被第三方窃听",
"D": "DNS 服务器配置错误"
},
"answer": "B",
"explanation": "DNSSEC 通过数字签名机制为 DNS 数据提供来源验证和数据完整性保护,确保 DNS 响应来自权威 DNS 服务器且未被篡改。它可以有效防止 DNS 缓存投毒等 DNS 欺骗攻击。A 需要 DDoS 防护方案,C 需要 DNS over HTTPS(DoH)或 DNS over TLS(DoT),D 需要配置审计工具。",
"source": null,
"related": []
},
{
"id": "sc-013",
"type": "single_choice",
"difficulty": 1,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "以下哪种端口扫描方式能够同时检测端口状态和操作系统类型?",
"options": {
"A": "PING 扫描",
"B": "TCP FIN 扫描",
"C": "Nmap 的操作系统指纹识别扫描(-O 参数)",
"D": "UDP 扫描"
},
"answer": "C",
"explanation": "Nmap 的操作系统指纹识别(-O)通过分析目标主机对各种探测包的响应特征(如 TCP 窗口大小、TTL 值、TCP 选项等)来推断操作系统类型,结合端口扫描功能可以同时获得端口状态和操作系统信息。A 的 PING 扫描仅检测主机是否在线;B 的 FIN 扫描仅判断端口状态;D 的 UDP 扫描仅探测 UDP 端口。",
"source": null,
"related": []
},
{
"id": "sc-014",
"type": "single_choice",
"difficulty": 3,
"tags": [
"网络攻防",
"中间人攻击"
],
"question": "ARP 欺骗与 DNS 劫持结合使用时,攻击者可以实现什么效果?",
"options": {
"A": "仅能窃听局域网内的通信内容",
"B": "将目标用户对特定域名的访问重定向到钓鱼网站,且难以被发现",
"C": "直接获取目标主机的管理员权限",
"D": "使目标主机完全断网"
},
"answer": "B",
"explanation": "ARP 欺骗将攻击者置于通信中间人位置,DNS 劫持则在 DNS 解析阶段将域名指向攻击者控制的 IP。两者结合后,攻击者可以先通过 ARP 欺骗截获流量,再篡改 DNS 响应,将用户对合法网站的访问重定向到精心制作的钓鱼网站。由于用户输入的域名无误,且钓鱼网站可以模仿真实界面,极难被发现。A 不够全面,C 与此类网络层攻击无关,D 是攻击失效而非攻击目的。",
"source": null,
"related": []
},
{
"id": "sc-015",
"type": "single_choice",
"difficulty": 1,
"tags": [
"网络攻防",
"arp欺骗"
],
"question": "ARP 协议的主要功能是?",
"options": {
"A": "将域名解析为 IP 地址",
"B": "将 IP 地址解析为 MAC 地址",
"C": "将 MAC 地址解析为 IP 地址",
"D": "分配 IP 地址给网络设备"
},
"answer": "B",
"explanation": "ARP(Address Resolution Protocol,地址解析协议)的核心功能是在已知目标 IP 地址的情况下,通过广播请求获取对应设备的 MAC 地址。A 是 DNS 的功能,C 是 RARP(逆向 ARP)的功能,D 是 DHCP 的功能。",
"source": null,
"related": []
},
{
"id": "sc-016",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "以下关于 UDP 端口扫描的描述,哪项是正确的?",
"options": {
"A": "UDP 扫描速度比 TCP SYN 扫描更快",
"B": "UDP 扫描通过发送 UDP 数据包,根据是否收到 ICMP 端口不可达消息判断端口状态",
"C": "UDP 扫描不需要特殊权限即可执行",
"D": "UDP 扫描的准确性比 TCP 扫描更高"
},
"answer": "B",
"explanation": "UDP 端口扫描的原理是向目标 UDP 端口发送 UDP 数据包,如果收到 ICMP Port Unreachable 响应则说明端口关闭,如果没有响应(或收到 UDP 应答)则端口可能开放。由于 UDP 是无连接协议,扫描效率较低且准确性不如 TCP 扫描(因为无响应可能是端口开放也可能是包被丢弃)。A 错误,UDP 扫描通常更慢;C 不完全准确,需要原始套接字权限;D 错误,UDP 扫描准确性通常更低。",
"source": null,
"related": []
},
{
"id": "sc-017",
"type": "single_choice",
"difficulty": 3,
"tags": [
"网络攻防",
"DNS劫持"
],
"question": "DNS 缓存投毒(DNS Cache Poisoning)攻击中,攻击者利用的是 DNS 协议的哪个缺陷?",
"options": {
"A": "DNS 查询使用明文传输,缺乏加密",
"B": "DNS 协议缺乏对响应报文的来源认证机制",
"C": "DNS 服务器没有访问控制功能",
"D": "DNS 协议不支持 IPv6 地址"
},
"answer": "B",
"explanation": "DNS 缓存投毒攻击利用的是传统 DNS 协议缺乏对响应报文来源的认证机制。DNS 使用 UDP 协议,且查询报文中的 Transaction ID 仅 16 位,攻击者可以通过预测或暴力猜测 Transaction ID,在合法响应到达之前向 DNS 缓存服务器注入伪造的 DNS 响应记录。DNSSEC 的引入正是为了解决这一问题,通过数字签名验证 DNS 响应的来源和完整性。",
"source": null,
"related": []
},
{
"id": "sc-018",
"type": "single_choice",
"difficulty": 2,
"tags": [
"网络攻防",
"中间人攻击"
],
"question": "以下哪种场景最容易遭受中间人攻击?",
"options": {
"A": "使用 VPN 连接的远程办公",
"B": "连接公共场合未加密的开放 Wi-Fi",
"C": "通过 4G/5G 蜂窝网络上网",
"D": "使用有线网络连接企业内网"
},
"answer": "B",
"explanation": "公共场合的开放 Wi-Fi 通常没有加密保护,攻击者可以在同一网络中轻松实施 ARP 欺骗、DNS 劫持等中间人攻击。此外,还可以搭建恶意 Wi-Fi 热点(Evil Twin)诱骗用户连接。A 的 VPN 加密了所有通信,大幅降低中间人攻击风险;C 的蜂窝网络有较强的链路层加密;D 的有线企业内网通常有网络隔离和监控措施。",
"source": null,
"related": []
},
{
"id": "sc-019",
"type": "single_choice",
"difficulty": 1,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "端口扫描的主要目的是什么?",
"options": {
"A": "破解目标主机的登录密码",
"B": "发现目标主机开放的服务和潜在攻击入口",
"C": "加密目标主机的网络通信",
"D": "提升目标主机的网络带宽"
},
"answer": "B",
"explanation": "端口扫描是网络安全评估的基础步骤,通过探测目标主机各端口的状态(开放、关闭、过滤),可以了解目标主机上运行了哪些网络服务(如 Web 服务、SSH、FTP 等),进而发现潜在的安全漏洞和攻击入口。A 是暴力破解的工作,C 和 D 与端口扫描无关。",
"source": null,
"related": []
},
{
"id": "sc-020",
"type": "single_choice",
"difficulty": 3,
"tags": [
"网络攻防",
"arp欺骗",
"中间人攻击"
],
"question": "在 ARP 欺骗实现的中间人攻击中,攻击者同时欺骗网关和目标主机的技术术语叫什么?",
"options": {
"A": "单向 ARP 欺骗",
"B": "双向 ARP 欺骗(ARP 双毒化)",
"C": "ARP 泛洪攻击",
"D": "ARP 重放攻击"
},
"answer": "B",
"explanation": "双向 ARP 欺骗(Bidirectional ARP Spoofing / ARP Double Poisoning)是指攻击者同时向网关和目标主机发送伪造的 ARP 应答:告诉目标主机'网关的 MAC 是攻击者的 MAC',同时告诉网关'目标主机的 MAC 是攻击者的 MAC'。这样双向流量都经过攻击者,实现完整的中间人攻击。A 的单向欺骗只能截获一个方向的流量;C 的 ARP 泛洪是用大量 ARP 报文淹没交换机 MAC 表;D 不是标准术语。",
"source": null,
"related": []
}
]
}
@@ -0,0 +1,149 @@
{
"topic": "network-attack",
"type": "true_false",
"schema_version": "1.0.0",
"generated": "2026-09-17T00:00:00+08:00",
"questions": [
{
"id": "tf-001",
"type": "true_false",
"difficulty": 1,
"tags": [
"网络攻防",
"arp欺骗"
],
"question": "ARP 协议在设计时没有内置任何认证机制,因此 ARP 欺骗攻击才容易实施。",
"answer": true,
"explanation": "正确。ARP 协议在设计之初处于可信网络环境的假设下,没有任何身份认证和验证机制。任何主机都可以发送 ARP 应答报文,即使它并没有收到对应的 ARP 请求,接收方也不会验证报文的真实性。这种缺乏认证的设计是 ARP 欺骗(ARP Spoofing)得以实施的根本原因。",
"source": null,
"related": []
},
{
"id": "tf-002",
"type": "true_false",
"difficulty": 2,
"tags": [
"网络攻防",
"DNS劫持"
],
"question": "使用 HTTPS 协议访问网站可以完全防止 DNS 劫持攻击。",
"answer": false,
"explanation": "错误。HTTPS 能保护数据传输的机密性和完整性,但 DNS 解析发生在 HTTPS 连接建立之前。如果 DNS 解析阶段被劫持,用户会被引导到攻击者控制的 IP 地址。虽然 HTTPS 的证书验证机制可能在后续阶段发现异常(如证书不匹配),但 DNS 劫持本身仍然发生。要防御 DNS 劫持,应使用 DNSSEC、DoH(DNS over HTTPS)或 DoT(DNS over TLS)。",
"source": null,
"related": []
},
{
"id": "tf-003",
"type": "true_false",
"difficulty": 2,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "TCP FIN 扫描在所有操作系统上的行为都是一致的。",
"answer": false,
"explanation": "错误。TCP FIN 扫描的行为依赖于目标操作系统对 RFC 793 的实现。按照 RFC 793 规范,关闭的端口收到 FIN 包应返回 RST,开放的端口应忽略。但 Microsoft Windows 系统不遵循此规范,无论端口是否开放都返回 RST。因此 TCP FIN 扫描在 Linux/Unix 系统上有效,但在 Windows 系统上无法区分端口状态。这也是 Nmap 要进行操作系统指纹识别的原因之一。",
"source": null,
"related": []
},
{
"id": "tf-004",
"type": "true_false",
"difficulty": 1,
"tags": [
"网络攻防",
"中间人攻击"
],
"question": "中间人攻击只能发生在局域网内部,无法在互联网上实施。",
"answer": false,
"explanation": "错误。虽然 ARP 欺骗等常见的中间人攻击主要在局域网内实施,但中间人攻击可以在多种网络环境中发生。例如,BGP 劫持可以在互联网骨干网层面实施中间人攻击;恶意 Wi-Fi 热点可以在公共场合对用户实施中间人攻击;DNS 劫持也可以在互联网层面将用户引导到恶意服务器。此外,ISP 层面的流量劫持也是互联网上的中间人攻击形式。",
"source": null,
"related": []
},
{
"id": "tf-005",
"type": "true_false",
"difficulty": 2,
"tags": [
"网络攻防",
"arp欺骗"
],
"question": "ARP 欺骗攻击可以使交换机退化为类似集线器的工作模式,导致所有流量被广播。",
"answer": false,
"explanation": "错误。ARP 欺骗和 MAC 泛洪(MAC Flooding)是两种不同的攻击。ARP 欺骗是通过伪造 ARP 应答污染目标主机的 ARP 缓存,使特定目标的流量被发送到攻击者,但交换机的 MAC 地址表仍然正常工作。使交换机退化为集线器模式的是 MAC 泛洪攻击,它通过发送大量伪造源 MAC 地址的帧使交换机 MAC 表溢出,交换机被迫将所有帧广播到所有端口。两者虽然都与局域网安全相关,但原理不同。",
"source": null,
"related": []
},
{
"id": "tf-006",
"type": "true_false",
"difficulty": 1,
"tags": [
"网络攻防",
"DNS劫持"
],
"question": "修改本地 hosts 文件可以使特定域名的 DNS 解析结果被劫持。",
"answer": true,
"explanation": "正确。hosts 文件的解析优先级高于 DNS 服务器查询。操作系统在进行域名解析时,会首先检查 hosts 文件中是否存在对应的映射记录。如果攻击者在 hosts 文件中为某个域名添加了错误的 IP 映射,系统就会直接使用该错误地址,而不会向 DNS 服务器发起查询,从而实现 DNS 劫持。这也是很多恶意软件常用的劫持手段。",
"source": null,
"related": []
},
{
"id": "tf-007",
"type": "true_false",
"difficulty": 2,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "防火墙和入侵检测系统(IDS)无法检测到 TCP SYN 扫描。",
"answer": false,
"explanation": "错误。虽然 TCP SYN 扫描(半开扫描)比全连接扫描更隐蔽,但现代防火墙和 IDS 仍然可以通过多种方式检测到它。例如:检测短时间内对大量端口的 SYN 请求模式;检测同一源 IP 向多个端口发送 SYN 后收到 RST 的异常行为;利用状态检测(Stateful Inspection)发现未完成的 TCP 握手。入侵防御系统(IPS)还可以主动阻断可疑的扫描行为。",
"source": null,
"related": []
},
{
"id": "tf-008",
"type": "true_false",
"difficulty": 2,
"tags": [
"网络攻防",
"中间人攻击"
],
"question": "在中间人攻击中,攻击者可以同时修改 HTTP 请求和 HTTP 响应的内容。",
"answer": true,
"explanation": "正确。在 HTTP 明文通信的中间人攻击中,攻击者位于通信双方之间,拥有对数据流的完全控制权。攻击者可以修改客户端发送的 HTTP 请求(如篡改表单数据、添加恶意头部),也可以修改服务器返回的 HTTP 响应(如注入恶意脚本、替换页面内容、插入广告)。这也是为什么 HTTPS 的加密和完整性保护如此重要——它可以防止中间人篡改通信内容。",
"source": null,
"related": []
},
{
"id": "tf-009",
"type": "true_false",
"difficulty": 1,
"tags": [
"网络攻防",
"端口扫描"
],
"question": "端口 80 通常用于 HTTP 服务,端口 443 通常用于 HTTPS 服务。",
"answer": true,
"explanation": "正确。根据 IANA(互联网号码分配机构)的服务端口分配标准,端口 80 是 HTTP(超文本传输协议)的默认端口,端口 443 是 HTTPS(HTTP over TLS/SSL)的默认端口。当用户访问 http://example.com 时默认使用 80 端口,访问 https://example.com 时默认使用 443 端口。这些是端口扫描中最常见的发现。",
"source": null,
"related": []
},
{
"id": "tf-010",
"type": "true_false",
"difficulty": 2,
"tags": [
"网络攻防",
"DNS劫持",
"arp欺骗"
],
"question": "DNS 劫持和 ARP 欺骗都属于网络层攻击,都可以用于将用户重定向到恶意网站。",
"answer": true,
"explanation": "正确。DNS 劫持通过篡改 DNS 解析结果将域名指向恶意 IP,ARP 欺骗则通过伪造 ARP 映射截获流量后可进一步篡改 DNS 响应。两者都可以将用户对正常网站的访问重定向到攻击者控制的恶意网站。DNS 劫持工作在网络层(影响域名到 IP 的解析),ARP 欺骗工作在数据链路层到网络层的边界(影响 IP 到 MAC 的映射),但两者都属于广义的网络层攻击范畴。",
"source": null,
"related": []
}
]
}