• 中间件漏洞总结(二)- IIS


    中间件漏洞总结(一)

    二、 IIS漏洞分析

    (一) IIS简介

    IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

    IIS的安全脆弱性曾长时间被业内诟病,一旦IIS出现远程执行漏洞威胁将会非常严重。远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码,可以导致IIS服务器所在机器蓝屏或读取其内存中的机密数据

    (二) PUT漏洞

      1、漏洞介绍及成因

        IIS Server 在 Web 服务扩展中开启了 WebDAV ,配置了可以写入的权限,造成任意文件上传。

        版本: IIS6.0

      2、漏洞复现

        1) 开启WebDAV 和写权限

      2) 利用burp测试

        抓包,将GET请求改为OPTIONS

      3)利用工具进行测试

        成功上传,再上传一句话木马,然后用菜刀连接,getshell

      3、漏洞修复

        关闭WebDAV 和写权限

     

     

     

    (二)短文件名猜解

      1、漏洞介绍及成因

        IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400。

      2、漏洞复现

        1)、在网站根目录下添加aaaaaaaaaa.html文件

      

      3) 进行猜解

      

     

     

      3、漏洞修复

        修复方法:

        1)升级.net framework

        2)修改注册表禁用短文件名功能

          快捷键Win+R打开命令窗口,输入regedit打开注册表窗口,找到路径:

          HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem,将其中的 NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创建短文件名格式,修改完成后,需要重启系统生效

        3)CMD关闭NTFS 8.3文件格式的支持

        4)将web文件夹的内容拷贝到另一个位置,如c:www到d:w,然后删除原文件夹,再重命名d:w到c:www。

        修复后:

      4、局限性

        1) 此漏洞只能确定前6个字符,如果后面的字符太长、包含特殊字符,很难猜解;

        2) 如果文件名本身太短(无短文件名)也是无法猜解的;

        3) 如果文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配;

    (三) 远程代码执行

      1、 漏洞介绍及成因

        在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,从而导致远程代码执行。

      2、 漏洞复现

        1)漏洞环境搭建

          在windows server 2003 r2 32位上安装iis6.0

        2) 触发漏洞

          在本地执行exp,exp如下

            

          执行成功后,服务器端弹出计算器:

            

      3、 漏洞修复

        1)关闭 WebDAV 服务

        2) 使用相关防护设备

    (四) 解析漏洞

      1、 漏洞介绍及成因

        IIS 6.0 在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。这一漏洞有两种完全不同的利用方式:

    /test.asp/test.jpg
    test.asp;.jpg

      2、漏洞复现

        利用方式 1

          第一种是新建一个名为 “test.asp” 的目录,该目录中的任何文件都被 IIS 当作 asp 程序执行(特殊符号是 “/” )

            

        利用方式 2

          第二种是上传名为 “test.asp;.jpg” 的文件,虽然该文件真正的后缀名是 “.jpg”, 但由于含有特殊符号 “;” ,仍会被 IIS 当做 asp 程序执行

          

       IIS7.5 文件解析漏洞

      

    test.jpg/.php

        URL 中文件后缀是 .php ,便无论该文件是否存在,都直接交给 php 处理,而 php 又默认开启 “cgi.fix_pathinfo”, 会对文件进行 “ 修理 ” ,可谓 “ 修理 ” ?举个例子,当 php 遇到路径 “/aaa.xxx/bbb.yyy”   时,若 “/aaa.xxx/bbb.yyy” 不存在,则会去掉最后的 “bbb.yyy” ,然后判断 “/aaa.xxx” 是否存在,若存在,则把 “/aaa.xxx” 当作文件。

      若有文件 test.jpg ,访问时在其后加 /.php ,便可以把 “test.jpg/.php” 交给 php , php 修理文件路径 “test.jpg/.php” 得到 ”test.jpg” ,该文件存在,便把该文件作为 php 程序执行了。

      3、 漏洞修复

        1)对新建目录文件名进行过滤,不允许新建包含‘.’的文件

        2)曲线网站后台新建目录的功能,不允许新建目录

        3)限制上传的脚本执行权限,不允许执行脚本

        4)过滤.asp/xm.jpg,通过ISApi组件过滤

  • 相关阅读:
    程序设计与算法(一)第3周测验(2020春季)
    程序设计与算法(一)第2周测验(2020春季)
    量化投资_波动和趋势能量比(传统盘整和趋势的量化表示)
    Matlab高级教程_第四篇:白噪声的MATALB生成方式
    数学之美_马尔科夫模型01
    Matlab高级教程_第四篇:Matlab高级函数_关键词:arrayfun
    Matlab高级教程_第四篇:Matlab高级函数_关键词:drawnow,addpoints,animatedline,getpoints
    Matlab高级教程_第二篇:关于MATLAB转C#过程中MWArray到C#数组,C#数组到MWArray相互转换
    Matlab高级教程_第二篇:关于MATLAB转C#过程中遇到输出两组参数的问题
    数学是什么?_基变换(线性代数)
  • 原文地址:https://www.cnblogs.com/ssw6/p/12095538.html
Copyright © 2020-2023  润新知