web前端

位置:IT落伍者 >> web前端 >> 浏览文章

web上存漏洞及原理分析、防范方法


发布日期:2023年03月04日
 
web上存漏洞及原理分析、防范方法

网站提供上存功能是很多站点经常会有功能商城论坛还有常见一些网盘站点常见互联网上面我们也是经常听说某某站点出现上存漏洞某某开源项目有 上存漏洞 从互联网开始出现动态程序上存漏洞像幽灵一样频繁的出现在各种系统中为什么一个上存漏洞会这么频繁出现呢而且有些系统反复修补多次还没有修 补成功!其实主要问题还是出现在上存原理上面我们先看看上存过程
网站上存过程分析

复制代码 代码如下:
<?php
header("Contenttype: text/html; charset=utf");
if($_FILES)
{
echo <pre>;
var_dump($_FILES);
echo </pre>;
}
?>
<form action="" enctype="multipart/formdata" method="POST">
<input type="file" name="txt" size="">
<input name="Submit" type="submit" value="提交" >
</form>


以上是个简单测试例子我们看看

我们来分析下
name来自 上存时候选择文件名称
type 是文件类型 这个类型那里来的呢?呵呵这里非常关键的 很多时候很多同人会认为这个是服务器自动判断生成的 如果是这样想觉得也有可能 php 封装了上存它自带类库好像可以的 但是反过来想想你随便选择个什么格式文件都会有格式类型这样一想我们推断这个值可能也来自用户输入的 我们来抓包看看我们类型

type值 也来自用户输入值了
size来自程序计算上存文件大小这个是自动计算的 相比我们都清楚的

你说这么多有啥样呢?
想 必有朋友开始问了我上面分析上存文件格式 跟开发出现漏洞有什么关联呢 其实我们想想上面说的一个文件名称name属性以及文件类型type属性 在我们上存文件后端处理时候会经常用到的 作为开发者在使用这个变量一定要继续执行“一切输入代码是有害的”原则你在使用时候要把它当作跟其它getpost 获取变量一样处理 要检测过滤一切输入变量
我们经常做功能是限定用户输入必须是某种格式文件然后保存为该格式分析到这里下面有很多需要继续分析地方今天先提出大纲接下来会分析这样常见类上存漏洞
使用用户文件名生成文件特殊字符过滤不严格导致文件生成出现漏洞
移动文件目录时候由于采用用户传入的文件名拼接生成到错误目录
相信用户输入type 类型直接将用户文件名保存为文件

上一篇:web上存漏洞及原理分析、防范方法(文件名检测漏洞)

下一篇:浅谈web上存漏洞及原理分析、防范方法