初级:
我用的图:
图片合并方法:
copy /b 1.gif+phpinfo.php 1.gif #windows的cmd下操作的
这样就制作了一个尾部含有php代码的图片
进阶
有的时候我们上传的合成图片会被某些函数处理,删除尾部的webshell,这时不要慌,下面的方法可能有用
基于项目 https://github.com/RickGray/Bypass-PHP-GD-Process-To-RCE
原理:
- 将正常图片用目标使用的图形库进行转换
- 寻找转换前后两次未变的部分
- 将未变部分替换为欲上传的webshell
- 将替换后的文件进行图像转换,看是否转换后
webshell任然存在
搭建环境并尝试:
- 打开上面的项目地址,下载
- 打开phpstudy,将下载的文件放到网站目录下
- 打开cmd,切换目录到一个phpstudy的php下,我使用的是php-5.4.45。然后将下载文件的demo.gif和codeinj.php复制到php-5.4.45目录下。执行下面的命令
php codeinj.php demo.gif "<?php phpinfo();?>"
就会生成一张gd_demo.gif
- 现在打开浏览器,打开下载文件的index.php。
-
上传刚刚的gd_demo.gif可以看见成功执行phpinfo()