zoukankan      html  css  js  c++  java
  • 文件上传漏洞绕过

    文件上传漏洞是用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。

    绕过方法:

    绕过服务端检测:

    服务端的代码常检测request包中的三个点:MIME类型、文件后缀、文件内容。

    • 绕过MIME类型检测

             原理:检测图片类型文件上传过程中http包的Content-type字段的值,来判断上传文件是否合法。

             绕过方法:用burpsuite截取并修改数据包中文件的content-type类型,或者用大小写进行绕过;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    text/plain(纯文本)
    text/html(HTML文档)
    text/javascript(js代码)
    application/xhtml+xml(XHTML文档)
    image/gif(GIF图像)
    image/jpeg(JPEG图像)
    image/png(PNG图像)
    video/mpeg(MPEG动画)
    application/octet-stream(二进制数据)
    application/pdf(PDF文档)
    application/(编程语言) 该种语言的代码
    application/msword(Microsoft Word文件)
    message/rfc822(RFC 822形式)
    multipart/alternative(HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)
    application/x-www-form-urlencoded(POST方法提交的表单)
    multipart/form-data(POST提交时伴随文件上传的表单)

    不完善的黑名单扩展名:

    文件扩展名在黑名单中为不合法,一般有个专门的blacklist文件,里面会包含常见的危险脚本文件。

    绕过方法:

    • 后缀大小写绕过:在对后缀的判断中,如果只是对字符串进行单独的比较来判断是不是限制文件,可以采用后缀名大小写绕过形式。
    • 空格绕过:如果黑名单没有对后缀名进行去空处理,可以通过在后缀名后加空格进行绕过。
    • 双写绕过:如果黑名单是将问题后缀名替换为空,可以利用双写绕过。
     
    php2, php3, php4, php5, phps, pht, phtm, phtml

    绕过中间件检测:

    iis解析漏洞
    1 目录解析
    以*.asp命名的文件夹里的文件都将会被当成ASP文件执行。
    2 文件解析
    *.asp;.jpg 像这种畸形文件名在“;”后面的直接被忽略,也就是说当成 *.asp文件执行。
    IIS6.0 默认的可执行文件除了asp还包含这三种 *.asa *.cer *.cdx
    3 默认解析
    .asp .aspx .ashx .asa .cer这是系统默默认的后缀名
    Apache解析漏洞

    漏洞原理:Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如 test.php.owf.rar “.owf”和”.rar” 这两种后缀是apache不可识别解析,apache就会把wooyun.php.owf.rar解析成php。

    nginx解析漏洞
    开启cgi:SCRIPT_NAME FASTCGI:
    www.xx.com/a.jpg/.php(任何不存在文件)-----可以解析为.php文件
    a.jpg:<?php phpinfo();?>
    a.php%00.jpg----解析为a.php

    配置问题导致漏洞:

    1.如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含.php 即使文件名是 test2.php.jpg 也会以 php 来执行。

    2.如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg 即使扩展名是 jpg,一样能以 php 方式执行。

    3.修复漏洞方法
    1.apache配置文件,禁止.php.这样的文件执行,配置文件里面加入

    1
    2
    3
    4
    <Files ~ “.(php.|php3.)”>
    Order Allow,Deny
    Deny from all
    </Files>
  • 相关阅读:
    解决:设置中打开蓝牙,测试机不会自动搜索设备
    深入学习:Windows下Git入门教程(下)
    深入学习:Windows下Git入门教程(上)
    深入分析:控制系统的音量
    深入分析:Android中app之间的交互(一,使用Action)
    深入分析:Fragment与Activity交互的几种方式(三,使用接口)
    深入分析:Fragment与Activity交互的几种方式(二,使用Bundle)
    深入分析:Fragment与Activity交互的几种方式(一,使用Handler)
    实现:TextView自由复制功能
    小结1
  • 原文地址:https://www.cnblogs.com/lzkalislw/p/15496017.html
Copyright © 2011-2022 走看看