android 删除文件 代码_代码审计之某系统后台存在任意删除文件
![](/assets/blank.gif)
本文作者:霾
团队交流群:673441920
-----------------------------------------------------------
前言
POC镇楼!!!
POST
漏洞演示过程:
首先我们利用D盾监听下我们的项目以外的目录。
![](/assets/blank.gif)
这里刚刚我们创建了这个文件现在我们要从CMS去删除他。
![](/assets/blank.gif)
随便找了一个目录去点击,然后我们用burp去抓包。
![](/assets/blank.gif)
我们去修改下fname这个参数再去删除
![](/assets/blank.gif)
这里可以看到我们的文件和文件夹都给删除了。
漏洞审计:
路径:controladmin_filemanager.php
![](/assets/blank.gif)
第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
![](/assets/blank.gif)
第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去吧字符串过滤掉。
![](/assets/blank.gif)
android 删除文件 代码_代码审计之某系统后台存在任意删除文件相关推荐
- java代码审计文件包含_代码审计--一道简单的文件包含题目的多种利用方式
不知出自哪次CTF 前言: 本萌新最近在学习代码审计, 有一天在水群聊到代码审计如何学习, 然后某dalao丢给我一道题,说你对这题有什么看法, 本萌新一看,这不是很简单吗,想也没多想就直接上去?fi ...
- 安装java失败删除不掉_问题8:Java程序安装却删除不了怎么办?
大家在使用手机的时候,通常都会遇到这么一个问题:我的手机安装了程序,怎么想删却删不掉呢?又或者是程序删掉了,图标删不掉.类似的情况再很多平台的手机上都可能出现,今天我们就针对这个问题,给大家介绍一下简 ...
- xml文件打开_利用XML的力量来打开Financial Exchange文件
xml文件打开 我的银行为我作为财务程序员和簿记员提供了非常有用的服务:我可以下载一个小文件,其中列出了在规定的时间段内我的一个帐户中的交易. 该文件包含帐户名称和号码: 是支票,储蓄或其他帐户类型: ...
- java8 监控文件变化_[Java 8] (4) 列举目录下的所有文件和监视文件变化
列举目录中的所有文件 首先给出代码: Files.list(Paths.get(".")).forEach(System.out::println); Files.list方法得到 ...
- mfc 监控文件操作_实战经验:使用CFileDialog实现多个文件选择
问题 最近需要实现文件选择的功能,要求是需要弹出系统标准的文件选择对话框,另外,允许用户选择多个文件. 解决方法 MFC中有一个类CFileDialog就是用来做这件事的,而且功能还挺丰富,今天只是使 ...
- 苹果笔记本怎么找文件夹_如何在苹果笔记本中找出 “~/Library/Preferences/” 文件夹?...
一.iPhone访问限制密码找回教程(未越狱) 1.打开iTools,在左侧菜单栏找到"文件系统",依次打开/private/var/keychains/,在keychains文件 ...
- u盘无法复制文件进去_只需一招,禁止Windows复制文件到U盘,再也不用担心你的资料被拷走!...
现在,我们日常的生活和工作都是电脑全程陪伴,可以说是离不开电脑了. 也正是因为电脑的功能那么多,而且在保存资料方面,相比纸质资料来讲,确实有十分大的优势! 因此,有许多人都会将一些重要的个人资料或者是 ...
- mac 电脑资源库文件夹_如何在Mac上找到您的资料库文件夹
mac 电脑资源库文件夹 When fixing problems on a Mac, sometimes you need to roll up your sleeves and directly ...
- go 清空文件内容_回收站不小心清空后怎么恢复里面文件
日常操作中常用的操作中,对于一些不重要不想要的文件会临时删除,也有删除错误想找回的,怎么办呢,也有人为了电脑运行速度快习惯性经常性的清除一下电脑垃圾,一不小心就可能把其他的文件删了,相信电脑高手要找回 ...
最新文章
- linux centos 查看桌面环境
- php 时间函数详解,PHP时间函数date()详解
- 【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )
- 总结基于ArcGIS Server 9.2 Dot Net ADF的WebGIS项目部署问题
- 如何理解java中String的不可变性
- html5导航菜单置顶,jQuery和css3顶部固定导航菜单特效插件
- 盘点中国互联网行业10年2万多起投融资,17年投融资形势走向何处
- oracle dba create view 失败 解决办法
- 简单python爬虫案例(爬取慕课网全部实战课程信息)
- 在ASP.NET应用启动的时候初始化的几种方法
- hello程序代码python_翻译:《实用的Python编程》01_02_Hello_world
- win10等系统安装Pads安装步骤及软件卡死问题解决
- maya2018 + VS2017 C++编译环境搭建
- Maya---之viewcube的寻找
- 徐海学院计算机系朗诵比赛,第九届礼仪文化月之校园礼仪小姐礼仪先生评选决赛...
- 离散数学-集合论-关系的概念、表示和运算(7)
- 爪哇国新游记之十七----肺腑之言
- SecureBoost: A Lossless Federated Learning Framework论文笔记
- 聋人大学生终于开通了CNSD博客,CNSD在这里记录自己成长
- ARKit之路-Depth API
热门文章
- 计算机网络——码元,波特,速率和带宽
- Leetcode--33. 搜索旋转排序数组
- python调用jar 性能_亲自有效---python 调用jar
- springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题
- java中如何声明外键约束,外键约束不正确 - java-mysql
- oauth2.0 php简化模式,OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)
- php width,PHP imagefontwidth()用法及代码示例
- python 求最大值实例_Python 求数组局部最大值的实例
- visual studio如何中止正在运行的程序
- matlab图像边缘检测分析