PHP文件上传 如何防止图片木马?

想要防止图片木马,必须先了解:什么是图片木马?图片木马的危害,以及图片木马如何制作的?

 

什么是图片木马?

伪装成“图片”的木马,无论其外表多么具有迷惑性,但木马的本质是改变不了的。

例如:

100.jpg 中 含有

<?php phpinfo(); 

直接 打开 100.jpg 是一张图片;

如果把 100.jpg 重命名为 100.php ,结果就会显示 phpinfo()相关信息。

 

图片木马的危害:

中JPG图片木马后,再利用IIS、Apache、Nginx等这些解析漏洞,就可能允许执行任意代码,可导致远程代码执行。

 

图片木马的生成(图片木马制作)方法:

由于生成图片木马方法很多,我这就简单的讲一下其中一种方法,具体操作步骤如下:

 

使用CMD制作一句话木马。

copy 1.jpg/b+1.php 2.jpg

参数 /b 指定以二进制格式复制、合并文件; 用于图像类/声音类文件

参数 /a 指定以ASCII格式复制、合并文件。用于txt等文档类文件

参数 1.php 此文件用来放PHP一句话木马代码

 

整个命令意思是:

将 1.jpg 以二进制与 1.php 合并成 2.jpg,那么:2.jpg 就是图片木马了。

 

PHP上传图片 过滤图片木马 的代码

    // 检测上传图片是否包含有非法代码
    // public function check_illegal($image)
    function check_illegal($image)
    {
        if (file_exists($image)) {
            $resource = fopen($image, 'rb');
            $fileSize = filesize($image);
            fseek($resource, 0);
            if ($fileSize > 512) { // 取头和尾
                $hexCode = bin2hex(fread($resource, 512));
                fseek($resource, $fileSize - 512);
                $hexCode .= bin2hex(fread($resource, 512));
            } else { // 取全部
                $hexCode = bin2hex(fread($resource, $fileSize));
            }
            fclose($resource);
            /* 匹配16进制中的 <% ( ) %> */
            /* 匹配16进制中的 <? ( ) ?> */
            /* 匹配16进制中的 <script | /script> 大小写亦可*/
            if (preg_match("/(3c25)|(3c3f.*?706870)|(3C534352495054)|(2F5343524950543E)|(3C736372697074)|(2F7363726970743E)/is", $hexCode)) {
                return 'false';
            }
        }
        return 'true';
    }

	$image = check_illegal('2.jpg');
	if(!$image){
		echo '图片可能含有非法数据';
	}else{
		echo '图片正常';
	}
    A+
发布日期:2020年07月02日 11:48:01  所属分类:PHP
最后更新时间:2020-07-02 11:51:20
评分: (2 票;平均数5.00 ;最高评分 5 ;用户总数2;总得分 10;百分比100.00)
付杰
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 9.9元
  • 市场价:49.9元
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
  • ¥ 1.0元
  • 市场价:9.9元
SEO顾问 中小型网站 单站最低99.9元 全方位优化
SEO顾问 中小型网站 单站最低99.9元 全方位优化
  • ¥ 99.9元
  • 市场价:5000元
wp discux 帝国 dedecms phpcms等快速建站
wp discux 帝国 dedecms phpcms等快速建站
  • ¥ 99.9元
  • 市场价:499.9元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: