文件上传漏洞之getimagesize()类型验证

getimagesize()简介
这个函数功能会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求的
文件上传漏洞之getimagesize()类型验证_第1张图片
这就是图片的十六进制,前几位都是一样的
文件上传漏洞之getimagesize()类型验证_第2张图片
按照这样的逻辑,我们是不是可以去伪造一个假图片,让函数以为我们这就是图片,达到绕过的目的
文件上传漏洞之getimagesize()类型验证_第3张图片
我们在pikachu的getimagesize()这个案例当中,先传图片是没有问题的
文件上传漏洞之getimagesize()类型验证_第4张图片
图片木马的制作
文件上传漏洞之getimagesize()类型验证_第5张图片
把伪装代码和木马代码放到一起,我在桌面上准备了两张图片和一个php木马,其实一个图片就够了
文件上传漏洞之getimagesize()类型验证_第6张图片
我们打开cmd,输入
文件上传漏洞之getimagesize()类型验证_第7张图片
这样图片木马就做好了,文件上传漏洞之getimagesize()类型验证_第8张图片
这个图片也是能打开的,和正常的看起来没有什么区别,但这个图片的16进制中就会被插入木马代码
文件上传漏洞之getimagesize()类型验证_第9张图片
我们将这个木马文件放进去试试
文件上传漏洞之getimagesize()类型验证_第10张图片
我们可以访问一下这个图片
在这里插入图片描述

我们可以看到这个图片,但是这个php木马并没有执行
接下来我们可以之前讲过的本地包含文件漏洞原理来进行操作
我们可以利用include,我们在实际中需要对一些文件包含的点去进行测试,来找到include在哪个目录里,我们在测试中手动尝试一下就行
文件上传漏洞之getimagesize()类型验证_第11张图片
在这个位置贴入木马图片的连接
unsafeupload/uploads/2019/05/13/7467665cd9816ca54b9660366698.jpeg
第一次尝试没有反应
我们加几个…/
两个…/后成功了
文件上传漏洞之getimagesize()类型验证_第12张图片
在下面phpinfo也就执行了
文件上传漏洞之getimagesize()类型验证_第13张图片
文件上传漏洞及防范措施
文件上传漏洞之getimagesize()类型验证_第14张图片

你可能感兴趣的:(文件上传漏洞之getimagesize()类型验证)