0Pricing
Cyber Security Academy · 课时

Web 与密码学挑战

解决常见的 Web 与密码学谜题。

Web 与密码学挑战 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

两大支柱:网络与密码学

网络和密码学是进入 CTF 最常见的两个切入点。

  • 网络挑战题会提供一个正在运行的网络应用,要求您找出它在处理输入、身份验证或信任关系时存在的缺陷。
  • 密码学挑战题会提供密文、密码方案,有时还会提供源代码,要求您利用密码学使用方式中的缺陷来恢复明文或密钥。

这两类挑战题都要求您进行有条理的观察。本课将介绍其中反复出现的题型。

处理网络目标的第一步

在尝试利用任何东西之前,请先绘制应用结构。查看源代码、检查响应,并探查隐藏内容。

# Inspect raw response headers and body
curl -i http://target/

# Look for hidden paths the UI does not link to
gobuster dir -u http://target/ -w wordlist.txt

# Common files worth checking by hand
# /robots.txt  /.git/  /backup.zip  /admin

SQL 注入

当用户输入被拼接到数据库查询中,且代码与数据没有分离时,就会发生SQL 注入。

如果登录功能构造了类似 SELECT * FROM users WHERE name='INPUT' 的查询,那么攻击者可以输入能够闭合字符串并改变逻辑的内容,从而绕过限制:

# A classic auth-bypass payload supplied as the username
' OR '1'='1' -- 

# UNION-based extraction once the column count is known
' UNION SELECT username, password FROM users -- 

注入的真正修复方法

CTF 教您攻破注入漏洞,从而帮助您进行防御。正确的防御方法是使用参数化查询(预处理语句),将用户数据完全排除在查询结构之外。

# Vulnerable: input becomes part of the SQL text
query = "SELECT * FROM users WHERE name='" + name + "'"

# Safe: input is bound as a parameter, never parsed as SQL
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))

跨站脚本(XSS)

当应用回显或存储攻击者控制的输入,且浏览器将其作为脚本 execute 时,就会发生XSS。在 CTF 中,XSS 挑战题通常涉及一个机器人:它会在旗标保存在 Cookie 中时访问您的有效载荷。

  • 反射型——请求中的有效载荷会直接原样回显。
  • 存储型——有效载荷会被保存,并在之后的访问者打开页面时运行。
  • 基于 DOM——客户端 JavaScript 不安全地将输入写入页面。

防御方法是使用基于上下文的输出编码以及内容安全策略。类似 <script>alert(1)</script> 的测试探针可以确认输入是否经过转义。

SSRF 与路径遍历

另外两种常见的网络题型:

  • 服务器端请求伪造(SSRF)——诱使服务器代表您发出请求,通常请求仅限内部访问的地址(例如 http://127.0.0.1)或云元数据端点,以获取旗标。
  • 路径遍历——通过 ../ 等序列逃出预期目录,以读取网络根目录之外的文件,例如 ../../../../etc/passwd。

这两种问题都源于信任用户输入来选择资源。防御方法是使用严格的允许列表,并在使用路径前先将其规范化,然后进行验证。

编码不是加密

初学者最常见的密码学陷阱,是混淆编码与加密。任何人无需密钥即可还原编码,因此编码完全不提供机密性。

请学会一眼识别以下格式:

  • Base64——包含字母、数字、+ /,通常带有 = 填充。
  • 十六进制——只有 0-9 a-f。
  • ROT13 / 凯撒密码——具有可读的结构,字母发生移位。
# Decode base64
echo 'ZmxhZ3toZWxsb30=' | base64 -d

# Decode hex
echo '666c6167' | xxd -r -p

经典密码与 XOR 密码

许多密码学挑战题使用薄弱的历史密码或实现不严谨的现代密码:

  • 凯撒密码 / 维吉尼亚密码——通过频率分析或尝试全部 25 种移位即可破解的移位密码。
  • 单字节 XOR——整条消息都与一个字节进行 XOR;穷举全部 256 个密钥,选择可读的结果。
  • 重复密钥 XOR——先找出密钥长度,再将每个密钥字节作为单字节 XOR 进行求解。

要点是:自定义或经典密码对分析人员不具备真正的安全性。

RSA 的常见陷阱

只有在参数选择正确时,RSA 才是安全的。CTF 密码学题经常会提供存在缺陷的实例:

  • 模数过小——如果 n 足够小,直接将其分解即可恢复私钥。
  • 指数过小且没有填充——当 e=3 且消息较短时,密文可能是一个完全立方数,可以通过整数立方根恢复。
  • 共享因子——如果两个公钥共享一个素数,那么对它们的模数求最大公约数即可立即得到该素数。

实际环境中的防御方法是:使用经过审核的库、大密钥和适当的填充(OAEP),绝不要自行实现。

哈希破解

当题目提供密码哈希时,目标是还原原始输入。您无法逆向还原哈希,但可以猜测输入并进行比较。

# Identify the hash type first
hashid 5f4dcc3b5aa765d61d8327deb882cf99

# Dictionary attack with hashcat (mode 0 = raw MD5)
hashcat -m 0 hash.txt rockyou.txt

# John the Ripper alternative
john --wordlist=rockyou.txt hash.txt

可重复的工作流程

用一个一致的循环把两类题目串联起来:

  • 观察 — 阅读题面、查看源代码,识别编码或方案。
  • 提出假设 — 判断可能属于哪一类漏洞。
  • 小规模测试 — 发送一个探测载荷,观察确切的响应。
  • 利用 — 将有效的探测升级为能够获取标志的完整载荷。
  • 记录 — 趁记忆清晰时记录载荷和推理过程。

这个循环能让您避免陷入无休止的探索,并且几乎不费力地形成题解。

快速检查

测试您对网络和密码学基础知识的掌握程度。

回顾

您已经学习了反复出现的网络和密码学题型:

  • 网络:先进行梳理,再探测SQL 注入、XSS、SSRF 和路径遍历——它们都源于对用户输入的不安全信任,修复方法都是将代码与数据分离。
  • 密码学:区分编码和加密,破解脆弱的经典密码和 XOR 密码,利用RSA 参数错误,并使用词表破解哈希。
  • 一套观察、提出假设、测试、利用、记录的循环适用于这两类题目。

接下来,您将学习逆向工程和二进制利用。

常见问题解答

「Web 与密码学挑战」课时是免费的吗?

是的 — 「Web 与密码学挑战」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「Web 与密码学挑战」这节课中我会学到什么?

解决常见的 Web 与密码学谜题。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「Web 与密码学挑战」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. CTF 类型与思维方式
  2. Web 与密码学挑战
  3. 逆向工程与 Pwn 基础
  4. 工具与解题报告
← 返回 Cyber Security Academy