网络安全 CTF 挑战

选择一个领域与难度,在安全环境中调查证据并验证结论。

Linux难度 1

Linux-进程基础:检查 sleep 命令参数

请从数个后台进程中找到具有目标命令行参数的进程,练习 `ps` 的基本用法。

Linux难度 1

Linux-深度搜索:用 find 找到深层文件

唯一的旗标文件藏在多层嵌套目录深处;请用 `find` 排除诱饵并找到它。

Linux难度 1

Linux-环境变量基础:检查 shell 启动变量

shell 启动时设置的环境变量中有一个保存旗标。请用 env 或 echo $变量名检查。

Linux难度 1

Linux 基础:权限与 SUID

学习 Linux 基本命令和文件权限。请依据提示找到 SUID 文件,并使用题目指定的可执行文件取得旗标。

Web难度 1

SQL 注入 101

该登录表单存在 SQL 注入漏洞。请在没有正确凭据的情况下以 admin 身份登录并取得旗标。

Web难度 1

Web-04. robots.txt 的陷阱

网站常为爬虫提供 robots.txt。本题要确认:robots.txt 要求不抓取的文件,是否仍能被直接访问。

Web难度 1

Web-05. 目录列表陷阱

若 Nginx 为目录启用了索引列表(autoindex),本应隐藏的文件清单就会公开。请探索暴露的目录。

Web难度 1

Web-06. 伪造 HTTP 请求头

该应用依据特定 HTTP 请求头的值允许访问。即使浏览器默认不会发送某个值,也能通过自行构造请求来修改它。

Web难度 1

Web-07. 篡改 URL 参数

本页用客户端 JavaScript 检查 URL 的 GET 参数,条件满足时显示旗标。请通过在 URL 末尾加入参数来满足条件。

Web难度 1

Web-08. 篡改 POST 数据

登录表单含有页面上看不见的 hidden input。用开发者工具检查它,并尝试修改提交的数据。

Web难度 1

Web-09. 脆弱的 Basic 认证陷阱

受保护区域使用 HTTP Basic 认证,但开发者误把凭据留在公开页面的 HTML 注释中。请检查页面源代码。

Web难度 1

Web-10. 查看重定向背后

访问某页会立刻跳转到另一页。浏览器会自动跟随重定向;请设法查看重定向之前的响应正文。

Web难度 1

XSS 基础:留言簿

这个 Web 应用存在基础的 XSS 漏洞。找出留言簿中会原样反射输入的位置,并取得旗标。

Cryptography难度 2

AES-ECB 模式的弱点

ECB 会让相同明文块产生相同密文块并泄露模式。本入门题先辨别加密与编码的区别。 十六进制数据: 4b494e4f434f7b6563625f6d6f64655f69735f7765616b7d…

Programming难度 2

API 请求:识别最高利润交易

启动 `localhost:9102` 的股票 API,在所有股票交易中找出 `sell_price - buy_price` 最大的 id,并把它 POST 到 `/api/check`;正确响应会返回启动时注入的 FLAG。

Forensics难度 2

从 Apache 日志中发现攻击

分析 `access.log`,找出 SQL 注入攻击痕迹及其关联 flag。

General Skills难度 2

Bash 脚本:自动化的力量

`/app/numbers.txt` 每行有一个 1 到 1000 的数字。求同时是 3 和 5 的倍数、但不能被 7 整除的数字之和;总和是旗标。

Forensics难度 2

Excel 宏中的隐藏 flag

分析 `spreadsheet.xlsm` 中嵌入的 VBA 宏,找到其中的 flag。

General Skills难度 2

Git 侦探:丢失的提交

`/app/repo` 是 Git 仓库。开发者误删了含重要信息的提交;请用 `git reflog` 找回并读取其提交消息中的旗标。

General Skills难度 2

JSON 大师:数据提取

`/app/users.json` 有 100 位用户。筛选 `age` 在 25–30、`country` 为 `Japan`、`is_active` 为 `true` 的用户;按字母排序后第一个邮箱构成 `KINOCO{...}`。

Linux难度 2

Linux-02:通过 sudo 允许的 vim 提权

检查普通用户可免密码通过 sudo 运行的命令;某个命令可用已知 GTFOBins 技巧进入 shell。

Linux难度 2

Linux-03:解读 cron 配置文件

系统包含 `/etc/cron.d`、`/etc/crontab` 和用户 crontab 等多处 cron 配置。检查它们,找出写有旗标的位置。

Linux难度 2

Linux-Cron 提权:劫持可写的 root 脚本

root 会定期运行一个 cron 脚本。检查其权限,并思考普通用户可写时下次执行会发生什么。

Linux难度 2

Linux-systemd:检查服务单元的环境变量

systemd 单元可在 `[Service]` 段设置环境变量。请检查已注册服务的定义和值。