Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP判断上传文件类型

PHP判断上传文件类型

作者头像
用户7657330
发布于 2020-08-14 07:18:52
发布于 2020-08-14 07:18:52
2K00
代码可运行
举报
文章被收录于专栏:程序生涯程序生涯
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**

* 读取文件前几个字节 判断文件类型

* @return string

**/
function checkFileType($filename){
    $file=fopen($filename,'rb');
    $bin=fread($file,2); //只读2字节
    fclose($file);
    $strInfo =@unpack("c2chars",$bin);
    $typeCode=intval($strInfo['chars1'].$strInfo['chars2']);
    $fileType='';
    switch($typeCode){
        case 7790:
            $fileType = 'exe';
            break;
        case 7784:
            $fileType = 'midi';
            break;
        case 8297:
            $fileType = 'rar';
            break;
        case 255216:
            $fileType = 'jpg';
            break;
        case 7173:
            $fileType = 'gif';
            break;
        case 6677:
            $fileType = 'bmp';
            break;
        case 13780:
            $fileType = 'png';
            break;
        default:
            $fileType='unknown'.$typeCode;
            break;
    }
    if($strInfo['chars1']=='-1' && $strInfo['chars2']=='-40'){
        return 'jpg';
    }
    if($strInfo['chars1']=='-119' && $strInfo['chars2']=='80'){
        return 'png';
    }
    return $fileType;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
php判断文件上传图片格式的实例详解
$type = $_FILES'image';//文件名 //$type = $this->getImagetype( $type ); $filetype = ['jpg', 'jpeg', 'gif', 'bmp', 'png']; if (! in_array($type, $filetype)) { return "不是图片类型"; }
用户2323866
2021/07/09
1.8K0
Upload-labs通关笔记(三)
Upload-labs是一个帮你总结所有类型的上传漏洞的靶场 项目地址:https://github.com/Tj1ngwe1/upload-labs 环境要求 若要自己亲自搭建环境,请按照以下配置环境,方可正常运行每个Pass。 配置项 配置 描述 操作系统 Window or Linux 推荐使用Windows,除了Pass-19必须在linux下,其余Pass都可以在Windows上运行 PHP版本 推荐5.2.17 其他版本可能会导致部分Pass无法突破 PHP组件 php_gd2,php_exif
网络安全自修室
2020/07/22
8620
上传伪技术~很多人都以为判断了后缀,判断了ContentType,判断了头文件就真的安全了。是吗?
今天群里有人聊图片上传,简单说下自己的经验(大牛勿喷) 0.如果你的方法里面是有指定路径的,记得一定要过滤../,比如你把 aa文件夹设置了权限,一些类似于exe,asp,php之类的文件不能执行,那么如果我在传路径的时候,前面加了一个../呢,这样这种服务器端的限制就跳过了。(DJ音乐站基本上都有这个问题,以及用某编辑器的同志) 1.常用方法:这种就是根据后缀判断是否是图片文件,需要注意的是这种格式:文件:1.asp;.jpg 1.asp%01.jpg 目录: 1.jpg/1.asp 1.jpg/1.
逸鹏
2018/04/10
1.3K0
上传伪技术~很多人都以为判断了后缀,判断了ContentType,判断了头文件就真的安全了。是吗?
PHP 文件上传代码审计
只验证MIME类型: 代码中验证了上传的MIME类型,绕过方式使用Burp抓包,将上传的一句话小马*.php中的Content-Type:application/php,修改成Content-Type: image/png然后上传.
王 瑞
2022/12/28
1.2K0
10个 ThinkPHP 开发常用代码片段
在编写代码的时候有个神奇的汇总是好的!下面这里收集了 10+ PHP 代码片段,可以帮助你开发 PHP 项目。这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧~
php007
2019/11/18
8240
上传靶机实战之upload-labs解题
我们知道对靶机的渗透可以提高自己对知识的掌握能力,这篇文章就对上传靶机upload-labs做一个全面的思路分析,一共21个关卡。让我们开始吧,之前也写过关于上传的专题,分别为浅谈文件上传漏洞(客户端JS检测绕过) 浅谈文件上传漏洞(其他方式绕过总结)
雪痕@
2021/06/10
1.9K0
Upload-labs(1-15)详解
想到这也就知道是绕过方法中的黑名单绕过了,上面的不让上传,想到了可以上传.php5的文件,除了这个还有.phtml.phps .pht 但是要想上传后能执行,要在自己的apache的httpd.conf文件写入
ly0n
2020/11/04
7.6K0
Upload-labs(1-15)详解
Upload-labs 通关学习笔记
使用障眼法,将PHP文件修改图像格式后直接上传;使用burp拦截该数据包,修改文件格式(后缀名)
Mirror王宇阳
2020/11/13
4.4K0
Upload-labs 通关学习笔记
Email系列(QQ邮箱 + 含附件的邮箱案例 + 项目实战)上
平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html 邮箱系列:https://github.com/duniti
逸鹏
2018/04/10
1.1K0
Email系列(QQ邮箱 + 含附件的邮箱案例 + 项目实战)上
[红日安全]Web安全Day5 - 任意文件上传实战攻防
大家好,我们是红日安全-Web安全攻防小组。此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字叫 Web安全实战 ,希望对想要学习Web安全的朋友们有所帮助。每一篇文章都是于基于漏洞简介-漏洞原理-漏洞危害-测试方法(手工测试,工具测试)-靶场测试(分为PHP靶场、JAVA靶场、Python靶场基本上三种靶场全部涵盖)-实战演练(主要选择相应CMS或者是Vulnhub进行实战演练),如果对大家有帮助请Star鼓励我们创作更好文章。如果你愿意加入我们,一起完善这个项目,欢迎通过邮件形式(sec-redclub@qq.com)联系我们。
红日安全
2020/02/20
2.2K0
PHP 字符串与文件操作
字符串比较(字节序): 字节序比较可以使用strcmp/strcasecmp两个函数,只需传入两个字符串即可.
王 瑞
2022/12/28
8690
PHP 常见漏洞代码总结
只验证MIME类型: 代码中验证了上传的MIME类型,绕过方式使用Burp抓包,将上传的一句话小马*.php中的Content-Type:application/php,修改成Content-Type: image/png然后上传.
王 瑞
2022/12/28
1.4K0
实战 | 文件上传漏洞之最全代码检测绕过总结
文件上传漏洞是指攻击者上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。该漏洞在业务应用系统中出现概率较高,究其原因是业务场景中上传附件、头像等功能非常常见,若在系统设计中忽略了相关的安全检查,则容易导致文件上传漏洞。
HACK学习
2022/02/17
15.3K1
实战 | 文件上传漏洞之最全代码检测绕过总结
Flask 实现文件上传下载
Flask 针对文件的上传下载相关代码片段,多种方法,包括限制文件格式,大小等。 实现图片文件上传 # name: 简单的实现文件上传任务. import os from flask import Flask, request, url_for, send_from_directory from werkzeug import secure_filename ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif']) app = Flask(__nam
王 瑞
2022/12/28
1.2K0
基于纯真本地数据库的 IP 地址查询 PHP 源码
很多第三方的 IP 地址查询 API 接口,直接调用第三方的接口很方便,但也容易失效导致无法使用。因此今天来分享一个基于本地数据库的 IP 地址查询源码(亲测可行)!
码农编程进阶笔记
2022/09/27
2.7K0
基于纯真本地数据库的 IP 地址查询 PHP 源码
php实现文件上传
存档: upload1.html(单文件上传) 1 <html> 2 <head> 3 <title>单个文件上传</title> 4 </head> 5 <body> 6 <form action="upload.php" method="post" enctype="multipart/form-data"> 7 <input type="hidden" name="MAX_FILE_SIZE" value="
Angel_Kitty
2018/04/08
4.1K0
php实现文件上传
php通过文件头检测文件类型通用类(zip,rar…)
首先说明下,上面文件头与文件类型映射关系来自网上,如果你有新的文件需要检查,只需要将映射加入即可。 如果你需要知道文件头信息,可以通过工具:winhex打开标准文件查找。如:
IT工作者
2023/07/21
3770
phpstudy后门文件分析以及检测脚本
2019.9.20得知非官网的一些下载站中的phpstudy版本存在后门文件,基于研究的目的,于是有了以下这文。
ChaMd5安全团队
2019/09/25
1K0
phpstudy后门文件分析以及检测脚本
类库封装-PHP图片处理工具
Base64生成图片文件,自动解析格式 /** * @desc Base64生成图片文件,自动解析格式 * @param $base64 可以转成图片的base64字符串 * @param $path 绝对路径 * @param $filename 生成的文件名 * @return array 返回的数据,当返回status==1时,代表base64生成图片成功,其他则表示失败 */ public function base64ToImag
程序猿的栖息地
2022/04/29
7400
PHP文件操作类
<?php /*************************************************************************************** 文件名:F
joshua317
2018/04/10
1.5K0
相关推荐
php判断文件上传图片格式的实例详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验