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