<
DedeCMS_SP2文件上传漏洞
>
上一篇

java自定义通信协议及利用
下一篇

XSS-Payload+姿势

DedeCMS_SP2文件上传漏洞

某天还是像往常一样刷下每天的漏洞,看到一篇比较新的文章http://www.iwantacve.cn/index.php/archives/88/,dedecms文件上传,深入看了下漏洞分析过程,但是文章并没有提到对代码问题的一些披露。于是兴趣驱使下,下载了源码先进行复现与代码审计一番。

根据原文,出现问题的页面发生在内容中心的图片上传处select_images_post.php页面,

下载源码找到select_images_post.php。代码如下:

img

仔细看下来之后你会发现,此处对图片上传的处理非常简单,只对上传的文件的名中出现的特殊字符进行了简单替换(使用pre_replace),而对文件的后缀此处并没有做过多的严格限定。代码位置如下:

img

对整个文件名的处理在经第一次的pre_replace处理后pre_match正则匹配文件名中是否存在jpg、png、gif的判断处理,发现文件名字只要在列表中存在就可被绕过,也不是特别严格。代码如下:

img

img

对漏洞再一次复现:

img

img

漏洞的原因大概是如此此了。但是关于此漏洞的代码问题出现的应该不止一处图片上传处在其他引用上传的地方应该还存在。

对代码继续分析研究下,对dialog目录下的代码挨个看了下,很容易发现了对于多媒体文件的上传大部分都引用了select_soft_post.php这个文件。

img

打开select_soft_post.php,仔细一看果然,同样的上传文件处理操作2333。

img

于是对此测试了下对上面进行个补充。如下图:

img

复现

img

上传成功。

PS1:此处的payload与图片上传有些不大一样,filename=xx.rar.p*hp后缀小写无法进行绕过,无法成功上传,但是xx.rar.P*hp后缀大小写混合或大写可以成功上传。

PS2:测试发现只有后台可以利用2333.

img

但是上传成功后利用时发现对php后缀的大小写问题对php版本有限制。发现默认php-nts-Apache无法直接被解析,有点小限制。具体如下:

imgimgimg

Top
Foot