我最近一直在研究XSS,我发现了一个案例。HTML代码如下
<input type="text" name="s" id="s" value="foo" onblur="this.value" x-webkit-speech/>
所以我想知道我是否可以输入诸如 alert(1)
之类的东西使onblur处理程序触发javascript .. 是否可能?
是。在JavaScript中,"此"是指当前元素。由于输入onblur事件引用了元素的值,因此输入将运行您放入的任何内容。但是,除非可以通过URL反映这一点,否则这将是没有用的。
所以我想知道我是否可以输入诸如警报(1(之类的东西来制作Onblur 处理程序触发JavaScript ..是否可能?
否是不可能的,您需要评估输入框中输入的代码以执行它,因为它被视为字符串而不是代码。
您将需要执行以下操作,您永远不需要或想做。
<input type="text" name="s" id="s" value="alert('foo')" onblur="eval(this.value)" x-webkit-speech autofocus/>