读者可参考、订阅专栏:Upload-Labs靶场攻防实战
Antsword蚁剑
蚁剑工具的使用可参考:
【网络安全】DVWA之File Upload—AntSword(蚁剑)攻击姿势及解题详析合集
正文
本关修改myupload.php中代码为下图:

后端逻辑代码:
<?php
include '../config.php';
include '../head.php';
include '../menu.php';
$is_upload = false;
$msg = null;
if (isset($_POST['submit']))
{
require_once("./myupload.php");
$imgFileName =time();
$u = new MyUpload($_FILES['upload_file']['name'], $_FILES['upload_file']['tmp_name'], $_FILES['upload_file']['size'],$imgFileName);
$status_code = $u->upload(UPLOAD_PATH);
switch ($status_code) {
case 1:
$is_upload = true;
$img_path = $u->cls_upload_dir . $u->cls_file_rename_to;
break;
case 2:
$msg = '文件已经被上传,但没有重命名。';
break;
case -1:
$msg = '这个文件不能上传到服务器的临时文件存储目录。';
break;
case -2:
$msg = '上传失败,上传目录不可写。';
break;
case -3:
$msg = '上传失败,无法上传该类型文件。';
break;
case -4:
$msg = '上传失败,上传的文件过大。';
break;
case -5:
$msg = '上传失败,服务器已经存在相同名称文件。';
break;
case -6:
$msg = '文件无法上传,文件不能复制到目标目录。';
break;
default:
$msg = '未知错误!';
break;
}
}
?>
<div id="upload_panel">
<ol>
<li>
<h3>任务</h3>
<p>上传一个<code>webshell</code>到服务器。</p>
</li>
<li>
<h3>上传区</h3>
<form enctype="multipart/form-data" method="post">
<p>请选择要上传的图片:<p>
<input class="input_file" type="file" name="upload_file"/>
<input class="button" type="submit" name="submit" value="上传"/>
</form>
<div id="msg">
<?php
if($msg != null){
echo "提示:".$msg;
}
?>
</div>
<div id="img">
<?php
if($is_upload){
echo '<img src="'.$img_path.'" width="250px" />';
}
?>
</div>
</li>
<?php
if($_GET['action'] == "show_code"){
include 'show_code.php';
}
?>
</ol>
</div>
<?php
include '../footer.php';
?>
可使用图片码绕过
上传一个含有 eval code 的gif文件:


打开图像连接获得图片路径:

靶场提供文件包含功能点:

于是可以利用文件包含实现命令执行:
POC:
http://localhost/upload-labs-master/include.php?file=upload/1692794817.gif&1=phpinfo();
回显如下:

该题也可使用条件竞争来完成
具体操作参考: 【网络安全】upload-labs Pass-18 解题详析
博客围绕Upload-Labs靶场攻防实战展开,介绍了Antsword蚁剑工具的使用参考资料。还提及修改后端代码,可通过图片码绕过,上传含木马的gif文件,利用靶场的文件包含漏洞进行命令执行,该题也可用条件竞争完成,并给出相关参考资料。
1087





