【代码审计】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/admin/controller/Database.php 第203-219行:
- public function downFile() {
- $file = $this->request->param('file');
- $type = $this->request->param('type');
- if (empty($file) || empty($type) || !in_array($type, array("zip", "sql"))) {
- $this->error("下载地址不存在");
- }
- $path = array("zip" => $this->datadir."zipdata/", "sql" => $this->datadir);
- $filePath = $path[$type] . $file;
- if (!file_exists($filePath)) {
- 10. $this->error("该文件不存在,可能是被删除");
- 11. }
- 12. $filename = basename($filePath);
- 13. header("Content-type: application/octet-stream");
- 14. header('Content-Disposition: attachment; filename="' . $filename . '"');
- 15. header("Content-Length: " . filesize($filePath));
- 16. readfile($filePath);
17. }
在这段函数中,参数file未经任何处理,直接进行参数拼接,然后下载,导致程序在实现上存在任意文件下载漏洞,可以构造参数下载服务器任意文件,如脚本代码,服务及系统配置文件等;可用得到的代码进一步代码审计,得到更多可利用漏洞。
0x02 漏洞利用
1、登录网站后台,构造url参数下载网站配置文件:
http://127.0.0.1/admin/Database/downFile.html?type=sql&file=..\\..\\app\\database.php
2、成功下载数据库配置文件,获取敏感信息内容
0x03 修复建议
1、在下载前对传入的参数进行过滤,直接将..替换成空,就可以简单实现防范的目的
2、最好还是可以对待下载文件类型进行二次检查,判断是否允许下载类型。
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。
【代码审计】CLTPHP_v5.5.3后台任意文件下载漏洞分析的更多相关文章
- 【代码审计】XYHCMS V3.5任意文件下载漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析
0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/i ...
- 【代码审计】ThinkSNS_V4 任意文件下载漏洞分析
0x00 环境准备 ThinkSNS官网:http://www.thinksns.com 网站源码版本:ThinkSNS V4 更新时间:2017-09-13 程序源码下载:http://www ...
- dzzoffice 任意文件下载漏洞分析
dzzoffice 任意文件下载 \updload\dzz\system\save.php第72行开始: elseif($_GET['do']=='move'){ $obz=trim($_ ...
- 【代码审计】CLTPHP_v5.5.3后台目录遍历漏洞分析
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...
- ThinkSnS v4后台任意文件下载漏洞
漏洞文件: /apps/admin/Lib/Action/UpgradeAction.class.php 主要问题还是出现在了180行直接将远程获取到的图片直接保存. 文中可见并没有做任何的对$dow ...
- 代码审计-(Ear Music).任意文件下载漏洞
0x01 代码分析 后台地址:192.168.5.176/admin.php admin admin 安装后的界面 在后台发布了一首新歌后,前台点进去到一个“下载LRC歌词”功能点的时候发现是使用re ...
- PHP代码审计笔记--任意文件下载漏洞
在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件. 0x01 客户端下载 常见于系统中存在文件(附件/文档等资源)下载的地方. 漏洞示例代码: ...
- Mlecms 反射型xss && 后台任意文件下载
应该算0day吧,自己分析出来的,有点鸡肋,不过小cms分析确实比较简单. xss地址:search.php?word=a><img+src=1+onerror=alert`1`>a ...
随机推荐
- CentOS的Gearman安装
背景:用PHP做一些简单的上传是没有任何的问题,但是要做断点上传好像也是没有大问题,但要是并发的切片加断点上传可能就会有问题了哟.第一个问题是合并问题:如果一上传就合并,PHP老半天不返回是一个方面( ...
- node学习笔记8——发布npm包
1.注册一个npm账号: 2.在控制台输入 npm login: 依次输入你的账号信息,可通过 npm whoami 来验证是否登录成功 3.初始化包,控制台输入 npm init: 完成之后,可以看 ...
- Sword STL仿函数示例
一元函数 unary_function .有返回值. .只有一个参数. template <class Arg, class Result> struct unary_function { ...
- USB学习笔记连载(十六):USB数字签名
转载:http://blog.chinaaet.com/crazybingo/p/34487 曾记得在最开始安装驱动程序的时候出现过这个错误....但是最近我在别的电脑安装的时候又不出现这个错误了.. ...
- Axiom3D:Ogre中Mesh网格分解成点线面。
这个需求可能比较古怪,一般Mesh我们组装好顶点,索引数据后,直接放入索引缓冲渲染就好了.但是如果有些特殊需要,如需要标注出Mesh的顶点,线,面这些信息,以及特殊显示这些信息. 最开始我想的是自己分 ...
- Java如何使用线程解决生产者消费者问题?
在Java编程中,如何使用线程解决生产者消费者问题? 以下示例演示如何使用线程解决生产者消费者问题. package com.yiibai; public class ProducerConsumer ...
- JUnit注解
在本节中,我们将提到支持在JUnit4基本注释,下表列出了这些注释的概括: 注解 描述 @Testpublic void method() 测试注释指示该公共无效方法它所附着可以作为一个测试用例. @ ...
- e829. 获得和设置JTabbedPane 的卡片
// To create a tabbed pane, see e828 创建JTabbedPane // Get the index of the currently selected tab in ...
- CI框架 -- 核心文件 之 Exceptions.php
使用CI框架,我们通常使用一下三个函数处理错误: show_error('消息' [, int $status_code = 500 ] ) show_404('页面' [, 'log_error'] ...
- 导入Maven项目后,Eclipse提示“Missing artifact ”类的错误
导入Maven项目后,Eclipse提示“Missing artifact ”类的错误 标签: Maven Missing art 2016-08-15 16:05 679人阅读 评论(0) 收藏 举 ...