反正有没有在eventhandler中用文本输入

时间:2018-02-25 17:15:25

标签: javascript html xss

我最近一直在研究XSS,我发现了一个案例.html代码就像这样

<input type="text" name="s" id="s" value="foo" onblur="this.value"  x-webkit-speech/>

所以我想知道我是否可以输入类似alert(1)的内容来使onblur处理程序触发javascript .. 是否可能?

2 个答案:

答案 0 :(得分:0)

是。在javascript中,“this”指的是当前元素。由于输入onblur事件引用了元素的值,因此输入将运行您放入其中的任何内容。但是,除非这可以通过网址反映出来,否则没有用。

答案 1 :(得分:0)

  

所以我想知道我是否可以输入类似警报(1)的内容来制作onblur   处理程序触发javascript ..它可能吗?

不可能,你需要评估你在输入框中输入的代码来执行它,因为它被视为字符串而不是代码。

您需要执行以下操作,您永远不需要或不想这样做。

<input type="text" name="s" id="s" value="alert('foo')" onblur="eval(this.value)" x-webkit-speech autofocus/>