0x00 前言
临时更一篇,这篇文章本不在更新计划中,直到上周有师傅留言:

其实我那篇文章中有简单提到过:

但是我没细讲,给出的payload也只是弹窗和打印,没有什么太大危害:

所以如果大家想要危害比较大的,比如获取cookie,那么请看下文。
0x01 正文
在模板字面量中,使用如下的格式包裹变量:
let expression = 'test';
`string ${expression} string;`

也就是形如${}的形式,在大括号中包裹变量,这样就能将变量插入到字符串中。
下面这段payload就是我上文给留言区师傅的那个:
console.log`${document.cookie}`
效果:


至于为什么会有一个多余的数组,读者朋友如有兴趣可自查MDN文档,这不是本文重点所以掠过(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals):

这也是为什么alert弹不出内容的原因:
alert`${document.cookie}`

所以我这里只建议使用console.log打印cookie,另外包括变量用到的$和{}也同样不会被转义,这里我依然用上文用到的php经典函数htmlspecialchars给大家演示:


至于更多的payload就需要大家自行构造了,我这里就不多余写了。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















请登录后查看评论内容