文件上传 07 上传攻击框架

本文记录文件上传学习过程,教程为 《Upload Attack Framework V1.0》

上传攻击框架

简介

之前的都是从服务端的角度在给上传情况分类

现在我们要从攻击者的角度来给上传情况分类

这是这套framework 的核心部分

知道了从攻击者的角度如何分类

就等于知道如何来综合分析一套源码

并从中知道是否有存在漏洞的可能性

绕过检测/过滤

  1. 轻量级检测绕过攻击

    [*] 绕过javascript 对扩展名的检测

    <用burp 之类的反向代理工具直接POST 数据包到服务端,绕过前端检测>

    [*] 绕过服务端对http request 包MIME 类型检测

    <用burp 之类的反向代理工具伪造POST 数据包到服务端,绕过MIME 检测>

  2. 路径/扩展名检测绕过攻击

    [*] 黑名单绕过

    文件名大小写          
    名单列表绕过          
    特殊文件名绕过     
    0x00 截断绕过       
    .htaccess 文件攻击
    本地包含漏洞
    Apache 解析漏洞
    IIS 解析漏洞
    Nginx 解析漏洞
    

    [*] 白名单绕过

    绕过0x00 截断绕过
    本地文件包含漏洞
    IIS 解析漏洞
    Nginx 解析漏洞
    
  3. 文件内容检测绕过攻击

    [*] 文件加载测试绕过

    <对文件进行代码注入再配合任意解析调用/漏洞>

  4. 上传攻击框架

    轻量级检测绕过攻击

    [*] 绕过javascript 对扩展名的检测                (代码层漏洞)
    [*] 绕过服务端对http request 包MIME 类型检测   (代码层漏洞)
    

    路径/扩展名检测绕过攻击

    [*] 黑名单绕过
    
    文件名大小写绕过        (代码层漏洞)
    名单列表绕过          (代码层漏洞)
    特殊文件名绕过         (代码层漏洞)
    0x00 截断绕过           (代码层漏洞)
    .htaccess 文件攻击      (代码层漏洞)
    php 文件包含漏洞      (代码层漏洞)
    Apache 解析漏洞         (应用层漏洞)
    IIS 解析漏洞            (应用层漏洞)
    Nginx 解析漏洞          (应用层漏洞)
    
    
    [*] 白名单绕过
    
    0x00 截断绕过           (代码层漏洞)
    php 文件包含漏洞      (代码层漏洞)
    IIS 解析漏洞            (应用层漏洞)
    Nginx 解析漏洞          (应用层漏洞)
    

    文件内容检测绕过攻击

    [*] 文件加载绕过      (代码层漏洞)
    

上传攻击流程图

传攻击流程图

代码层上传漏洞如下图(红色字体标记部分)

代码层上传漏洞图

攻击要点:

要绕过轻量级检测

要绕过文件内容检测

A. 要绕过代码层对路径/扩展名检测(直接解析)

B. 找到代码层的解析调用(间接解析)

应用层上传漏洞如下图(红色字体标记部分)

应用层上传漏洞图

攻击要点:

要绕过轻量级检测

要绕过文件内容检测

A. 找到应用层的解析漏洞(间接解析)

攻击手法与环节的对应图

攻击手法与环节的对应图

上传攻击框架的核心之一

要注意下,在这里如果在路径/扩展名检测处检测未通过,流程到解析攻击时

白名单检测绕过技术里并不完全能利用所有解析攻击方式

在路径/扩展名检测绕过攻击里已经给出了具体细节

攻击手法与环节图

攻击手法与环节图

上传攻击分析框架

检测框架图

检测框架图

上传攻击框架的核心之二

大家可以像上面分析fckeditor 的方式,在分析一份源码或一个目标环境时

先把上面的上传攻击分析框架列表放好

然后去依次对比

哪些检测环节存在/不存在

哪些环节是安全/还是有漏洞

哪些环节如果被利用是代码层漏洞/还是Web 应用程序解析漏洞

对应在该项后面进行填写

最后把Vule 的部分选出来,再来分析如何进行组合,以及利用它们需要什么样的条件

通过这个分析框架进行白盒/黑盒分析并罗列出所有情况

攻击者便能更系统地分析出源码/目标环境可能存在的漏洞

整个上传攻击的核心最后被分析和总结成了上面两张重要的图

攻击手法与环节图和检测框架图

这两张图就是这篇 paper 最有价值的总结了

上传攻击的防御图

上传攻击的防御图

上传攻击的防御图

图中红点便是防御的重要环节

需要注意的:

  1. 轻量级检测必然能绕过
  2. 检测的重点放在文件内容检测 - 可以用检测脚本语言特征码的机制
  3. 路径/扩展名检测一定要用白名单 - 并且注意路径的0x00 截断攻击(把php 更新至最新版本即可,已经修补了这个漏洞了)
  4. 不能有本地文件包含漏洞
  5. 随时注意更新web 应用软件 - 避免被解析漏洞攻击

猜你喜欢

转载自blog.csdn.net/Kevinhanser/article/details/81613007