PHP-代码审计-文件删除

概述

  • 文件删除漏洞出现在文件管理功能的应用上比较多,这些应用一般也都有文件上传和读取的功能,删除原理漏洞原理跟文件读取漏洞差不多,利用的函数不一样而已

函数

  • 常出现的函数是unlink()

挖掘经验

  • 直接搜索带有参数变量的unlink(),依然采用回溯的方式即可

代码分析

任意文件删除分析

if($action=='delete'){
	if(is_array($filenames)){
		foreach($filenames as $filename){
		 if fileext($filename)=='sql'{
		 @unlink('../databack/'.$filename)
}
		}

}else{
	if(fileext($filenames)=='sql'){
	$filenamearray=explode(".sql",$filenames);
		@unlink('../../databack',$filenames);
		@unlink('../../databack/sql/metinfo_'.$filenamearray[0].".zip");
		
}else{
//如果不是sql文件,直接删除
	@unlink('../../databack/'.$fileon.'/'.$filenames);

}
}


  • 这段代码首先判断action参数值是否是delete。如果是就进入文件删除功能,在代码:
if(fileext($filenames)=='sql'){
  • 判断如果不是sql文件后,就直接在databack目录删除提交的文件名,代码$filenames函数从get中提交,只要请求
/recover.php?&acrion=delete&action=delete&filenames=../../index.php
  • 即可删除index.php文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值