=_= 在 JavaScript 或 HTML 中意味着什么?

Bil*_*ung 6 javascript xss

阅读这份XSS 备忘单,我注意到一个我从未见过的特殊用法:

\n
<img src="/" =_=" title="onerror=\'prompt(1)\'">\n
Run Code Online (Sandbox Code Playgroud)\n

“=_=”是什么意思?它位于“On Mouse Over\xe2\x80\x8b”这句话的下方。

\n

Cer*_*nce 4

它只是元素上的一个属性。它本身没有任何意义,因此它可能只是作为一种转移注意力的方式出现。

美化一下,代码是:

<img
  src="/"
  =_=" title="
  onerror='prompt(1)'"
>
Run Code Online (Sandbox Code Playgroud)

在 HTML 中,=in 属性指定属性名称和属性值之间的分隔符,因此它是:

<img
  src="/"
  =_=" title="
  onerror='prompt(1)'"
>
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以检索属性值。

=_=" title="
^^ attribute name

=_=" title="
  ^ delimiter between attribute name and attribute value

=_=" title="
   ^ attribute value contents delimiter

=_=" title="
    ^^^^^^^ attribute value

=_=" title="
           ^ attribute value contents delimiter
Run Code Online (Sandbox Code Playgroud)
const img = document.querySelector('img');
console.log(img.getAttribute('=_'));
Run Code Online (Sandbox Code Playgroud)

请注意,属性名称是=_,而不是=_=- 最后一个=是分隔符,而不是属性名称的一部分。

“XSS”仅由 和 引起srconerror而不是由其他任何原因引起。无论您在哪里遇到这种情况,都=_可能根本没有任何作用。可以,但可能不会。

<img
  src="/"
  =_=" title="
  onerror='prompt(1)'"
>
Run Code Online (Sandbox Code Playgroud)