zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

      源代码:

    可以看到是用htmlspecialchars 对get参数message进行处理,但是他默认不对单引号进行处理的。

    只对预定义的字符进行处理:

    • & (和号)成为 &
    • " (双引号)成为 "
    • ' (单引号)成为 '
    • < (小于)成为 <
    • > (大于)成为 >
    它的语法如下:
    htmlspecialchars(string,flags,character-set,double_encode)

        其中第二个参数flags需要重要注意,很多开发者就是因为没有注意到这个参数导致使用htmlspecialchars()函数过滤XSS时被绕过。因为flags参数对于引号的编码如下:

     可用的引号类型:

    • ENT_COMPAT - 默认。仅编码双引号。
    • ENT_QUOTES - 编码双引号和单引号。
    • ENT_NOQUOTES - 不编码任何引号。
    默认是只编码双引号的!默认只编码双引号!默认只编码双引号……重要的事情说三遍!!!

     如果我们的源码是:htmlspecialchars($message, ENT_QUOTES),

    这个时候才用我们的payload 就不行了,单引号被转义了。

    payload:

    输入: ' onclick='alert(111)'       点击触发xss

    输入:' onmouseover='alert(1)      触发xss

    输入:  ' onmouseover='javascript:alert(1)'   触发xss

  • 相关阅读:
    【JSP】jQuery Deferred exception successed is not defined
    onclick事件传递变量参数&拼接字符串
    JQuery
    设计模式
    拖拽-原型继承案例
    继承
    原型
    闭包
    promise
    jsonp
  • 原文地址:https://www.cnblogs.com/kuaile1314/p/11373374.html
Copyright © 2011-2022 走看看