带有 <script> 后跟 <br/> 的 XSS

Posted

技术标签:

【中文标题】带有 <script> 后跟 <br/> 的 XSS【英文标题】:XSS with <script> followed by <br/> 【发布时间】:2016-09-20 07:20:53 【问题描述】:

如何在这些限制下执行 XSS 攻击:

[input 1] &lt;br/&gt; [input 2]

输入 1 具有以下限制: - 仅 10 个字符 - 未经处理

输入 2 有以下限制: - "", "&" 被清理 - 没有其他限制

此外,网页允许持续输入,但一旦我打开标签,我就无法执行其他输入。

我已经尝试过:

&lt;script&gt; &lt;br/&gt; alert(document.cookie)

但它似乎不起作用,大概是因为那里的 br 标签。 关于我应该如何进行的任何想法?

【问题讨论】:

我想知道为什么人们不赞成这个。这是一个非常可以回答的编程问题。 【参考方案1】:

你说:

输入 1 具有以下限制: - 仅 10 个字符 - 未经处理

如果这个input的值只是体现在页面中(服务器端没有对maxlength的控制),你可以直接使用浏览器的开发者工具来增加Input的maxlength的值然后输入你想要的payload。

然后你说:

输入 2 有以下限制: - "", "&" 被清理 - 没有其他限制

现在取决于这个输入的值反映在哪里:

如果Input参数值反映在javascript中,可以试试:

";alert('XSS');//
");alert(document.cookie);
; window.open(www.google.com);
';alert(String.fromCharCode(88,83,83))//

如果 Input 参数值反映在 html 输入标签或其他 HTML 代码中,可以尝试:

1? onmouseover=alert("xss"); "
"onload='confirm("test XSS")’
" onload=window.open(www.google.com)
" onload='javascript:alert(1)’

XSS 取决于它的反射位置!!!你也得动动脑筋。

【讨论】:

【参考方案2】:

例如:&lt;script&gt;/* &lt;br/&gt; */ alert(1); /*

【讨论】:

这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review @Liam 这确实提供了问题的答案。 有人将此标记为不是答案(不是我)。它被发送到我(和其他人)reviewed it 的审核队列。对我来说,这个答案没有得到很好的解释,读起来像评论。如果您添加更多详细信息,您可能会避免它被删除。我的投票现在已通过,我无法撤消它,但需要几票才能删除答案。因此,如果您充分纠正它,您可能会避免删除。只是为了重新迭代,我无法进一步更改此过程

以上是关于带有 <script> 后跟 <br/> 的 XSS的主要内容,如果未能解决你的问题,请参考以下文章

仅限 iOS 的问题:通过 AJAX 加载的带有 <script> 的 HTML 不会执行

js带有关闭按钮的弹窗

Symfony2 表单和 <input> 模式属性

命令行:替换换行符后跟字符

lseek() 后跟 new open() 返回 0

如何用 <br/> 替换某些回车换行符后跟破折号?