700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android 删除文件 代码_代码审计之某系统后台存在任意删除文件

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

时间:2019-07-02 11:31:31

相关推荐

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

本文作者:霾

团队交流群: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去吧字符串过滤掉。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。