首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反射DOM XSS Portswigger实验室

反射DOM XSS Portswigger实验室
EN

Security用户
提问于 2022-08-24 13:25:08
回答 1查看 214关注 0票数 1

我是一个完全初学者,我试图解决Portswigger学院的实验室。我现在正在学习XSS,我被困在某个地方。

实验室详细信息:该实验室演示了一个反射的DOM漏洞。当服务器端应用程序处理来自请求的数据并在响应中回显数据时,会出现反映出的DOM漏洞。然后,页面上的脚本以不安全的方式处理反射的数据,最终将其写入危险的接收器。**为了解决这个实验室问题,创建一个调用警报()函数的注入。//

因此,实验室上有一个JSON文件,它可以转义引号。有这样的回应:

{"results":[],"searchTerm":"test"}

为了减少这个空间,我做了这样的事情:

GET /search-results?search=\"alert(1)}//

对此的回应是:

"results":[],"searchTerm":"\\" alert(1)}//"}

一切都很好。我逃过了引号。我曾经想过,如果我在搜索框上输入\"alert(1)}//这个词,我可以解决这个实验室的问题,但是它不起作用。解决这个实验室问题的唯一方法是\"+alert(1)}// or \"-alert(1)}//

但是为什么我们需要这个+-符号呢?

EN

回答 1

Security用户

回答已采纳

发布于 2022-08-24 14:20:54

这是因为您在JavaScript对象中的字符串上下文中。因此,您需要将字符串保持在正确的格式中,才能执行有效负载。通过包括+或-您确保字符串不会中断。

加法是连接字符串的正确方法。使用void函数对字符串进行连接会导致将字符串“未定义”添加到原始字符串中,并为其添加一个有效语句。

破折号或减号从字符串中减去,在JavaScript中这会导致NaN,因此也允许。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/264329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档