IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 文件上传漏洞 -> 正文阅读

[PHP知识库]文件上传漏洞

文件上传漏洞

概念

文件上传漏洞发生在有上传功能的应用中,如果应用程序没有对用户上传的文件没有经过严格的合法性检验或者检验或者检验函数存在缺陷,攻击者可以上传木马、病毒等有危害的文件到服务器上面,控制服务器。

前段js过滤绕过

前段JS过滤绕过通过上传漏洞是因为应用程序实在前端通过JS代码进行的验证,而不是通过程序后端进行的验证,这样就可以通过修改前段JS代码的方式进行绕过上传过过滤,上传木马。

文件名过滤绕过

黑名单绕过

1、文件名大小字母绕过
2、名单列表绕过

白名单绕过

1、0X00截断绕过

0x00是用16进制表示的%00,在url中%00表示ascii码中的0,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已经结束。

2、解析/包含漏洞绕过

这类漏洞直接配合上传一个代码注入过的白名单文件即可,再利用解析/包含漏洞

3、.htaccess攻击

Apache的.htaccess:<FilesMatch “xxx”>SetHandler application/x-httpd-php 指定名字含xxx的文件为php可执行文件。
上传一个自定义的.htaccess,然后上传一个代码注入过的白名单文件,就可以绕过各种检测。
如可以将jpg文件当做php文件来执行。

Content-Type过滤绕过

Content-Type用于定义网络文件的类型和网页的编码,用来告诉文件接收方式将以什么形式、什么编码读取这个文件。
不同的文件都会对应不同的Content-Type,比如jpg文件的Content-Type为image/jpeg,php文件的Content-Type为application/octet-stream。
Content-Type是在数据包的请求包头中,开发者会通过Content-Type的类型判断文件是否允许上传,但是Content-Type的类型可以通过抓包篡改,这样就可以通过抓包修改数据包的Content-Type来绕过Content-Type判断。
常见的Content-Type类型:
在这里插入图片描述

文件头过滤绕过

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

.htaccess文件上传

.htaccess文件上传是利用.htaccess文件可以对Web服务器配置的功能,实现对jpg,png等后缀的文件当做PHP文件解析的过程。
.htaccess文件提供了一种基于每个目录进行配置更改的方法,包含一个或多个配置指令的文件放在特定的文档目录中,并且文件中的指令适用于该目录及其所有子目录。

截断上传

截断的产生原因就是存在%00这个字符,PHP版本小于5.3.4时,会把它当做结束符,导致后面的数据直接忽略,造成截断,上传时如果上传文件的路径可控,可以通过00截断,进行木马上传。

竞争条件文件上传

静载本段代码首先将用户上传的文件保存在up目录下,然后有判断了上传文件的后缀是否在allow_ext中,如果不在通过unlink函数再去删除已经上传的文件。漏洞点在于文件在保存到服务器之前并没有进行合法性的检查,虽然保存后进行了文件的检查,但是通过竞争条件漏洞,通过上传有写文件功能的木马,在删除木马之前访问已经上传的木马,可以写入新的木马。

上传漏洞修复

1、使用白名单限制文件上传的类型。
2、对上传文件进行随机重命名,并且文件的扩展名不允许用户自定义。
3、对文件上传的文件夹进行权限限制,去掉脚本的执行权限。
4、对文件的内容进行恶意代码的检测。
5、文件服务器单独设置。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:16:21  更:2021-12-24 18:16:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:30:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码