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函数,其中代码如下:
2.过滤的大概流程是,前面先把例如十进制和十六进制的()这种编码,转换回原来的字符,后面就是根据$ra1和$ra2里的黑名单进行过滤替换,例如javascript:alert(1)会被过滤成 javascript:alert(1);
3.如果这个时候,我输入的内容是
4.url解码得到
5.这个时候进去RemoveXSS,进行之一次处理,也就是把()这种编码,转换回原来的字符,得到
6.后面的过滤步骤就是黑名单过滤了,然而javascript并不在黑名单之内,所以不会过滤,最后就是输出内容了;
7.这个时候输出t在标签的属性里面会重新还原成字母t,所以最后会在html输出javascript:alert(1);
8.下面是测试效果图:
1.我画了草图,两次和一次编码的区别如下:
2.另外后面的代码会根据黑名单生成正则表达式,我拿其中一个测试,这段代码会生成正则表达式:
3.根据生成的其中一条正则表达式,可以看出,他应该是匹配javascript之间有没有恶意字符防止绕过,例如j
avascript会被匹配到
4.正则匹配的是恶意字符之间的#,以分号结尾,但是有一点要注意的就是
等于 糙 ,不需要分号结尾也是可以的,例如,不加分号正则就匹配不到,但是效果也是一样的,也是可以弹窗。
5.还有一个问题,就是织梦的正则匹配[xX]0{0,8}([9ab]); ,注意{0,8},大概是八位左右,如果我超过八位,就算加上分号过滤器也匹配不到,正好十六进制格式的时候可以有很多0,足够超过八位了,例如:
漏洞挖挖总还是有的,织梦的XSS过滤器有三个问题:
1.两次编码的时候,正则和黑名单就没软用了;
2.黑名单匹配的时候,正则无法匹配到没有分号结尾的编码;
3.也是黑名单匹配的时候,匹配编码字符大概在0-8个字符之内,但是十六进制可以超过八个字符,这个时候也无法匹配。
*本文作者:q601333824,转自 FreeBuf
,不需要分号结尾也是可以的,例如,不加分号正则就匹配不到,但是效果也是一样的,也是可以弹窗。
5.还有一个问题,就是织梦的正则匹配[xX]0{0,8}([9ab]); ,注意{0,8},大概是八位左右,如果我超过八位,就算加上分号过滤器也匹配不到,正好十六进制格式的时候可以有很多0,足够超过八位了,例如:
漏洞挖挖总还是有的,织梦的XSS过滤器有三个问题:
1.两次编码的时候,正则和黑名单就没软用了;
2.黑名单匹配的时候,正则无法匹配到没有分号结尾的编码;
3.也是黑名单匹配的时候,匹配编码字符大概在0-8个字符之内,但是十六进制可以超过八个字符,这个时候也无法匹配。
*本文作者:q601333824,转自 FreeBuf
去角质还能有坏处?想必大多数人看到这个话题都会暂时的懵圈吧,毕竟大多人都认为定期地清理一下角质对肌肤是百利而无一害的,谁愿意自己的角质那么厚呢?但话又说回来了,去角质当然有好处,但如果使用方法不对,那...
昨日(6月24日)别的一个telegram channel泄露了一份muddyc3的源码并进行了相关拍卖。 装置metasploit的指令是sudo apt-get install metasploi...
本文导读目录: 1、黑客能不能查到关闭数据网络的手机号? 2、问一下,有朋友找黑客追踪定位过手机号吗?会不会被骗啊? 3、换了手机号黑客还能找到你吗 4、黑客可以根据手机号码确定位置吗?...
近几年来,活性炭与蜂窝状活性炭应用领域十分的广泛,其应用数量也在不断递增。它是由煤、木材与果壳等原料,经过炭化、活化和后处理而得。目前最为常见的有型活性炭、粉状活性炭、活性炭纤维与颗粒活性炭四种形状。...
珍珠粉是常见的护肤产品,很多人都会使用珍珠粉调和面膜来养护自己的肌肤,而提起珍珠粉的妙用,也会有人知道珍珠粉有美白的功效,那么珍珠粉真的可以美白吗? 事实上,珍珠粉只是珍珠表面的一层物质,...
十一长假即将到来,一大波“红色炸弹”将要超甜袭来。感受到假期的激动,也体会到钱夹的发抖!一想起逼婚团的文明礼貌问慰,和大中型撒狗粮当场的直播间,很多人都将婚礼邀请避而不见。这可愁坏掉新娘们,究竟怎样才...