zoukankan      html  css  js  c++  java
  • php代码审计8审计文件上传漏洞

    文件上传漏洞是指用户上传了一个可执行的脚步文件,并通过此脚本文件获得了执行服务器端命令的能力,这种攻击方式是最直接和有效的,文件上传本身是没问题的,有问题的是文件上传后,服务器怎么处理,解释文件,通过服务器的处理逻辑做的不够安全,则会导致严重后果


    漏洞条件:文件可上传——知道文件上传路径——上传文件可以被访问——上传文件可以被执行

    文件上传可控点:
    Content-Length,即上传内容大小
    MAX_FILE-SIZE,即上传内容的最大长度
    filename,即上传文件名
    Content-Type,即上传文件类型
    请求包中的乱码字段,即是所上传文件的内容,有可能存在请求包中的可控点还有上传路径

    挖掘思路:上传点都调用同一个上传类,直接全局搜索上传函数,黑盒直接寻找上传点,代码定位

    代码案例:
    name:客户端的原始上传文件名称
    Type:上传文件的MIME类型
    Tmp_name:服务器端用来保存上传文件的临时文件路径
    Error:上传文件时的错误信息
    Size:上传文件的大小


    文件上传绕过-服务端:
    黑白名单过滤
    修改mime类型
    截断上传攻击
    .htaccess文件攻击
    目录验证

    修复方案:
    检测文件上传内容(黑白名单验证,检测文件扩展名是否合法,mime验证,检测文件的mime类型)
    限制文件大小
    更改临时文件的路径
    读取上传文件的绝对路径,与文件名称
    隐藏文件路径
    做死权限,不让目录有执行权限

    友情链接 http://www.cnblogs.com/klionsec

                   http://www.feiyusafe.cn

  • 相关阅读:
    Old Calculator
    C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
    C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
    .net中FtpClient类
    用FileZilla Server架设FTP服务器
    asp.net(c#)从Cache对象删除项
    Web开发 前台常用方法 BasePage类
    页面 生命周期事件
    Asp.Net生命周期和Http管道技术
    用三张图片详解Asp.Net 全生命周期
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/10356172.html
Copyright © 2011-2022 走看看