XSS:img标签中的src属性是否单独导致XSS?

时间:2018-07-08 13:48:15

标签: javascript html xss

img标记下方仅包含src属性。会不会导致xss,而没有窗口事件onerror = eval(src)之类的其他属性?

<img src=javascript:alert('XSS')>

3 个答案:

答案 0 :(得分:0)

只要不执行JavaScript,您就不必担心XSS。

如果您在后端使用前端中的值,那将是一个问题。

示例:

<script>document.body.innerHTML = 'Hacked!';</script>

用户键入:echo $_POST['age']

现在在后端,您只需使用<IMG SRC=javascript:alert('XSS')>

如您所见,最好关心自己的代码,但要更加小心用户可以输入的内容,因为那是很危险的部分!

在您的情况下,不会执行{{1}}。甚至它被执行了,那只是您键入的内容,而不是用户。

答案 1 :(得分:0)

这行特殊代码隔离:

可以诱骗生成此类代码的网站:可能是

如果您的模板是这样的:

<img src=$user_data>

那么几乎可以肯定它是脆弱的。

即使您试图在提交的数据中将某些“不良字符”列入黑名单,它也仍然很容易受到攻击。例如,即使您禁止使用空格,也仍然可以通过从无效标记中进行错误恢复来添加额外的属性:

<img src="foo"/onerror="baz">

唯一相对简单的解决方案是:

  1. 转义以HTML打印的数据。将<更改为&lt;,将"更改为&quot;
  2. 总是用动态数据引用属性。

答案 2 :(得分:0)

是的,我们可以单独使用src属性创建XSS

<img src="data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K" alt="add" >

Base64代码可以处理其他事情