### 简要描述:
设计不当导致任意php文件删除
### 详细说明:
漏洞文件:global.php 好像是所有php文件都会调用该文件,该文件如下代码
```
//当cache_path值被提交过来的时候,删除对应的临时缓存文件
if(!empty($_POST['cache_path'])){
$cache_path=ROOT.PATH_CACHE.'/'.$_POST['cache_path'].'.php';
if(is_file($cache_path)){
unlink($cache_path);
}
}
```
可以看到此处对于POST传递参数cache_path并没有进行详细验证直接加上前缀路径和php后缀带入判断是否存在,当条件成立直接删除对应文件,此时只要构造cache_path相应参数值即可实现任意php文件删除,当成功实现截断时可升级为任意文件删除
### 漏洞证明:
此处自己搭建了一个环境,构造cache_path=../lock.inc%00 进行删除安装锁文件(删除后可实现程序重安装并进行getshell)
[<img src="https://images.seebug.org/upload/201509/041411307e2b061a064a1b00d784fd95d6d20840.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201509/041411307e2b061a064a1b00d784fd95d6d20840.png)
[<img src="https://images.seebug.org/upload/201509/0414113980fae843c0c241e3f9d519d61ca6e027.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201509/0414113980fae843c0c241e3f9d519d61ca6e027.png)
[<img src="https://images.seebug.org/upload/201509/041411519bdec480dad99703c41ed9ab72a4bd66.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201509/041411519bdec480dad99703c41ed9ab72a4bd66.png)
删除lock.inc后进行重安装getshell
[<img src="https://images.seebug.org/upload/201509/04142200c01c81912864e5a5f03360c57dae8940.png" alt="6.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201509/04142200c01c81912864e5a5f03360c57dae8940.png)
[<img src="https://images.seebug.org/upload/201509/04142245dcb1b2b5ac660c0fc8e8a220afa6ed95.png" alt="7.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201509/04142245dcb1b2b5ac660c0fc8e8a220afa6ed95.png)
暂无评论