漏洞描述

JunAMS是一款以ThinkPHP为框架的开源内容管理系统。 JunAMS内容管理系统存在文件上传漏洞,攻击者可利用该漏洞上传webshell,获取服务器权限。 后台路径 /admin.php admin:admin
 
 

影响版本

JunAMS junAMS 1.2.1.20190403
 
 

漏洞复现

前台没有上传功能,进入后台,访问后台 账号admin密码admin




点击系统设置->版本设置->图片上传



burp进行抓包,可以看到有上传功能



分析common方法中的add_images函数
 
 

$info获取文件详情,并经过move函数处理,追踪下move()函数



发现上传,追踪check()函数




check函数中检查了文件类型、后缀和图像文件,依次追踪,首先来看checkMime()




直接将传入的类型与获取到的类型做对比,未做过滤,继续看checkExt()




后缀类型也没有限制,看下checkImg()




这里限制了当上传的后缀为'gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf'时,文件内容必须为图片,但是,当不是图片后缀时,内容没有限制

构造表单

<form enctype="multipart/form-data" action="http://localhost//admin.php/common/add_images.html" method="post"> 
<input type="file" name="file" size="50"><br> 

<input type="submit" value="Upload"> 
</form>



进行访问,得到存储的文件名



访问之后,无报错




蚁剑进行连接



获得后台shell