第八天Apache解析漏洞IIS 解析漏洞Nginx 解析漏洞文件上传%oo截断

本文介绍了Web服务器解析漏洞,包括Apache、IIS和Nginx中的%00截断、目录解析和文件解析漏洞。讲解了00截断的原理,涉及PHP版本和magic_quotes_gpc的设置。还讨论了Apache和IIS的解析漏洞复现及修复方法,并提到了条件竞争漏洞在文件上传中的应用。
摘要由CSDN通过智能技术生成

%00截断

文件名后缀就一个%00字节,可以截断某些函数对文件名的判断。在许多语言函数中,处理字符串的函数中0x00被认为是终止符。

例如:
网站上传函数处理xxx.php%00.jpg时,首先后缀名是合法的jpg格式,可以上传,在保存文件时,遇到%00字符丢弃后面的jpg,文件后缀最终保存的后缀名为xxx.php
00截断上传的原理
php解释器是C语言编写的
C语言中学过字符串的结尾会有00作为字符串结束的标志
在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

0x00,%00,/00之类的截断,都是一样的

条件
%00截断有两个条件php版本小于5.3.4和magic_quotes_gpc为off状态。 如果这时我们将magic_quotes_gpc改为on那么就不能截断了,因为开启magic_quotes_gpc后%00会被加上一个反斜杠转义掉
漏洞复现
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
$_FILES数组内容
$_FILES[‘myFile’][‘name’]     客户端文件的原名称

$_FILES[‘myFile’][‘type’]      文件的 MIME类型,需要浏览器提供该信息的支持,例如"image/gif"

$_FILES[‘myFile’][‘size’]      已上传文件的大小,单位为字节

$_FILES[‘myFile’][‘tmp_name’]   文件被上传后在服务端储存的临时文件名,一般是系统默认,可以在php.ini的upload_tmp_dir指定,但用 putenv() 函数设置是不起作用的

$_FILES[‘myFile’][‘error’] 和该文件上传相关的错误代码,[‘error’] 是在 PHP 4.2.0版本中增加的,下面是它的说明:(它们在PHP3.0以后成了常量)
  注:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值