代码审计 | DedeCMS v 5.7 sp2 RemoveXSS bypass

访客5年前黑客文章643

  DedeCMS 简称织梦CMS,当前最新版为 5.7 sp2,最近又去挖了挖这个CMS,发现过滤XSS的RemoveXSS函数存在缺陷导致可以被绕过。

  源码信息:DedeCMS-V5.7-UTF8-SP2

  漏洞类型:反射型XSS

  下载地址:http://www.dedecms.com/products/dedecms/downloads/

  漏洞文件:/include/helpers/filter.helper.php

  1.先查看/include/helpers/filter.helper.php文件,其中的RemoveXSS函数,其中代码如下:

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  2.过滤的大概流程是,前面先把例如十进制和十六进制的()这种编码,转换回原来的字符,后面就是根据$ra1和$ra2里的黑名单进行过滤替换,例如javascript:alert(1)会被过滤成 javascript:alert(1);

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  3.如果这个时候,我输入的内容是

  4.url解码得到

  5.这个时候进去RemoveXSS,进行之一次处理,也就是把()这种编码,转换回原来的字符,得到

  6.后面的过滤步骤就是黑名单过滤了,然而javascript并不在黑名单之内,所以不会过滤,最后就是输出内容了;

  7.这个时候输出t在标签的属性里面会重新还原成字母t,所以最后会在html输出javascript:alert(1);

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  8.下面是测试效果图:

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  1.我画了草图,两次和一次编码的区别如下:

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  2.另外后面的代码会根据黑名单生成正则表达式,我拿其中一个测试,这段代码会生成正则表达式:

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  3.根据生成的其中一条正则表达式,可以看出,他应该是匹配javascript之间有没有恶意字符防止绕过,例如j

  avascript会被匹配到

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  4.正则匹配的是恶意字符之间的#,以分号结尾,但是有一点要注意的就是

  等于 糙 ,不需要分号结尾也是可以的,例如,不加分号正则就匹配不到,但是效果也是一样的,也是可以弹窗。

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  5.还有一个问题,就是织梦的正则匹配[xX]0{0,8}([9ab]); ,注意{0,8},大概是八位左右,如果我超过八位,就算加上分号过滤器也匹配不到,正好十六进制格式的时候可以有很多0,足够超过八位了,例如:

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  漏洞挖挖总还是有的,织梦的XSS过滤器有三个问题:

  1.两次编码的时候,正则和黑名单就没软用了;

  2.黑名单匹配的时候,正则无法匹配到没有分号结尾的编码;

  3.也是黑名单匹配的时候,匹配编码字符大概在0-8个字符之内,但是十六进制可以超过八个字符,这个时候也无法匹配。

  *本文作者:q601333824,转自 FreeBuf

  ,不需要分号结尾也是可以的,例如,不加分号正则就匹配不到,但是效果也是一样的,也是可以弹窗。

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  5.还有一个问题,就是织梦的正则匹配[xX]0{0,8}([9ab]); ,注意{0,8},大概是八位左右,如果我超过八位,就算加上分号过滤器也匹配不到,正好十六进制格式的时候可以有很多0,足够超过八位了,例如:

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  DedeCMS v 5.7 sp2 RemoveXSS bypass

  漏洞挖挖总还是有的,织梦的XSS过滤器有三个问题:

  1.两次编码的时候,正则和黑名单就没软用了;

  2.黑名单匹配的时候,正则无法匹配到没有分号结尾的编码;

  3.也是黑名单匹配的时候,匹配编码字符大概在0-8个字符之内,但是十六进制可以超过八个字符,这个时候也无法匹配。

  *本文作者:q601333824,转自 FreeBuf

相关文章

如何共享老公微信聊天记录(怎么查别人手机微信聊天记录)

如何共享老公微信聊天记录(怎么查别人手机微信聊天记录)微信已经成为了我们日常生活中必不可少的一款社交软件了,现在基本上所有智能手机上都装了这个软件,那么有时候手机设置密码了,或者是微信密码忘了我们又收...

真正免费的交友软件app(真正免费的交友软件有哪些?上海)

真正免费的交友软件app(真正免费的交友软件有哪些?上海)

本文导读目录: 1、交友软件哪个好用而且还是免费的? 2、什么交友软件是免费的? 3、免费的交友软件哪个比较好? 4、现在有哪些不收费的交友平台? 5、不要钱的交友软件有哪些? 6...

微信m,黑客去那找,找黑客帮忙费用

用’or’='or’来登陆此外,构成绑架的缝隙现已得到合理的修正,新版ROM发布也现已超越4个月。 跟着安全研讨者的攻防研讨以及官方的注重,实践能进犯的精灵无人机也会越来越少。 cpe:/a:cisc...

电脑报错(dns故障怎么处理)

电脑报错(dns故障怎么处理) 电脑开机报错故障是指电脑开机自检时或启动操作系统前电脑停止启动,显示屏上出现一些错误提示的故障。 开机报错故障的原因有以下几点。 硬件设备不能正常工作; 硬盘的...

网上是怎么查别人的开房记录的?

. 孕妇喜欢吃酸的辣的食物,有助于缓解孕妇,刺激味蕾和食欲,对于喜欢吃辣的孕妇做几个开胃辣菜,既补充营养,又可以满足的口味需求,那么孕妇爱吃辣怎么办?下面友谊长存小编带来介绍。 孕妇爱吃辣怎么办?...

黑客木马制作(黑客技术怎么制作木马)

黑客木马制作(黑客技术怎么制作木马)

本文目录一览: 1、木马怎样制作 2、如何制造木马病毒 3、怎么做木马 4、怎么制作自己的木马?? 攻击 5、如何制造木马 6、木马的制作 木马怎样制作 楼主您好,最简单的方法就...