学徒-XSS上下文-HTML属性中-反射型XSS-尖括号HTML编码
# 实验室:XSS上下文-HTML属性中的反射型XSS-尖括号HTML编码
# 题目
此实验室在 博客搜索功能 中包含一个反射型的跨站脚本漏洞,其中尖括号被进行了 HTML 编码。若要解决实验室问题,请执行跨站脚本攻击,该攻击注入标签属性并调用alert函数。
提示
仅你自己能够触发alert()这并不意味着会对受害者起作用。在概念验证尝试中,你可能需要往有效负载中注入各种不同的属性,然后才能找到 在受害者浏览器中 能够成功执行的属性。
- name: 实验室-学徒
desc: XSS上下文-HTML属性中的反射型XSS-尖括号HTML编码 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/cross-site-scripting/contexts/lab-attribute-angle-brackets-html-encoded
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
点击 “ACCESS THE LAB” 进入实验室。
首页有一个老朋友 搜索功能。
尝试注入载荷,出口点位于某个 input 标签的 value 属性中,注入的内容被识别为普通字符串。
尝试使用引号和尖括号">来闭合原有的属性和标签,成功脱离原有属性,但脱离原有标签时失败,因为尖括号<>被过滤。
能否只脱离原有属性,在原有标签内执行 XSS 攻击?
在XSS备忘单 (opens new window)中寻找与 input 标签有关的载荷,发现input标签 + autofocus属性 + onfocus事件的配套载荷。
autofocus属性将会自动聚焦元素,当元素获得焦点时,将会触发onfocus事件。
原有出口点已经存在 input 标签,所以我们只需要取部分载荷:
" autofocus onfocus=alert(1) x="
1
上述载荷通过双引号"闭合原有属性,然后添加autofocus属性以及onfocus事件,最后通过x="优雅地闭合原有的引号。
注入载荷:
成功调用 alert 函数。
实验完成。

编辑 (opens new window)