【问题标题】:is this a xss attack,why it is invalid?这是xss攻击,为什么无效?
【发布时间】:2013-04-02 09:36:08
【问题描述】:

为了测试 xss 攻击,我有以下代码:

<html>
    <head><title>test xss</title></head>
    <body>
       <input type="text" id="my_user_name_show" value="">
       <script>
           var s = '"/><script>alert(\'xss\');</script><br class="';
           document.getElementById('my_user_name_show').value= s;
       </script>
    </body>
</html>

为什么代码不能触发警报(xss)?

【问题讨论】:

    标签: xss


    【解决方案1】:

    当实际的 HTML 改变时,必须从后端触发对输入表单值的 XSS 攻击,从而导致

     <input type="text" id="my_user_name_show" value=""/>
     <script>alert('xss');</script>
     <br class="">
    

    要写,这显然会导致它触发警报。另一方面,您的代码只会导致

    <input type="text" id="my_user_name_show" value="\"/><script>alert('xss');</script><br class=\"">
    

    被放置在 DOM 中,因此不会引起任何警报,因为没有脚本元素被添加到 DOM。

    【讨论】:

    • so 在这个例子中,字符串 s 的哪种形式会引起警报。我有那个 var s = '\"\/>
    • 这不是关于字符串,而是关于它在代码中的放置方式。您不能(实际上)通过 javascript 引发 XSS 攻击(您可以通过 innerHTML,但这种情况很少见)。
    • 这样关闭输入标签并生成脚本标签不就行了吗?
    • 如果我使用模板,例如 ,并通过从服务器返回的字符串动态填充 value 属性,会不会引起xss攻击?
    • 如果它通过javascript并且你使用value属性,那么不,你不能引起xss攻击。 (只有在你使用 innerHTML 或按照 eval 的方式做某事时,你才会处于危险之中)
    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2011-02-16
    相关资源
    最近更新 更多