由于双引号不同,XSS 有效负载未执行
XSS payload not executing because of different double quote
我正在对一个网站进行渗透测试,我试图通过其中一个输入参数执行存储的 xss 负载。应用程序在客户端有特殊情况验证,所以我在 Burp 中拦截了请求并在输入参数中添加了 %22(这是一个双引号 ")。
现在的问题是,当页面用我注入的双引号反映这个输入参数时,它看起来不像是普通的双引号 (")。相反,它看起来像是斜体。这是它现在在浏览器中的样子 (”) 但我希望它看起来像 (”)
这里可能发生了什么?为什么我的双引号在反射回来时在浏览器中看起来像这样”?
感谢您的帮助。
谢谢
What could be going on here?
好吧,没有看到源代码,我们只能猜测。这可能是开发人员在服务器端编码输出的方式。就像我们经常将 "
转换为 "
以防止 XSS 一样,他们可能正在做一些事情,如果右边有 space ,他们会将其转换为 ”
,并且“
如果左边有一个 space 来创建 "fancy" 引号。
我会尝试这样的有效负载:
test%22%20test
- test" test
- 是否更改为收盘价?
test%20%22test
- test "test
- 是否更改为开报价?
%22te%22st%22
- "te"st"
- 中间引号怎么了?行为上有什么不同吗?
test%22%0atest
- test"\ntest"
- 使用换行符有什么改变吗?
test%5c%22test
- test\"test"
- 反斜杠改变了什么?
%22%22%22%22%22%22%22%22
- """"""""
- 哪些引号被编码了?如果我使用 more/less 引号会发生什么。 odd/even。等等
这在某种程度上取决于这些问题的答案,但如果所有引号都经过编码(无论它们是否变成花哨的 unicode 引号或是否变成 "e;
),那么可能根本无法获得XSS 如果你在字符串中 "trapped".
将来,包含 HTML 输出(必要时匿名)可能会有所帮助。
我正在对一个网站进行渗透测试,我试图通过其中一个输入参数执行存储的 xss 负载。应用程序在客户端有特殊情况验证,所以我在 Burp 中拦截了请求并在输入参数中添加了 %22(这是一个双引号 ")。
现在的问题是,当页面用我注入的双引号反映这个输入参数时,它看起来不像是普通的双引号 (")。相反,它看起来像是斜体。这是它现在在浏览器中的样子 (”) 但我希望它看起来像 (”)
这里可能发生了什么?为什么我的双引号在反射回来时在浏览器中看起来像这样”? 感谢您的帮助。
谢谢
What could be going on here?
好吧,没有看到源代码,我们只能猜测。这可能是开发人员在服务器端编码输出的方式。就像我们经常将 "
转换为 "
以防止 XSS 一样,他们可能正在做一些事情,如果右边有 space ,他们会将其转换为 ”
,并且“
如果左边有一个 space 来创建 "fancy" 引号。
我会尝试这样的有效负载:
test%22%20test
-test" test
- 是否更改为收盘价?test%20%22test
-test "test
- 是否更改为开报价?%22te%22st%22
-"te"st"
- 中间引号怎么了?行为上有什么不同吗?test%22%0atest
-test"\ntest"
- 使用换行符有什么改变吗?test%5c%22test
-test\"test"
- 反斜杠改变了什么?%22%22%22%22%22%22%22%22
-""""""""
- 哪些引号被编码了?如果我使用 more/less 引号会发生什么。 odd/even。等等
这在某种程度上取决于这些问题的答案,但如果所有引号都经过编码(无论它们是否变成花哨的 unicode 引号或是否变成 "e;
),那么可能根本无法获得XSS 如果你在字符串中 "trapped".
将来,包含 HTML 输出(必要时匿名)可能会有所帮助。