返回 登录
0

代码审计之突破路径限制删除文件

0x01 前言:
最近比较流行审计代码
0x02 开头:
在删除某套系统的时候,发现可控参数进入了unlink函数,给我的第一感觉就是任意文件删除

[p=40, null, left][color=rgb(0, 0, 0)][font=微软雅黑, tahoma, arial]public function delupload(){
[Math Processing Error]_GET[‘action’]) ? [Math Processing Error]filename=isset([Math Processing Error]_GET[‘filename’] : null;
[Math Processing Error]filename);
[Math Processing Error]filename,’.’);
[Math Processing Error]filename,’/’);
if([Math Processing Error]filename)){
[Math Processing Error]filename;
[Math Processing Error]filename);
[Math Processing Error]size[‘mime’]);
if([Math Processing Error]filename);
exit;
}[/font][/color][/p][p=40, null, left][color=rgb(0, 0, 0)][font=微软雅黑, tahoma, arial]

复制代码

0x03 分析:
调用了unlink函数来删除文件
unlink([Math Processing Error]filename
[Math Processing Error]_GET[‘filename’]) ? $_GET[‘filename’] : null;
则是从GET进入的,可控

不过他这里进行了过滤,防止删除其他目录的文件
把../过滤掉了,防止跳转目录
清空了两边的 . 和 /
[Math Processing Error]filename);
[Math Processing Error]filename,’.’);
[Math Processing Error]filename,’/’);
0x04 突破:

评论