=_= 在 JavaScript 或 HTML 中是啥意思?
Posted
技术标签:
【中文标题】=_= 在 JavaScript 或 HTML 中是啥意思?【英文标题】:What does =_= mean in JavaScript or HTML?=_= 在 JavaScript 或 HTML 中是什么意思? 【发布时间】:2022-01-24 04:18:12 【问题描述】:读到这个XSS cheat sheet,我注意到一个我从未见过的特殊用法:
<img src="/" =_=" title="onerror='prompt(1)'">
“=_=”是什么意思?它在“On Mouse Over”这句话的下方。
【问题讨论】:
【参考方案1】:它只是元素上的一个属性。它本身没有任何意义,所以它可能只是作为一条红鲱鱼出现。
美化一下,代码是:
<img
src="/"
=_=" title="
onerror='prompt(1)'"
>
在 html 中,属性中的=
指定了属性名称和属性值之间的分隔符,所以它是:
=_=" title="
^^ attribute name
=_=" title="
^ delimiter between attribute name and attribute value
=_=" title="
^ attribute value contents delimiter
=_=" title="
^^^^^^^ attribute value
=_=" title="
^ attribute value contents delimiter
如果需要,您可以检索属性值。
const img = document.querySelector('img');
console.log(img.getAttribute('=_'));
<img
src="/"
=_=" title="
onerror='prompt(1)'"
>
请注意,属性名称是=_
,而不是=_=
- 最后的=
是分隔符,不是属性名称的一部分。
“XSS”仅由src
和onerror
引起,而不是由其他任何原因引起。无论您在哪里遇到这种情况,=_
可能根本不会做任何事情。 可以,但可能不会。
<img src="/" onerror='prompt(1)'">
【讨论】:
它针对一些 WAF 解析器,因此他们认为onerror
部分在 title
属性内,因此“无害”。以上是关于=_= 在 JavaScript 或 HTML 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Javascript或HTML在新窗口中打开链接[重复]
javascript_获取iframe框架中元素节点的属性值
如何在没有任何类名或 ID 的情况下使用 Javascript 或 JQuery 替换 HTML 标签