首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >XSS只在粘贴时触发。

XSS只在粘贴时触发。
EN

Security用户
提问于 2021-09-08 13:17:55
回答 1查看 221关注 0票数 0

我有一个XSS案例,我想利用它作为概念的证明,但是有效载荷似乎只在粘贴时触发,而不是从URL触发。

基本上,我有一个搜索框,当粘贴在下面的XSS有效负载时会触发一个警报。

代码语言:javascript
代码运行次数:0
运行
复制
<img src=x onerror=alert(1)>
代码语言:javascript
代码运行次数:0
运行
复制
<noscript><p title="</noscript><img src=x onerror=alert(1)>">

但是,当单击search按钮并将GET请求发送给/search?query=<payload>时,负载似乎不会触发。

有谁知道为什么或者如何让它从URL中反映出来吗?这似乎相当奇怪,它只在粘贴时立即工作,而不是在提交之后。

更新:

以下片段来自搜索结果页源。搜索术语--也就是此场景中的有效负载--显示为正常,不需要任何消毒,但不会执行。

EN

回答 1

Security用户

发布于 2021-09-08 21:56:02

我可以看到两种可能的情况:

  1. 这是由于浏览器URL-编码攻击强,而服务器没有解码它。这可能会以各种方式被击败(尝试其他浏览器,尝试通过JS或通过硬编码链接提交导航请求,而不是使用in按钮,尝试找到不需要任何字符编码的漏洞字符串,等等)。
  2. 实际的漏洞仅是基于页面上用户输入的基于DOM的XSS;易受攻击的代码不是解析来自URL或服务器的文本,至少不是以易受攻击的方式。在这种情况下,您可能无法利用它,除非使用自XSS,但值得仔细查看所讨论的代码,以了解发生了什么。可能有一个向量可以从其他地方命中易受攻击的代码路径,或者在处理反射代码(或URL,如果相关的话)时可能有一个易受攻击的代码路径,而您当前的漏洞字符串没有命中,但另一个代码路径会被攻击。

请记住,在浏览器开发工具(在屏幕截图中)中看到的不是浏览器正在解析的原始源代码。这是预解析的代码,其中包括解码HTML实体(但仍然将它们作为文本处理)。您可以看出它是预解析的,因为它正在执行语法高亮和代码折叠。如果双击该h1以编辑其内部HTML,或从脚本获取innerHTML属性,您将看到<字符是HTML编码的。如果您想实际查看源代码,您应该在“网络”选项卡中查看原始响应,使用拦截器代理查看原始源代码,或者只是实际使用浏览器的View特性(而不是检查/开发工具特性)。

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

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

复制
相关文章

相似问题

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