图片马需要与 文件包含漏洞一起使用。
文件包含漏洞
就是说,需要在服务器端有一个中介文件 file_include.php , 内容如下:
<?php $file = $_GET['file'] include $file; ?>
然后,我们就可以使用 file_include.php?file=a.jpg 来实现 a.jpg 文件中的php代码片段了。(其他asp语言同理。)
jpeg的exif
参考:https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/hiding-webshell-backdoor-code-in-image-files/
这里提到了 在 jpeg 文件中,有一个部分叫做 exif 区域,该区域中包含了 jpeg 的信息,在PHP中很多组件都会用PHP代码读取并解析这里
如果把php代码放在这里, 就可以实现后门 webshell backdoor
这个文章非常齐全,介绍了好几种方法
https://gv7.me/articles/2017/picture-trojan-horse-making-method/
恶意代码在图片尾部
同上。 猜测是使用了PHP引擎来处理 jpg图片
恶意代码在 jpeg的 exif中
略。
使用gimp 来编辑即可。
恶意代码放在无法被图片引擎重新转换的地方。
例如, 一般都使用convert 命令来进行图片的剪裁。 可以对比一下上传前后的图片, 仔细观察哪里的代码没有改动(例如一片连续的白色),然后就可以尝试把恶意代码放在该区域。