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