2、DVWA之文件上传(二)

<?php

if( isset( $_POST[ 'Upload' ] ) ) {
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

    // File information
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
    $uploaded_type = $_FILES[ 'uploaded' ][ 'type' ];
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];

    // Is it an image?
    if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
        ( $uploaded_size < 100000 ) ) {

        // Can we move the file to the upload folder?
        if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
            // No
            echo '<pre>Your image was not uploaded.</pre>';
        }
        else {
            // Yes!
            echo "<pre>{$target_path} succesfully uploaded!</pre>";
        }
    }
    else {
        // Invalid file
        echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>';
    }
}

上次实验是low级别,以上是这次medium级别代码。

其中这两行代码是重点,因为它限制了文件后缀必须是jpeg、png,也就是image类型的,还有就是文件大小必须小于100000B

if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
    ( $uploaded_size < 100000 ) ) {

媒体类型(通常称为 Multipurpose Internet Mail Extensions  MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式。它在IETF RFC 6838中进行了定义和标准化。

以下是常见的几种MIME类型,看后缀ipeg、png就能知道image类型是图像类的文件。

 

这次medium级别实验的思路:

思路一、用图片加木马的方法制作图片木马

思路二、修改后缀名,改为image类型的文件,直接修改上传可能会导致菜刀、蚁剑等工具无法连接,使用burpsuite软件进行代理,修改mime类型后

进行转发,然后再使用工具进行连接控制。

————————————————————————————————————

下面是一句话木马和一张图片

 

 打开cmd,进入文件目录,输入copy 文件1+文件2 文件3 ,注意文件3的后缀名需要与指定的上传类型一样。

正常打开是无法显示的,用记事本打开文件3可以看到末尾存在一句话木马。如果想要正常打开是图片,可以加参数copy 1.jpg/b+2.php/a 3.jpeg

-b是指以二进制的方式合并复制文件,用于图像影音类文件
-a是指以ascii方式合并复制文件,用于文本类文件

 

 上传成功。

 

 

 

 打开蚁剑进行连接尝试,连接失败了。

 

文件包含漏洞, 修改路径,尝试之后依旧是不行。

http://192.168.230.128/dvwa-master/vulnerabilities/fi/?page=/dvwa-master/hackable/uploads/3.jpeg

 

换思路二进行实验。

打开kali虚拟机中的burpsuite,修改代理设置为所有IP的8080端口。

 

win10客户端修改谷歌浏览器的代理设置,然后正常上传一句话木马

这是用win10客户端上传一句话木马后拦截的内容,可以看到Content-Type: application/octet-stream,然后把类型修改为image/jpeg

 

修改后的数据包内容,进行转发

 

转发后可以看到已经上传成功。

 

上传成功后可以暂时关掉代理,然后使用工具就可以正常连接了。如下图:

 

 

posted @ 2020-08-24 15:14  看,飞碟!!  阅读(240)  评论(0)    收藏  举报