任意文件上传漏洞

任意文件上传

文章目录

  • 任意文件上传
    • 漏洞场景
    • 漏洞危害
    • web shell
      • shell
        • 命令解释器
      • webshell
      • 大马
      • 小马
      • 一句话木马
      • GetShell
    • 任意文件上传攻防
      • 采用黑白名单策略
      • 一先常见的绕过方法
      • 上传利用条件
      • 任意文件上传防御
        • 代码角度
        • 业务角度
        • Web 容器角度
        • 系统角度
        • 服务器部署

​ 文件上传是 web 应用必备功能之一,如,头像上传,附件分享等。如果服务器配置不当或者没有进行足够的过滤web 用户就可以上传任意文件,包括恶意脚本文件,exe 程序等等,这就造成了任意文件上传漏洞。

漏洞场景

漏洞一般存在的场景

服务器开启了PUT方法,

web应用开放了文件上传功能对于用户上传的文件没做过滤

在程序开发、部署时,没有考虑以下因素,导致限制被绕过:

  • 代码特性
  • 组件漏洞
  • Web 容器漏洞
  • 系统特性

漏洞危害

上传恶意代码(文件,程序),并执行恶意代码(文件,程序) :

  • 直接上传后门文件并执行,导致网站沦陷;
  • 通过恶意文件,利用其他漏洞拿到管理员权限(提权),导致服务器沦陷。

通过文件上传漏洞获得的网站后门,叫 webShell

web shell

shell

命令解释器

windows:

  • powershell
  • cmd

linux:

  • sh
  • bash
  • zsh

关系

shell 在用户和内核之间,是用户和内核沟通的桥梁

webshell

​ webshelL 是一个网站的后门,也是一个命令解释器。通过 web 方式,使用 HTTP HTTPS 协议传递命令消息到服务器,并且继承了 web 用户的权限,在服务器上远程执行命令。webShelL 从本质上讲,就是服务器端可运行的脚本文件,后缀名通常为:

  • .php
  • .asp
  • .aspx
  • .jsp

​ Webshell 接收来自于 web 用户的命令,然后在服务器端执行,也称为网站木马

web容器 脚本语言
Apache HTTPD php
IIS asp、aspx、php
tomcat jsp、jspx

大马

功能较多通常会调用系统的关键函数

但是代码量打,并且需要单文件支持

小马

体积较小,隐蔽性强

但是功能单一

一句话木马

一句话木马,需要与中国菜刀配合

特点:短小精悍,功能强大

三大基本功能:文件管理、虚拟终端、数据库管理

GetShell

GetShell 是获取 WebShell 的过程或结果。文件上传漏洞的利用是GetShell 的主要方式,但不是唯一手段。

任意文件上传攻防

采用黑白名单策略

黑白名单是最常用,也是最重要的安全策略之一。

黑名单就是将一些后缀名文件进行过滤

白名单就是只允许这些后缀名的文件进行上传

一先常见的绕过方法

  • 利用抓包软件修改文件类型内容为png过jpg等格式
  • 修改后缀名进行后缀名爆破
  • 向图片里插入一句话木马,如无法解析
    • 采用双后缀名格式如1.php.jpg
    • 使用1.php::$DATA
    • 用%00进行截断1.php %00 .jpg
    • 利用文件包含漏洞里的图片木马进行执行

上传利用条件

文件上传漏洞完美利用,受到以下条件限制:

  • web 服务器开启文件上传功能,web 用户可以使用该功能
  • web 用户对目标目录具有可写权限,甚至具有执行权限。一般情况下,web 目录都有执行权限。
  • 完美利用意味着文件可以执行,也就是说代码可以被服务器解析
  • 服务器开启了PUT 方法

任意文件上传防御

代码角度
  • 采用白名单策略,严格限制上传文件的后缀名;
  • 上传文件重命名,尽量少的从客户端获取信息,包括文件名、文件类型、文件内容等:
  • 文件内容检测;
  • 进行二次渲染,过滤掉图片马中的恶意代码
  • 避免文件包含漏洞;
  • 严格处理文件路径,防御 截断漏洞;
  • 测 Token 值,防止数据包重放
业务角度
  • 强口令策略,避免恶意攻击者登录网站后台
  • 尽量避免 web 用户修改上传白名单
Web 容器角度
  • 及时更新 web 容器,防止解析漏洞产生
  • 禁用 Web 容器 PUT 方法
系统角度
  • 避开空格、.、::$DATA等系统特性
服务器部署
  • 严格控制权限
  • 建立单独的文件存储服务器,类似于站库分离

你可能感兴趣的:(渗透,web安全,十大漏洞,漏洞)