• 文件上传漏洞


    1、漏洞简介

      文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得执行服务器端命令的能力

    2、满足条件

    • 上传的文件能够被web容器解释执行,文件上传后所在的目录是web容器所覆盖到的路径
    • 用户能够从web上访问这个文件
    • 用户上传的文件若被安全检查,格式化,图片压缩等功能改变了内容,也可能导致攻击不成功

    3、文件上传导致的安全问题

    • 上传文件是web脚本语言,服务器的web容器解释并执行了用户上传的脚本,导致代码执行
    • 上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为
    • 上传的文件是病毒,木马文件,黑客用于诱骗用户或者管理员下载
    • 上传的文件是钓鱼图片或包含了脚本的图片,在某些版本的浏览器中会被当作脚本执行,用于钓鱼和欺诈

    4、文件上传检测方法及绕过

    • 前端检测:直接使用浏览器F12上的设置禁用
    • 文件类型检测:使用Burp抓包,修改文件文件类

     

    •  文件后缀检测

        a.00截断绕过

        b.大小写绕过:Php,pHp,PHp

        c.双重后缀名:shell.jpg.php

        d.黑名单绕过:通过上传不受欢迎的php扩展来绕过黑名单,例如:pht,phpt,phtml,php3,php4,php5,php6

        e.文件解析规则绕过:上传 .htaccess 规则解析文件

        .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件    扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

        先上传一个.htaccess文件,内容为:AddType application/x-httpd-php .aaa。如下:

       然后再上传文件后缀为.aaa的文件,让其解析为php类型文件。

        f.配合文件包含漏洞使用:上传图片马,然后使用文件包含漏洞执行图片里的代码,(在我上一篇博客里有详细介绍)

        h.配合解析漏洞使用

    • 文件头检测:有些应用会通过判断上传文件的文件头来验证文件类型

       JPG:FF D8 FF E0 00 10 4A 46 49 46

       PNG:89 50 4E 47 0D 0A 1A 0A

    5、如何防御文件上传漏洞

    • 文件上传的目录设置为不可执行
    • 判断文件类型
    • 使用随机数改写文件名和文件路径
    • 单独设置文件服务器的域名

    6、解析漏洞

    • 【IIS 5.x/6.0】

      目录解析:在网站下建立文件夹的名称中带有.asp、.asa等可执行脚本文件后缀的文件夹,其目录内的任何扩展名的文件都被IIS当作可执行文件来解析并执行。

    http://www.xxx.com/xx.asp/xx.jpg

      文件解析:在IIS6.0下,分号后面的不被解析,也就是说xx.asp;.jpg将被当做xx.asp解析并执行。

    http://www.xxx.com/xx.asp;.jpg

      IIS6.0 默认的可执行文件有asp、asa、cer、cdx四种。

    • 【IIS 7.0/IIS 7.5/ Nginx <0.8.3畸形解析漏洞】

      在默认Fast-CGI开启状况下,访问以下网址,服务器将把xx.jpg文件当做php解析并执行。

    http://www.xxx.com/xx.jpg/.php

    • 【Nginx <8.03 空字节代码执行漏洞】

      影响范围:Nginx0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37,访问以下网址,服务器将把xx.jpg文件当做php解析并执行。

    http://www.xxx.com/xx.jpg%00.php

    • 【Apache解析漏洞】

      Apache对文件解析是从右到左开始判断解析,如果文件的后缀为不可识别,就再往左判断,解析。

      如xx.php.owf.rar,由于Apache无法解析rar和owf后缀,但能够解析php后缀,因此Apache会将xx.php.owf.rar当做php格式的文件进行解析并执行。
      访问以下网址,服务器将把xx.php.owf.rar文件当做php解析并执行。

    http://www.xxx.com/xx.php.owf.rar
    • 【CVE-2013-4547 Nginx解析漏洞】

      访问以下网址,服务器将把xx.jpg文件当做php解析并执行。

    http://www.xxx.com/xx.jpg(非编码空格).php

    • 【使用.htaccess将任意文件作为可执行脚本解析】

      如果在Apache中.htaccess可被执行.且可被上传.那可以尝试在.htaccess中写入:

    1 //这将把目录下的所有后缀为jpg的文件当做可执行的php脚本进行解析并执行。
    2 <FilesMatch ".(jpg)$"> SetHandler application/x-httpd-php </FilesMatch>
    3 
    4 //上传后缀为.aaa的文件,让其做为php类型文件进行解析
    5 AddType application/x-httpd-php .aaa
    参考链接:https://www.freebuf.com/column/227315.html
  • 相关阅读:
    HTTP协议入门
    TCP/IP的分层管理
    TCP与UDP
    如何处理某个Web页面的HTTP请求
    AGC005D ~K Perm Counting
    “玲珑杯” 线上赛Round #17 B 震惊,99%+的中国人都会算错的问题
    bzoj4455 [Zjoi2016]小星星
    AGC010F Tree Game
    AGC016E Poor Turkeys
    AGC003E Sequential operations on Sequence
  • 原文地址:https://www.cnblogs.com/Excellent-person/p/12451996.html
Copyright © 2020-2023  润新知