你将学到什么
- 阅读 HTTP 请求与响应
- 理解常见 Web 漏洞的成因
- 将攻击现象与安全实现联系起来
在隔离的练习环境中学习 HTTP、身份验证、输入校验以及常见 Web 漏洞。
共 32 题。
Web难度 1网页中还包含许多页面表面看不到的信息。查看 HTML 源代码时,常能发现开发者留下的注释。请检查本页源代码并找出旗标。
Web难度 1本页有一个受密码保护的区域,但密码校验在 JavaScript 中完成。检查开发者工具里的脚本,找出正确密码。
Web难度 1网站会用 Cookie 在浏览器中保存信息,例如登录状态。有时重要信息也会被错误地存入 Cookie;请检查本网站的 Cookie 并找到旗标。
Web难度 1该登录表单存在 SQL 注入漏洞。请在没有正确凭据的情况下以 admin 身份登录并取得旗标。
Web难度 1网站常为爬虫提供 robots.txt。本题要确认:robots.txt 要求不抓取的文件,是否仍能被直接访问。
Web难度 1若 Nginx 为目录启用了索引列表(autoindex),本应隐藏的文件清单就会公开。请探索暴露的目录。
Web难度 1该应用依据特定 HTTP 请求头的值允许访问。即使浏览器默认不会发送某个值,也能通过自行构造请求来修改它。
Web难度 1本页用客户端 JavaScript 检查 URL 的 GET 参数,条件满足时显示旗标。请通过在 URL 末尾加入参数来满足条件。
Web难度 1登录表单含有页面上看不见的 hidden input。用开发者工具检查它,并尝试修改提交的数据。
Web难度 1受保护区域使用 HTTP Basic 认证,但开发者误把凭据留在公开页面的 HTML 注释中。请检查页面源代码。
Web难度 1访问某页会立刻跳转到另一页。浏览器会自动跟随重定向;请设法查看重定向之前的响应正文。
Web难度 1这个 Web 应用存在基础的 XSS 漏洞。找出留言簿中会原样反射输入的位置,并取得旗标。
Web难度 2KinoGadget 的内部员工访问门户使用旧式认证系统。据说开发者会直接用输入拼接动态 SQL;请尝试以管理员身份进入。
Web难度 2BlogSearch 是一个简单的博客搜索引擎。搜索词会原样显示在结果页,请检查输入在插入页面前是否被正确过滤。
Web难度 2ImageVault 可上传 JPG、PNG 和 GIF 图片。若验证只检查文件名结尾,哪些不允许的文件可能会蒙混过关?
Web难度 2该应用根据输入的主机名执行 ping。若主机输入被直接传给 shell 命令,会发生什么?
Web难度 2UserProfile 服务允许查看用户资料。检查直接对象引用的访问控制是否正确,并尝试访问不属于自己的记录。
Web难度 2CHIMERA 研究实验室使用 JWT 管理会话。请分析令牌签名是否使用了容易猜测的密钥,并尝试取得管理员权限。
Web难度 2FileShare 用于列出和下载共享目录中的文件。请检查传给下载端点的文件名参数是否经过正确验证。
Web难度 2该联系表单把输入转成 XML 发给服务器,服务器解析后回显结果。请检查 XML 解析器配置是否会意外读取文件。
Web难度 2该银行应用允许已登录用户转账。请检查其他网站能否代替受害者发起转账,从而判断是否缺少 CSRF 防护。
Web难度 2URL Fetcher 会获取并显示用户提供的任意 URL 内容。请尝试让它访问只有服务器本身才能到达的内部服务。
Web难度 3该用户搜索应用只报告用户名是否存在,并不直接显示查询结果。请利用错误或响应差异推断隐藏信息。
Web难度 3这个评论板受内容安全策略(CSP)保护,只允许本站和受信任 CDN 的脚本。请注意:受信任 CDN 上的内容也不一定安全。