PHP代码审计:文件上传(内容检测绕过)

upload-labs 15 源码:
在这里插入图片描述通过自定义函数,判断文件内容是否是图片
源码分析:
1.先利用isset($_POST['submit'])判断提交参数中是否有submit参数
2.定义名变量存储临时文件名$temp_file
3.调用自定义函数islmage()来对上传文件内容进行判断,将$temp_file临时文件名变量传入islimage()函数。
PS:
①利用getimagesize()函数来获取图像信息,函数返回结果为一个数组,里面存储这图像大小,类型等相关信息,失败会返回FALSE并产生一条告警错误信息。
其本质也是通过判断图片的前几个字节来识别图片类型。
②利用image_type_to_extension()函数来获取后缀名
③利用stripos()函数来与上传文件后缀白名单字符串中的值作比较,如果查找成功,则返回对应字符索引值,当查找成功时,说明文件后缀在白名单中,随后islmage()函数便返回存储着安全文件名后缀的 e x t 变量并赋值给 ‘ ext变量并赋值给` ext变量并赋值给res 4.利用$res变量来存储islmage()`函数的返回结果,即存储着安全文件名后缀的 e x t 变量 5. 将 ext变量 5.将 ext变量5.res变量带入判断,最终拼接到文件路径最后,作为文件名后缀。

绕过方式:文件包含图片马

通过伪造文件头或者图片马的方式进行绕过上传,最后用文件包含漏洞包含。
1.伪造文件头:GIF 89A
在这里插入图片描述在这里插入图片描述在这里插入图片描述PS:

1.getimagesize()函数:获取图像信息

在这里插入图片描述在这里插入图片描述
2.image_type_to_extension() 函数:获取图像类型的⽂件后缀
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值