从业者-XSS上下文-模板字面量-反射型XSS-尖括号单引号双引号反斜杠和反引号Unicode转义
# 实验室:XSS上下文-模板字面量中的反射型XSS-尖括号单引号双引号反斜杠和反引号Unicode转义
# 题目
此实验室在 博客搜索功能 中包含一个反射型的跨站脚本漏洞。反射发生在一个模板字符串内,其中尖括号、单引号和双引号被 HTML 编码,并转义了反引号。
若要解决实验室问题,请执行跨站脚本攻击,在模板字符串中调用alert
函数。
- name: 实验室-从业者
desc: XSS上下文-模板字面量中的反射型XSS-尖括号单引号双引号反斜杠和反引号Unicode转义 >>
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-javascript-template-literal-angle-brackets-single-double-quotes-backslash-backticks-escaped
bgColor: '#001350'
textColor: '#4cc1ff'
1
2
3
4
5
6
2
3
4
5
6
# 实操
点击 “ACCESS THE LAB” 进入实验室。
映入眼帘的是一个老朋友 搜索功能。
被搜索的字符在script
标签中有一个出口点。
var message = `0 search results for 'carsaid'`;
document.getElementById('searchMessage').innerText = message;
1
2
2
该出口点位于一个反引号字符串中。
尝试脱离原有字符串,引号和反引号都被 Unicode 转义。
'`;alert(5)//
1
根据前面所学,在反引号字符串中可以使用 模板字面量:
${alert(5)}
1
注入模板字面量,成功调用 alert 函数。
实验完成。
编辑 (opens new window)