【问题标题】:XSS payload not executing because of different double quote由于不同的双引号,XSS 有效负载未执行
【发布时间】:2019-03-07 02:42:55
【问题描述】:

我正在对一个网站进行渗透测试,我试图通过其中一个输入参数执行存储的 xss 有效负载。应用程序在客户端进行了特殊情况验证,所以我在 Burp 中截获了请求,并在输入参数中添加了 %22(这是一个双引号 ")。

现在的问题是,当页面用我注入的双引号反映这个输入参数时,它看起来不像常规的双引号 (")。相反,它看起来像斜体。这就是它的方式现在在浏览器中看起来(”),但我希望它看起来像(”)

这里会发生什么?为什么我的双引号在反射回来时在浏览器中看起来像这样? 任何帮助表示赞赏。

谢谢

【问题讨论】:

    标签: javascript xss penetration-testing


    【解决方案1】:

    这里会发生什么?

    好吧,没有看到源代码,我们所能做的就是推测。这可能是开发人员在服务器端编码输出的方式。就像我们经常将 " 转换为 " 以防止 XSS 一样,他们可能正在做一些事情,如果右侧有空格,他们会将其转换为 ”,如果右侧有空格,则将其转换为 “留下来创造“花哨”的报价。

    我会尝试这样的有效载荷:

    • 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 - """""""" - 哪些引号被编码了?如果我使用更多/更少的引号会发生什么。奇偶。等等。

    这在某种程度上取决于这些问题的答案,但是如果所有引号都被编码(无论它们是否变成花哨的 unicode 引号或它们是否变成&quote;),那么如果您是,则可能根本无法获得 XSS “被困”在一个字符串中。

    将来,包含 HTML 输出(必要时匿名)可能会有所帮助。

    【讨论】:

    • 格雷您好,感谢您的意见。我尝试了你所有的建议,看起来我无法摆脱束缚。在所有情况下,双引号都变成了花哨的引号。例如,奇数:TRY"""""""""""WITH 偶数:TRY""""""""""WITH。对于没有正确格式化我的评论,我深表歉意。我仍在努力适应格式。我非常感谢您的意见。虽然 XSS 没有成功,但我确实从输入中学到了东西。再次感谢
    • 感谢您的反馈!我很高兴它有帮助。当它看起来必须是一个漏洞时总是令人失望,但你就是无法让它发挥作用,哈哈。我从这样的游戏中学到了很多关于 XSS 的知识:alf.nu/alert1 - 非常好的练习,可以让你跳出框框思考(并学习一些新技巧)。祝你好运!
    • 是的,不幸的是我在这上面花了太多时间。非常感谢您提供的练习链接。
    猜你喜欢
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    相关资源
    最近更新 更多