[PHP] EDBID:36372中上传漏洞源代码分析

来源:互联网 发布:centos apache公网ip 编辑:程序博客网 时间:2024/05/16 22:16
WordPress Theme DesignFolio Plus 1.2 - Arbitrary File Upload Vulnerability

漏洞编号为:EDBID:36372;OSVDB:119623

漏洞文件存在于路径DesignFolio-Plus-master\admin\upload-file.php

<?php//Upload Security$upload_security = md5($_SERVER['SERVER_ADDR']);//当前运行脚本所在的服务器的IP地址,并将其转换成md5散列值。$uploaddir = base64_decode( $_REQUEST['upload_path'] ) . "/";//获得上传路径,并进行base64解码if( $_FILES[$upload_security] ):$file = $_FILES[$upload_security];$file = $uploaddir . strtolower(str_replace('__', '_', str_replace('#', '_', str_replace(' ', '_', basename($file['name'])))));//处理客户端文件的名称//首先将名称中的[空格],替换为下划线(_)//其次将#替换为下划线(_)//最后将双下划线替换为(_)//strtolower将字符串转化为小写if (move_uploaded_file( $_FILES[$upload_security]['tmp_name'], $file))://上面的例子在服务器的PHP临时文件夹创建了一个被上传文件的临时副本。//这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置if(chmod($file,0777))://设置文件所有者,群组以及其他用户都具有读写执行权限    echo "success"; else:echo "error".$_FILES[$upload_security]['tmp_name'];endif;else:    echo "error".$_FILES[$upload_security]['tmp_name'];endif;endif;//可见这段代码没有对上传文件做任何安全性检查//这段代码的if代码块没有用常用的大括号,而是利用了endif,值得注意。?>


0 0
原创粉丝点击