挑战一览
Web-05. 目录列表陷阱
若 Nginx 为目录启用了索引列表(autoindex),本应隐藏的文件清单就会公开。请探索暴露的目录。
Web-06. 伪造 HTTP 请求头
该应用依据特定 HTTP 请求头的值允许访问。即使浏览器默认不会发送某个值,也能通过自行构造请求来修改它。
Web-07. 篡改 URL 参数
本应用在服务器端检查 URL 的 GET 参数 key。所需的参数名和值可从页面说明和提示中得到。提供正确的 key 时,服务器会返回旗标。
Web-08. 篡改 POST 数据
登录表单含有页面上看不见的 hidden input。用开发者工具检查它,并尝试修改提交的数据。
Web-09. 脆弱的 Basic 认证陷阱
受保护区域使用 HTTP Basic 认证,但开发者误把凭据留在公开页面的 HTML 注释中。请检查页面源代码。
Web-10. 查看重定向背后
访问某页会立刻跳转到另一页。浏览器会自动跟随重定向;请设法查看重定向之前的响应正文。
XSS 基础:留言簿
这个 Web 应用存在基础的 XSS 漏洞。找出留言簿中会原样反射输入的位置。旗标位于只有管理员浏览器才能读取的内部端点。点击页面上的“请管理员查看”,管理员就会打开你的 message。
API 请求:识别最高利润交易
容器启动时,股票 API 会在 http://localhost:9102 上运行(无需自己启动 server.py)。请通过 GET /api/stocks 和 GET /api/stocks/<symbol> 获取 5 只股票共约…
从 Apache 日志中发现攻击
分析 Apache access.log(common 格式),找出 SQL 注入攻击的痕迹。请分辨哪些攻击成功、哪些失败,并读出攻击者植入的内容。 学习日志分析与模式匹配。 提供文件:access.log
Excel 宏中的隐藏 flag
分析 Excel 工作簿中嵌入的宏代码,找出隐藏的认证码(flag)。 学习如何分析 Office 文档中的宏。本题中,宏的源代码以文本形式存放在文件内。 提供文件:spreadsheet.xlsm
Linux-02:通过 sudo 允许的 vim 提权
检查普通用户可免密码通过 sudo 运行的命令;某个命令可用已知 GTFOBins 技巧进入 shell。
Linux-03:解读 cron 配置文件
系统包含 `/etc/cron.d`、`/etc/crontab` 和用户 crontab 等多处 cron 配置。检查它们,找出写有旗标的位置。
Linux-Cron 提权:劫持可写的 root 脚本
root 会定期运行一个 cron 脚本。检查其权限,并思考普通用户可写时下次执行会发生什么。
Linux-systemd:检查服务单元的环境变量
systemd 单元可在 `[Service]` 段设置环境变量。请检查已注册服务的定义和值。
Linux-符号链接迷宫:穿过分岔路径
多个目录由符号链接交错相连。请不要被诱饵提示文件误导,逐一跟随链接到真正的旗标文件。
Linux-脚本调试:修复损坏的 Bash 脚本
脚本内有多个故意设置的拼写和语法错误,无法运行到最后。请用 Bash 调试功能逐一修复。
Linux-网络基础:连接监听端口
后台服务正在某个端口监听。请用 `ss` 或 `netstat` 找到端口,并以 `nc` 连接来接收旗标。
Linux-备份查找:辨认真正的临时文件
项目目录有多个以 `.bak`、`.tmp` 或 `~` 结尾的诱饵备份和临时文件;真正的旗标位于隐藏文件中。
Linux-管道:用 grep 和 awk 筛选日志
访问日志包含大量记录。某个 IP 在短时间内产生了大量 404,将它这一连串请求的路径拼接起来即为旗标。请用管道组合 grep、awk、sort、uniq 等命令来拼出答案。
Linux-软件包信息:检查已安装软件包详情
系统安装了一个自制 deb 软件包。请用 `dpkg` 或 `apt` 查看其详情,并在描述中寻找隐藏信息。
Linux-进程追踪:找出运行中的目标进程
多个后台进程中有一个把旗标放在命令行参数里。请用 `ps` 列出并找出它。
Linux-用户调查:用 awk 筛选目标用户
系统中注册了多个用户。请用 `awk` 解析 `/etc/passwd` 找到满足条件的用户,再检查其主目录中的隐藏文件。
Linux-日志轮转:搜索压缩的旧日志
部分旧日志已被 gzip 压缩;请在不解压文件的情况下搜索其中的旗标。
Linux-日志探索:从多份日志中挖出旗标
应用与系统日志中只有一条 `DEBUG` 记录包含旗标。请用 `grep` 等工具筛选。