文件内容检查
- content-type检查
- 文件头检查绕过
- getimagesize()函数
- php_exif()模块检查
- imagecreatefromjpeg⼆次渲染
测试流程
- 上传一张正常图片, 验证上传功能是否正常
- 最好直接上传一张图片马, 可绕过content-type, 文件头, getimagesize(), php_exif检查
- 针对二次渲染, 寻找图片数据中不会被转换的部分, 将代码插入其中
content-type检查
绕过:使用burp suite抓包直接修改content-type值
文件头检查绕过
在文件头部添加gif89a
gif89a
<?php
phpinfo();
?>
图片一句话 结合文件包含漏洞或者解析漏洞
getimagesize()函数
绕过
在文件头部添加gif89a
图片一句话, 结合解析漏洞或文件包含漏洞
imagecreatefromjpeg二次渲染
二次渲染: 就是根据用户上传的图片, 新生成一个图片, 将原始图片删除, 将新图片添加到数据库中。 比如一些网站根据用户上传的头像生成大中小不同尺寸的图像。
绕过:寻找渲染前后不变的地方, 替换成一句话