文件内容检测与绕过之文件幻数

实验原理

文件上传从客户端进行检测显然是防护不足的,所以需要从服务器端进行防护。
服务端的检测与绕过方法有很多,常见的有:

1. 后缀名检测绕过
2. MIME类型检测与绕过
3. 文件内容检测与绕过
4. 00截断绕过
5. 条件竞争检测与绕过

文件内容的检测是利用getimagesize()函数获取图片的宽高等信息,如果上传的不是图片,那么则获取不到信息。
文件内容检测的绕过常见的有两种方式:

  • 在脚本文件前面补充对应的文件头
    常见的图片文件头
JPG:FF D8 FF E0 00 10 4A 46 49 46
GIF:47 49 46 38 39 61(GIF89a)
PNG:89 50 4E 47
  • 制作图片马
    制作图片马的方式也有很多,常见的有:
在图片后写入脚本代码
在cmd中使用命令 copy 1.jpg/b+1.php/a 2.jpg
- 参数/b指定以二进制格式复制、合并文件,用于图像类/声音类文件
- 参数/a指定以ASCII格式复制、合并文件,用于txt等文档类文件

实验步骤

1、登录操作机,打开浏览器,输入实验地址:http://ip/upfile/4/upload.html

2、在操作机上准备要上传的文件(脚本文件),比如新建info.php文件

3、点击“选择文件”按钮,选中要上传的文件

4、点击“submit”按钮,文件上传失败,不允许的文件

5、以记事本或编辑器的方式打开脚本文件,补充图片的文件头(比如GIF文件头)

6、再次选择脚本文件

7、点击“submit”按钮,再次上传文件,脚本文件成功上传

8、访问http://ip/upfile/4/upload/info.php,上传的脚本文件成功解析

实验总结

掌握文件上传的服务端检测中的文件内容类型检测原理以及绕过方法,了解三种图片格式的文件头,通过补充文件头绕过文件内容的检测。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值