知识大全 浅谈web上存漏洞及原理分析、防范方法

Posted

篇首语:不操千曲而后晓声,观千剑而后识器。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅谈web上存漏洞及原理分析、防范方法相关的知识,希望对你有一定的参考价值。

 代码如下: if(isset($_FILES[ img ])) $file = save_file($_FILES[ img ]); if($file===false) exit( 上存失败! );   echo "上存成功!" $file; function check_file($img) ///读取文件 if($img[ error ]> ) return false;   $tmpfile = $img[ tmp_name ]; $filename = $img[ name ];     ///读取文件扩展名 $len=strrpos($filename " "); if($len===false) return false;   //得到扩展名 $ext = strtolower(substr($filename $len+ )); if(!in_array($ext array( jpg jpeg png ))) return false; return true; function save_file($img) if(!check_file($img)) return false;   //格式检测ok 准备移动数据 $filename = $img[ name ]; $newfile = "upload/" $filename; if(!move_uploaded_file($img["tmp_name"] $newfile)) return false;   return $newfile; ?>   以上代码 对输入类型也做了判断 看了没有问题 但是问题 确恰恰出现在对获取的用户名变量检测上面 直接获取传入用户名 然后存为文件 有朋友会说 这些文件名都是我电脑里面存在的 文件名格式都受限于操作系统对文件名定义 但是 需要注意是 对于$_FILES里面获取变量 是直接来自 request请求 它跟普通获取其它get post变量一样 因此 别有用心的人 往往会自己模拟浏览器 给服务器发送一个特殊文件名 然后 让存文件时候 能够正常保存为自己格式   前些年 ”” 在字符串中 保存为文件 会自动截断后面内容 如 $filename 构造为 ”a php jpg” 我们想想 将会变成怎么样? $newfile = “upload/a php jpg” 因为 对扩展名验证 最右边” ”后面字符是jpg 是允许图片格式 但是 我们一以该文件名 保存 发现磁盘会在upload目录下面生成a php 后面所有字符 被自动截断   该漏洞 风靡一时 当时几乎大多数上存网站都有漏洞 一时 很多平台关闭了上存 其实 根本原因就在此 我们拿到文件名 自己作为最终生成文件名保存了 好的方法 是自己随机生成文件名+读取扩展名 这样可以组织输入特殊字符 在进行文件保存时候 被抛弃或截断了   php 时代这个漏洞可以利用 到php 时代 生成的变量文件名值中 会自动过滤掉”” 这样无论用户构造怎么样的特殊””用户名 都会被截断 但是 目前这类漏洞 在asp jsp 等站点 还经常有出现 老版本的php站点也会经常出现     cha138/Article/program/PHP/201311/21299

相关参考

知识大全 web上存漏洞及原理分析、防范方法

  网站提供上存功能是很多站点经常会有功能商城论坛还有常见一些网盘站点常见互联网上面我们也是经常听说某某站点出现上存漏洞某某开源项目有上存漏洞从互联网开始出现动态程序上存漏洞像幽灵一样频繁的出现在各种

知识大全 web上存漏洞及原理分析、防范方法(安全文件上存方法)

cha138/Article/program/PHP/201311/20937

知识大全 解析web文件操作常见安全漏洞(目录、文件名检测漏洞

  做web开发我们经常会做代码走查很多时候我们都会抽查一些核心功能或者常会出现漏洞的逻辑随着技术团队的壮大组员技术日益成熟常见傻瓜型SQL注入漏洞以及XSS漏洞会越来越少但是我们也会发现一些新兴的隐

知识大全 浅谈ASP中Web页面间的数据传递

浅谈ASP中Web页面间的数据传递  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  往往使用动态网

知识大全 WEB开发中Struts常见错误及原因分析

WEB开发中Struts常见错误及原因分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 php intval() 小数时安全漏洞分析

变量转成整数类型      语法intintval(mixedvarint[base])    &n

知识大全 为什么在中国银行卡上存20元几个月后却没有钱了?

为什么在中国银行卡上存20元几个月后却没有钱了?小额帐户管理费及年费都扣没了,大银行都扣这个,我在中国银行卡上存了钱,几个月后少了几十元,也没有短信通知是怎么回事1、没有知道通知,是因为银行卡没有开通

知识大全 .NET Web运行原理

ASP.NET开发宝典:.NETWeb运行原理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 浅谈C#闭包的相关原理

浅谈C#闭包的相关原理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先想说明一点虽然有这样那

知识大全 ASP木马的原理和基本防范方法

ASP木马的原理和基本防范方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138