文件上传漏洞

上传文件时,Web应用程序没有对上传文件的格式进行严格过滤 , 就容易造成可以上传任意文件的情况。还有一部分是攻击者通过 Web服务器的解析漏洞来突破Web应用程序的防护。
上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞,攻击者可以利用上传的恶意脚本文件控制整个网站,甚至控制服务器,这个恶意脚本文件,又被称为WebShell,也可以将WebShell脚本称为一种网页后门。WebShell具有非常强大的功能,比如查看服务器目录、服务器中的文件,执行系统命令等。

利用思路

1、常规类

  • 扫描获取上传
  • 会员中心上传
  • 后台系统上传
  • 各种途径上传

2、CMS类

  • 利用CMS源码

3、编辑器类(编辑器组件漏洞)

  • cheditor
  • fckeditor
  • kindeditor
  • xxxeditor

4、其他类/cve

  • 代码审计
  • 平台/三方应用

文件上传黑/白名单绕过

1、验证/绕过

前端

1. js

后端

1. 黑名单
- 特殊解析后缀
- .htaccess解析
- 大小写绕过
- 点绕过
- 空格绕过
- ::$DATA绕过
- 配合解析漏洞
- 双后缀名绕过
2. 白名单
- MIME类型
- %00截断
- 0x00截断
- 0x0a截断
3. 内容以及其他
- 文件头检测
- 二次渲染
- 条件竞争
- 突破getmagesize
- 突破exif_imagetype

2、漏洞修复

解析漏洞

  • IIS
  • Apache
  • Nginx

cms漏洞

  • 某CMS上传漏洞未修复

其他漏洞

  • 编辑器漏洞

    • cheditor
    • fckeditor
    • kindeditor
    • xxxeditor
  • CVE漏洞

    • CVE-2015
    • CVE-2016
    • CVE-2017
  • 安全修复

waf绕过


笔记-1

文件上传 -CTF 151~161

1、前端验证
2、黑白名单
3、user.ini妙用
4、PHP语言特性

目标:通过文件上传漏洞上传后门文件

菜刀冰倔等。。。。

后门代码需要用特定的的后缀解析,不能以图片后缀解析脚本后门代码(解析漏洞除外)
jpg图片,里面有后门代码

x=system(‘tac ../flag.php’)

1、前端验证,修改前端js代码,png类型修改为后门文件类型 eg: xxx.php
上传成功–》 URL直接获取数据

2、mim1前后端验证,修改前js 代码,抓包修改传入后端的文件类型为支持的类型,后端验证成功。

3、.user.ini php 全局配置文件:
auto_prepend_file = //包含在文件头
auto_append_file= //包含在文件尾

  • 上传一个.user.ini 包含需要上传的后门文件-?–》上传后门文件直接访问

有过滤:
使用其他格式:可以百度有好几种方式

  • 上传 test.png 包含恶意代码

    再上传
    .user.ini
    auto_prepend_ifle =<>
    访问路径:
    打印日志信息
    在抓包修改
    User-Agent :
    直接post请求访问
    x=system(‘tac../flag.php’)

  • 文件上传,验证上传文件的文件头