学徒-DOM型XSS-document.write接收器-location.search源
# 实验室:DOM型XSS-document.write接收器-location.search源
# 题目
此实验室在 搜索查询跟踪功能 中包含一个基于 DOM 的跨站脚本漏洞。它使用 JavaScript document.write
函数,该函数将数据写入页面中。源自location.search
的数据将作为document.write
函数调用时的参数,你可以通过网站 URL 来控制该源。
若要解决实验室问题,请通过调用alert
函数来执行跨站脚本攻击。
- name: 实验室-学徒
desc: DOM型XSS-document.write接收器-location.search源 >>
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/dom-based/lab-document-write-sink
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
点击 “ACCESS THE LAB” 进入实验室。
在首页中可以看到一个搜索功能,尝试输入任意字符并点击 “Search”。
网页以 GET 方式提交了这些字符,参数名为search
,这些字符被包含在了即时响应中。
但响应中的尖括号<
与>
都被编码,导致注入的载荷未能被解析和执行。
但该页面同时存在 2 个出口点,刚刚提交的字符 还被包含在下方的某个img
标签属性内。
尝试使用符号">
闭合该标签及其属性值,并在符号后面拼接攻击载荷:
"><script>alert(1)</script>
1
成功闭合该标签,注入的载荷被正常解析和执行。
编辑 (opens new window)