本文作者:霾

团队交流群:673441920

-----------------------------------------------------------

前言

POC镇楼!!!

POST 

漏洞演示过程:

首先我们利用D盾监听下我们的项目以外的目录。

这里刚刚我们创建了这个文件现在我们要从CMS去删除他。

随便找了一个目录去点击,然后我们用burp去抓包。

我们去修改下fname这个参数再去删除

这里可以看到我们的文件和文件夹都给删除了。

漏洞审计:

路径:controladmin_filemanager.php

第158行,if(isset($this->post['currentdir']) && isset($this->post['fname'])),判断post中的currentdir是否有设置并且判断fname是否有设置。

第161行,if(!file_exists($fname)),判断文件或者目录是否存在。

第164行,if($this->post['isdir']== '0'),判断isdir的值是否等于0。

第165行,@unlink($fname);,删除文件。

第167行,else if($this->post['isdir'] == '1'),或者判断isdir的值是否等于1。

第168行,$str=$_ENV['dir']->dir_delete($fname);,进入自定义方法。

路径:modeldir.class.php

第46行,if(!is_dir($dir)) return FALSE;,判断是否是目录。

第47行,$systemdirs = array('', HDWIKI_ROOT.'control', HDWIKI_ROOT.'langzh', HDWIKI_ROOT.'data', HDWIKI_ROOT.'model', HDWIKI_ROOT.'view', HDWIKI_ROOT.'install', HDWIKI_ROOT.'js', HDWIKI_ROOT.'lib', HDWIKI_ROOT.'plugins', HDWIKI_ROOT.'block', HDWIKI_ROOT.'api', HDWIKI_ROOT.'lang', HDWIKI_ROOT.'ss');,声明自定义的路口

第48行,if(substr($dir, 0, 1) == '.' || in_array($dir, $systemdirs)) exit("Cannot remove system dir $dir !");,substr代表字符串切割并且等于.,或者判断数组是否存在值。

第49行,$dir=$dir."";,声明一个变量。

第50行,$list = glob($dir.'*'),glob代表返回匹配指定模式的文件名或目录。

第51行,foreach($list as $v),foreach循环。

第52行,is_dir($v) ? $this->dir_delete($v) : @unlink($v);,3元运算符,is_dir判断是否是目录,如果是目录那么就递归,如果不是目录那么就删除文件。

第54行,@rmdir($dir);,删除文件夹。

漏洞修复:

利用str_replace去吧字符串过滤掉。

android 删除文件 代码_代码审计之某系统后台存在任意删除文件相关推荐

  1. java代码审计文件包含_代码审计--一道简单的文件包含题目的多种利用方式

    不知出自哪次CTF 前言: 本萌新最近在学习代码审计, 有一天在水群聊到代码审计如何学习, 然后某dalao丢给我一道题,说你对这题有什么看法, 本萌新一看,这不是很简单吗,想也没多想就直接上去?fi ...

  2. 安装java失败删除不掉_问题8:Java程序安装却删除不了怎么办?

    大家在使用手机的时候,通常都会遇到这么一个问题:我的手机安装了程序,怎么想删却删不掉呢?又或者是程序删掉了,图标删不掉.类似的情况再很多平台的手机上都可能出现,今天我们就针对这个问题,给大家介绍一下简 ...

  3. xml文件打开_利用XML的力量来打开Financial Exchange文件

    xml文件打开 我的银行为我作为财务程序员和簿记员提供了非常有用的服务:我可以下载一个小文件,其中列出了在规定的时间段内我的一个帐户中的交易. 该文件包含帐户名称和号码: 是支票,储蓄或其他帐户类型: ...

  4. java8 监控文件变化_[Java 8] (4) 列举目录下的所有文件和监视文件变化

    列举目录中的所有文件 首先给出代码: Files.list(Paths.get(".")).forEach(System.out::println); Files.list方法得到 ...

  5. mfc 监控文件操作_实战经验:使用CFileDialog实现多个文件选择

    问题 最近需要实现文件选择的功能,要求是需要弹出系统标准的文件选择对话框,另外,允许用户选择多个文件. 解决方法 MFC中有一个类CFileDialog就是用来做这件事的,而且功能还挺丰富,今天只是使 ...

  6. 苹果笔记本怎么找文件夹_如何在苹果笔记本中找出 “~/Library/Preferences/” 文件夹?...

    一.iPhone访问限制密码找回教程(未越狱) 1.打开iTools,在左侧菜单栏找到"文件系统",依次打开/private/var/keychains/,在keychains文件 ...

  7. u盘无法复制文件进去_只需一招,禁止Windows复制文件到U盘,再也不用担心你的资料被拷走!...

    现在,我们日常的生活和工作都是电脑全程陪伴,可以说是离不开电脑了. 也正是因为电脑的功能那么多,而且在保存资料方面,相比纸质资料来讲,确实有十分大的优势! 因此,有许多人都会将一些重要的个人资料或者是 ...

  8. mac 电脑资源库文件夹_如何在Mac上找到您的资料库文件夹

    mac 电脑资源库文件夹 When fixing problems on a Mac, sometimes you need to roll up your sleeves and directly ...

  9. go 清空文件内容_回收站不小心清空后怎么恢复里面文件

    日常操作中常用的操作中,对于一些不重要不想要的文件会临时删除,也有删除错误想找回的,怎么办呢,也有人为了电脑运行速度快习惯性经常性的清除一下电脑垃圾,一不小心就可能把其他的文件删了,相信电脑高手要找回 ...

最新文章

  1. linux centos 查看桌面环境
  2. php 时间函数详解,PHP时间函数date()详解
  3. 【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )
  4. 总结基于ArcGIS Server 9.2 Dot Net ADF的WebGIS项目部署问题
  5. 如何理解java中String的不可变性
  6. html5导航菜单置顶,jQuery和css3顶部固定导航菜单特效插件
  7. 盘点中国互联网行业10年2万多起投融资,17年投融资形势走向何处
  8. oracle dba create view 失败 解决办法
  9. 简单python爬虫案例(爬取慕课网全部实战课程信息)
  10. 在ASP.NET应用启动的时候初始化的几种方法
  11. hello程序代码python_翻译:《实用的Python编程》01_02_Hello_world
  12. win10等系统安装Pads安装步骤及软件卡死问题解决
  13. maya2018 + VS2017 C++编译环境搭建
  14. Maya---之viewcube的寻找
  15. 徐海学院计算机系朗诵比赛,第九届礼仪文化月之校园礼仪小姐礼仪先生评选决赛...
  16. 离散数学-集合论-关系的概念、表示和运算(7)
  17. 爪哇国新游记之十七----肺腑之言
  18. SecureBoost: A Lossless Federated Learning Framework论文笔记
  19. 聋人大学生终于开通了CNSD博客,CNSD在这里记录自己成长
  20. ARKit之路-Depth API

热门文章

  1. 计算机网络——码元,波特,速率和带宽
  2. Leetcode--33. 搜索旋转排序数组
  3. python调用jar 性能_亲自有效---python 调用jar
  4. springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题
  5. java中如何声明外键约束,外键约束不正确 - java-mysql
  6. oauth2.0 php简化模式,OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)
  7. php width,PHP imagefontwidth()用法及代码示例
  8. python 求最大值实例_Python 求数组局部最大值的实例
  9. visual studio如何中止正在运行的程序
  10. matlab图像边缘检测分析