隐藏的JavaScript有效负载

Ped*_*mer 5 javascript

我发现这个javascript非常奇怪,当我在我的控制台浏览器上运行它会给我一个警告,其中包含以下消息

'始终警惕包含引号的Javascript.没有报价=安全!'

我对此非常好奇(实际上甚至不知道这是否是一件事,对某些事情有用吗?)

如果你们中的任何一个人想分享关于这种"技术"的知识,我将非常感激!:)

for(A in {A:0}){alert(unescape(escape(A).replace(/u.{8}/g,[])))};
Run Code Online (Sandbox Code Playgroud)

Pet*_*son 7

这篇博文详细解释了这一点:https://www.stefanjudis.com/blog/hidden-messages-in-javascript-property-names/

这个片段的主要"技巧"是{A这里和这里之间有很多看不见的unicode字符:

{A:0}
Run Code Online (Sandbox Code Playgroud)

你可以看到他们的代码点,如下所示:

Object.keys({A:0})[0].split("").map(x => x.codePointAt(0))
// [65, 56128, 56684, 56128, 56695, 56128, 56673, 56128, 56697, 56128, 56691, 56128, 56608, 56128, 56674, 56128, 56677, 56128, 56608, 56128, 56695, 56128, 56673, 56128, 56690, 56128, 56697, 56128, 56608, 56128, 56687, 56128, 56678, 56128, 56608, 56128, 56650, 56128, 56673, 56128, 56694, 56128, 56673, 56128, 56691, 56128, 56675, 56128, 56690, 56128, 56681, 56128, 56688, 56128, 56692, 56128, 56608, 56128, 56675, 56128, 56687, 56128, 56686, 56128, 56692, 56128, 56673, 56128, 56681, 56128, 56686, 56128, 56681, 56128, 56686, 56128, 56679, 56128, 56608, 56128, 56689, 56128, 56693, 56128, 56687, 56128, 56692, 56128, 56677, 56128, 56691, 56128, 56622, 56128, 56608, 56128, 56654, 56128, 56687, 56128, 56608, 56128, 56689, 56128, 56693, 56128, 56687, 56128, 56692, 56128, 56677, 56128, 56691, 56128, 56608, 56128, 56637, 56128, 56608, 56128, 56691, 56128, 56673, 56128, 56678, 56128, 56677, 56128, 56609]
Run Code Online (Sandbox Code Playgroud)