Lab: [expert]Reflected XSS in a JavaScript URL with some characters blocked:JavaScript URL 中的反射型 XSS,其中一些字符被阻止

该实验室在 JavaScript URL 中反映了您的输入,但并非所有内容都如此。这最初似乎是一个微不足道的挑战;但是,该应用程序正在阻止某些字符以防止XSS攻击。

要解决该实验室问题,请执行跨站点脚本攻击,该攻击alert使用消息1337中某处包含的字符串调用函数alert。

解析

访问以下 URL,替换your-lab-id为您的实验室 ID:

https://your-lab-id.web-security-academy.net/post?postId=5&%27},x=x=%3E{throw/**/onerror=alert,1337},toString=x,window%2b%27%27,{x:%27

实验室将得到解决,但只有在您单击页面底部的“返回博客”时才会调用警报。

  • 该漏洞利用异常处理来调用alert带参数的函数。使用该throw语句,以空白注释分隔,以绕过无空格限制。该alert函数被分配给onerror异常处理程序。

  • 作为throw语句,它不能用作表达式。相反,我们需要使用箭头函数来创建一个块,以便throw可以使用该语句。然后我们需要调用这个函数,所以我们将它分配给 的toString属性window并通过在 上强制进行字符串转换来触发它window。

posted @ 2021-08-25 10:46  Zeker62  阅读(134)  评论(0编辑  收藏  举报