iwebsec文件上传漏洞-文件头过滤绕过

 

目录

常见的文件头

源码分析

解决方法

(1)添加图片的文件头

(2)通过copy命令进行图片木马制作


 

 

各种文件都有特定的文件头格式,开发者通过检查上传文件的文件头检测文件类型。但是这种检测方式同样可以被绕过,只要木马文件的头部添加对应的文件头,这样既可以绕过检测,又不影响木马文件的正常运行。

常见的文件头

-JPEG:0xFFD8FF
- PNG:0x89504E470D0A1A0A
- GIF:47 49 46 38 39 61(GIF89a)

源码分析

文件头过滤绕过示例代码(部分)

if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ 
$upfile=$_FILES["upfile"]; 
//获取数组里面的值 
$name=$upfile["name"];//上传文件的文件名 
$type=substr($name, strrpos($name, '.')+1);//上传文件的类型 
$size=$upfile["size"];//上传文件的大小 
$tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径 
//判断是否为图片 
if(!exif_imagetype($_FILES['upfile']['tmp_name'])){
echo "<script>alert('请上传图片文件!')</script>";
die();

在上面的代码中通过exif_imagetype函数判断上传的文件是否是图片。exif_imagetype读取一个图像的第一个字节并进行检查其签名。如果发现了恰当的签名,则返回一个对应的常量;否则返回FALSE。所以有两种方式进行绕过

解决方法

(1)添加图片的文件头

在开头添加一个图片文件的文件头GIF89a 

 

 可以看见这样可以直接上传成功,可以通过上传路径直接查看

上传的路径是

/upload/up/004.php

 

(2)通过copy命令进行图片木马制作

图片是一张正常的jpg图片

666.txt文件里的内容这里写的是

<?php
phpinfo();
?>

 

可以看出我们上传成功,而且里面还有一张图片

进入路径查看 

/upload/up/test.php

 上面的乱码是图片信息

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值