前言

随缘找的一个cms

关键过滤

对输入过滤

数据查询过滤

前台鸡助Getshell漏洞

利用过程

1、制作一个经过处理的图片马(绕过文件后缀名检测以后,php-GD对图片的渲染和处理会导致webshell代码错位失效,所以需要特殊的图片马进行绕过,图片马的制作)
2、image.png
image.png
3、爆出路径
image.png
这里可以看到上传成功了,后缀名也是对的
4、getshell
由于我制作图片马一直未成功,导致最后没有getshell。不过原理待会会分析

漏洞分析

这里一步一步的看代码,不过只看重点代码
image.png
image.png
image.png
image.png
image.png
image.png
image.png
这里我们只要上传xxxx.jpg.p%hp就能绕过,前面也能看到最后后缀为php, 继续分析。

image.png

image.png

漏洞修复

仅个人意见
1、处理的黑名单再完善一点
2、在检验一次黑名单之后,因为是全局处理,在正则之后,移动图片之前再过滤一遍黑名单。

后台getshell1

关键代码如下。


这里对传入的filename参数没有经过过滤,导致可以直接任意写(虽然经过addslashes)

利用过程





在本php页面钟直接包含此文件,达到getshell

利用效果

image.png

后台getshell2

漏洞起因

在/dede/stepslect_main.php

寻找利用点



此漏洞点与后台getshell1类似,也是写入到一个文件当中,但是这次写入的是一个php页面。恰好这个函数再/dede/stepslect_main.php中已经用箭头标出,getshell链出来了

利用过程



后台getshell3

在/plus/ad_js.php

可以看到这里从数据库取出数据,然后写入文件,写入文件有过滤,但是很水,可以绕过,而且注释掉了,可以绕过,payload。同样找到插入数据库的原处
在/dede/ad_add.php

利用过程



成功插入数据库
访问/plus/ad_js.php?nocache=1&aid=1

可以看到是phpinfo()3;写进去了,直接getshell



后台getshell4

利用过程

1、先首先构造一个文件名为1.jpg.php的文件,内容为<?php phpinfo();?>
然后压缩成zip包
2、在常用操作-文件式管理器处上传压缩文件到soft目录下
image.png
3、在/dede/album_add.php选择从zip中解压图片
image.png
4、getshell
image.png
image.png
image.png

漏洞分析

image.png
image.png
漏洞根源在preg_match匹配没做好,只匹配有.xxx即可,所以漏洞修复的话,emmm看着办吧。还有就是推荐一个在线运行php的好网站,适配很多php版本的:http://sandbox.onlinephpfunctions.com/
image.png

后台getshell5

漏洞分析及利用过程

在dede/sys_info.php





爆破dedecms后台目录

参考:奇技淫巧 | DEDECMS找后台目录
解决DEDECMS历史难题--找后台目录
这里就不细讲了,两篇文章讲的已经非常详细了,下面上两张测试成功的图

END

未完待续