我有一个XSS案例,我想利用它作为概念的证明,但是有效载荷似乎只在粘贴时触发,而不是从URL触发。
基本上,我有一个搜索框,当粘贴在下面的XSS有效负载时会触发一个警报。
<img src=x onerror=alert(1)>
<noscript><p title="</noscript><img src=x onerror=alert(1)>">
但是,当单击search按钮并将GET
请求发送给/search?query=<payload>
时,负载似乎不会触发。
有谁知道为什么或者如何让它从URL中反映出来吗?这似乎相当奇怪,它只在粘贴时立即工作,而不是在提交之后。
更新:
以下片段来自搜索结果页源。搜索术语--也就是此场景中的有效负载--显示为正常,不需要任何消毒,但不会执行。
发布于 2021-09-08 21:56:02
我可以看到两种可能的情况:
请记住,在浏览器开发工具(在屏幕截图中)中看到的不是浏览器正在解析的原始源代码。这是预解析的代码,其中包括解码HTML实体(但仍然将它们作为文本处理)。您可以看出它是预解析的,因为它正在执行语法高亮和代码折叠。如果双击该h1
以编辑其内部HTML,或从脚本获取innerHTML
属性,您将看到<
字符是HTML编码的。如果您想实际查看源代码,您应该在“网络”选项卡中查看原始响应,使用拦截器代理查看原始源代码,或者只是实际使用浏览器的View特性(而不是检查/开发工具特性)。
https://security.stackexchange.com/questions/255036
复制相似问题