CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Windows专区 >  安全技术/病毒

请问IIS有什么漏洞?

楼主WEB8888()2003-08-04 01:56:35 在 Windows专区 / 安全技术/病毒 提问

? 问题点数:20、回复次数:4Top

1 楼yishao(飞龙)回复于 2003-08-04 02:26:19 得分 10

安全焦点漏洞描述  
   
  IIS漏洞  
  --------------------------------------------------------------------------------  
  1.名字:IIS   unicode漏洞  
  中联绿盟安全公告(SA2000-06)  
  Microsoft   IIS   Unicode解码目录遍历漏洞  
  Nsfocus安全小组(security@nsfocus.com)  
  http://www.nsfocus.com    
  发布日期:   2000/10/20  
  受影响的软件及系统:  
  ==================  
  -   Microsoft   IIS   4.0  
  -   Microsoft   IIS   5.0  
  综述:  
  =====  
   
  NSFOCUS安全小组发现微软IIS   4.0和IIS   5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。  
   
   
  漏洞分析:  
  ==========  
   
  对于IIS   5.0/4.0中文版,当IIS收到的URL请求的文件名中包含一个特殊的编码例如"%c1%hh"或者"%c0%hh",它会首先将其解码变成:0xc10xhh,然后尝试打开这个文件,Windows   系统认为0xc10xhh可能是unicode编码,因此它会首先将其解码,如果   0x00<=   %hh   <   0x40的话,采用的解码的格式与下面的格式类似:  
   
  %c1%hh   ->   (0xc1   -   0xc0)   *   0x40   +   0xhh  
  %c0%hh   ->   (0xc0   -   0xc0)   *   0x40   +   0xhh  
   
   
  例如,在Windows   2000   简体中文版   +   IIS   5.0   +   SP1系统下测试:  
   
  http://target/A.ida/%c1%00.ida  
   
  IIS会报告说   "@.ida"   文件找不到  
  这里:   (0xc1-0xc0)*0x40+0x00=0x40='@'  
   
  http://target/A.ida/%c1%01.ida  
  IIS会报告说   "A.ida"   文件找不到  
  这里:   (0xc1-0xc0)*0x40+0x01=0x41='A'  
   
  http://target/A.ida/%c1%02.ida  
  IIS会报告说   "B.ida"   文件找不到  
  这里:   (0xc1-0xc0)*0x40+0x02=0x42='B'  
  .....  
   
  http://target/A.ida/%c0%21.ida  
  IIS会报告说   "!.ida"   文件找不到  
  这里:   (0xc0-0xc0)*0x40+0x21=0x21='!'  
  ....  
   
  因此,利用这种编码,我们可以构造很多字符,例如:  
   
  %c1%1c   ->   (0xc1   -   0xc0)   *   0x40   +   0x1c   =   0x5c   =   '/'  
  %c0%2f   ->   (0xc0   -   0xc0)   *   0x40   +   0x2f   =   0x2f   =   '\'  
   
  攻击者可以利用这个漏洞来绕过IIS的路径检查,去执行或者打开任意的文件。  
   
  Rain   Forest   Puppy   测试发现对于英文版的IIS   4.0/5.0,  
  此问题同样存在,只是编码格式略有不同,变成"%c0%af"或者"%c1%9c".  
   
   
  漏洞测试:  
  ==========  
   
  (1)   如果系统包含某个可执行目录,就可能执行任意系统命令。下面的URL可能列出当前目录的内容:  
   
  http://www.victim.com/scripts/..%c1%1c..%c1%1c..%c1%1c..%c1%1c../winnt/system32/cmd.exe?/c+dir  
   
  (2)   利用这个漏洞查看系统文件内容也是可能的:  
   
  http://www.victim.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini  
   
   
   
  临时解决方法:  
  ============  
   
  1、如果不需要可执行的CGI,可以删除可执行虚拟目录,例如   /scripts等等。  
  2、如果确实需要可执行的虚拟目录,建议可执行虚拟目录单独在一个分区。  
   
   
  解决方案:  
  ==========  
   
  微软已就此发布了一个安全公告(MS00-078)   以及相应补丁。  
   
  您可以在下列地址看到微软安全公告的详细内容:  
   
  http://www.microsoft.com/technet/security/bulletin/ms00-078.asp  
   
  补丁程序可以在下列地址下载:  
   
  .   Microsoft   IIS   4.0:  
   
  http://www.microsoft.com/ntserver/nts/downloads/critical/q269862/default.asp    
   
  .   Microsoft   IIS   5.0:  
   
  http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp    
   
  注意:这个补丁程序与MS00-57中所提供的补丁是同一个程序,如果您已经安装了MS00-57中的补丁,您可以不用再重新安装此补丁程序。  
   
  声明:  
  =====  
   
  本安全公告仅用来描述可能存在的安全问题,中联绿盟信息技术公司不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,中联绿盟信息技术公司以及安全公告作者不为此承担任何责任。  
  中联绿盟信息技术公司拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经中联绿盟信息技术公司允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。  
   
  2.名字:Microsoft   IIS   CGI文件名错误解码漏洞  
   
  中联绿盟安全公告(SA2001-02)  
   
  Microsoft   IIS   CGI文件名错误解码漏洞  
   
  Nsfocus安全小组(security@nsfocus.com)  
  http://www.nsfocus.com/    
   
   
  发布日期:   2001/05/15  
   
  CVE   CAN   ID   :   CAN-2001-0333  
   
  受影响的软件及系统:  
  ==================  
   
  -   Microsoft   IIS   4.0    
  -   Microsoft   IIS   5.0    
   
  不受影响的软件及系统:  
  ===================  
  -   Windows   IIS   4.0   (sp6/sp6a   没有安装其他新的hotfix)  
   
  综述:  
  =====  
   
  NSFOCUS安全小组发现微软IIS   4.0/5.0在处理CGI程序文件名时存在一个安全  
  漏洞,由于错误地对文件名进行了两次解码,攻击者可能利用这个漏洞执行任意  
  系统命令。  
   
  漏洞分析:  
  ==========  
   
  IIS在加载可执行CGI程序时,会进行两次解码。第一次解码是对CGI文件名进行http  
  解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为".exe"或".com"  
  等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该  
  CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行  
  解码。这样,CGI文件名就被错误地解码了两次。  
   
  通过精心构造CGI文件名,攻击者可以绕过IIS对文件名所作的安全检查,例如对"../"  
  或"./"的检查,在某些条件下,攻击者可以执行任意系统命令。  
   
  例如,对于'\'这个字符,正常编码后是%5c。这三个字符对应的编码为:  
  '%'   =   %25  
  '5'   =   %35  
  'c'   =   %63  
   
  如果要对这三个字符再做一次编码,就可以有多种形式,例如:  
  %255c  
  %%35c  
  %%35%63    
  %25%35%63  
  ...  
   
  因此,"..\"就可以表示成"..%255c"或"..%%35c"等等形式。  
   
  在经过第一次解码之后,变成"..%5c"。IIS会认为这是一个正常的字符串,  
  不会违反安全规则检查。而在第二次被解码之后,就会变成"..\"。因此  
  攻击者就可以使用"..\"来进行目录遍历,执行web目录之外的任意程序。  
   
   
  漏洞测试:  
  ==========  
   
  例如,如果TARGET存在一个虚拟可执行目录(scripts),并且它与  
  windows系统在同一驱动器上。那么提交类似下列请求:  
   
  http://TARGET/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\  
   
  就会列出C:\的根目录。  
   
  当然,对于'/'或者'.'做变换同样可以达到上面的效果。  
  例如:"..%252f",   ".%252e/"...  
   
  注意:攻击者只能以IUSER_machinename用户的权限执行命令。  
   
  临时解决方法:  
  ===========  
   
  1、如果不需要可执行的CGI,可以删除可执行虚拟目录,例如   /scripts等等。  
  2、如果确实需要可执行的虚拟目录,建议将可执行虚拟目录单独放在一个分区  
  3、将所有可被攻击者利用的命令行工具移到另外一个目录中并禁止GUEST组  
  访问。  
  厂商状态:  
  ==========  
  2001.3.27   我们将这个问题通报给了微软公司。  
  2001.4.01   微软告知重现了这个问题  
  2001.4.16   微软提供了补丁程序供测试,测试发现此问题已被解决  
  2001.4.23   微软请求我们延迟2个星期发布公告以等待更完善的测试  
  2001.4.30   微软告知我们还须再推迟一个星期发布  
  2001.5.14   微软已就此发布了一个安全公告(MS01-026)以及相应补丁  
  您可以在下列地址看到微软安全公告的详细内容:  
  http://www.microsoft.com/technet/security/bulletin/ms01-026.asp  
  补丁程序可以在下列地址下载:  
  .   Microsoft   IIS   4.0:  
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787    
  .   Microsoft   IIS   5.0:  
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764    
  附加信息:  
  ==========  
  通用漏洞批露(Common   Vulnerabilities   and   Exposures)组织CVE已经为此问题  
  分配了一个候选名   CAN-2001-0333。此名字是为了收录进CVE列表做候选之用,  
  (http://cve.mitre.org)CVE列表致力于使安全问题的命名标准化。候选名在被  
  正式加入CVE列表之前可能会有较大的变化。  
  声   明  
  ==========  
  本安全公告仅用来描述可能存在的安全问题,中联绿盟信息技术公司不为此安全  
  公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任  
  何直接或者间接的后果及损失,均由使用者本人负责,中联绿盟信息技术公司以  
  及安全公告作者不为此承担任何责任。  
  中联绿盟信息技术公司拥有对此安全公告的修改和解释权。如欲转载或传播此安  
  全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经中联绿  
  盟信息技术公司允许,不得任意修改或者增减此安全公告内容,不得以任何方式  
  将其用于商业目的。  
  3.名字:IIS   5.0   远程缓冲区溢出漏洞  
  ◆   微软Win   2K   IIS   5.0   远程缓冲区溢出   (转载自绿盟)  
  日期:2001-5-6    
  受影响的系统:    
  Microsoft   Windows   2000   Server  
  Microsoft   Windows   2000   Datacenter   Server  
  Microsoft   Windows   2000   Advanced   Server  
  描述:  
  --------------------------------------------------------------------------------  
  BUGTRAQ   ID:   2674  
  微软Win   2K   IIS   5的打印ISAPI扩展接口建立了.printer扩展名到msw3prt.dll的映射关系,缺省情况下该映射存在。当远程用户提交对.printer的URL请求时,IIS   5调用msw3prt.dll解释该请求。由于msw3prt.dll缺乏足够的缓冲区边界检查,远程用户可以提交一个精心构造的针对.printer的URL请求,其"Host:"域包含大约420字节的数  
  据,此时在msw3prt.dll中发生典型的缓冲区溢出,潜在允许执行任意代码。溢出发生后,WEB服务停止响应,Win   2K可以检查到WEB服务停止响应,从而自动重启它,因此系统管理员很难意识到发生过攻击。  
  <*   来源:Riley   Hassel   of   eEye   Digital   Security   *>Top

2 楼yishao(飞龙)回复于 2003-08-04 02:35:56 得分 0

安全焦点漏洞描述  
   
  IIS漏洞  
  --------------------------------------------------------------------------------  
  1.名字:IIS   unicode漏洞  
  中联绿盟安全公告(SA2000-06)  
  Microsoft   IIS   Unicode解码目录遍历漏洞  
  Nsfocus安全小组(security@nsfocus.com)  
  http://www.nsfocus.com    
  发布日期:   2000/10/20  
  受影响的软件及系统:  
  ==================  
  -   Microsoft   IIS   4.0  
  -   Microsoft   IIS   5.0  
  综述:  
  =====  
   
  NSFOCUS安全小组发现微软IIS   4.0和IIS   5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。  
   
   
  漏洞分析:  
  ==========  
   
  对于IIS   5.0/4.0中文版,当IIS收到的URL请求的文件名中包含一个特殊的编码例如"%c1%hh"或者"%c0%hh",它会首先将其解码变成:0xc10xhh,然后尝试打开这个文件,Windows   系统认为0xc10xhh可能是unicode编码,因此它会首先将其解码,如果   0x00<=   %hh   <   0x40的话,采用的解码的格式与下面的格式类似:  
   
  %c1%hh   ->   (0xc1   -   0xc0)   *   0x40   +   0xhh  
  %c0%hh   ->   (0xc0   -   0xc0)   *   0x40   +   0xhh  
   
   
  例如,在Windows   2000   简体中文版   +   IIS   5.0   +   SP1系统下测试:  
   
  http://target/A.ida/%c1%00.ida  
   
  IIS会报告说   "@.ida"   文件找不到  
  这里:   (0xc1-0xc0)*0x40+0x00=0x40='@'  
   
  http://target/A.ida/%c1%01.ida  
  IIS会报告说   "A.ida"   文件找不到  
  这里:   (0xc1-0xc0)*0x40+0x01=0x41='A'  
   
  http://target/A.ida/%c1%02.ida  
  IIS会报告说   "B.ida"   文件找不到  
  这里:   (0xc1-0xc0)*0x40+0x02=0x42='B'  
  .....  
   
  http://target/A.ida/%c0%21.ida  
  IIS会报告说   "!.ida"   文件找不到  
  这里:   (0xc0-0xc0)*0x40+0x21=0x21='!'  
  ....  
   
  因此,利用这种编码,我们可以构造很多字符,例如:  
   
  %c1%1c   ->   (0xc1   -   0xc0)   *   0x40   +   0x1c   =   0x5c   =   '/'  
  %c0%2f   ->   (0xc0   -   0xc0)   *   0x40   +   0x2f   =   0x2f   =   '\'  
   
  攻击者可以利用这个漏洞来绕过IIS的路径检查,去执行或者打开任意的文件。  
   
  Rain   Forest   Puppy   测试发现对于英文版的IIS   4.0/5.0,  
  此问题同样存在,只是编码格式略有不同,变成"%c0%af"或者"%c1%9c".  
   
   
  漏洞测试:  
  ==========  
   
  (1)   如果系统包含某个可执行目录,就可能执行任意系统命令。下面的URL可能列出当前目录的内容:  
   
  http://www.victim.com/scripts/..%c1%1c..%c1%1c..%c1%1c..%c1%1c../winnt/system32/cmd.exe?/c+dir  
   
  (2)   利用这个漏洞查看系统文件内容也是可能的:  
   
  http://www.victim.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini  
   
   
   
  临时解决方法:  
  ============  
   
  1、如果不需要可执行的CGI,可以删除可执行虚拟目录,例如   /scripts等等。  
  2、如果确实需要可执行的虚拟目录,建议可执行虚拟目录单独在一个分区。  
   
   
  解决方案:  
  ==========  
   
  微软已就此发布了一个安全公告(MS00-078)   以及相应补丁。  
   
  您可以在下列地址看到微软安全公告的详细内容:  
   
  http://www.microsoft.com/technet/security/bulletin/ms00-078.asp  
   
  补丁程序可以在下列地址下载:  
   
  .   Microsoft   IIS   4.0:  
   
  http://www.microsoft.com/ntserver/nts/downloads/critical/q269862/default.asp    
   
  .   Microsoft   IIS   5.0:  
   
  http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp    
   
  注意:这个补丁程序与MS00-57中所提供的补丁是同一个程序,如果您已经安装了MS00-57中的补丁,您可以不用再重新安装此补丁程序。  
   
  声明:  
  =====  
   
  本安全公告仅用来描述可能存在的安全问题,中联绿盟信息技术公司不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,中联绿盟信息技术公司以及安全公告作者不为此承担任何责任。  
  中联绿盟信息技术公司拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经中联绿盟信息技术公司允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。Top

3 楼yishao(飞龙)回复于 2003-08-04 02:43:28 得分 10

2.名字:Microsoft   IIS   CGI文件名错误解码漏洞  
   
  中联绿盟安全公告(SA2001-02)  
  Microsoft   IIS   CGI文件名错误解码漏洞  
  Nsfocus安全小组(security@nsfocus.com)  
  http://www.nsfocus.com/    
  发布日期:   2001/05/15  
  CVE   CAN   ID   :   CAN-2001-0333  
  受影响的软件及系统:  
  ==================  
  -   Microsoft   IIS   4.0    
  -   Microsoft   IIS   5.0    
  不受影响的软件及系统:  
  ===================  
  -   Windows   IIS   4.0   (sp6/sp6a   没有安装其他新的hotfix)  
  综述:  
  =====  
  NSFOCUS安全小组发现微软IIS   4.0/5.0在处理CGI程序文件名时存在一个安全  
  漏洞,由于错误地对文件名进行了两次解码,攻击者可能利用这个漏洞执行任意  
  系统命令。  
  漏洞分析:  
  ==========  
  IIS在加载可执行CGI程序时,会进行两次解码。第一次解码是对CGI文件名进行http  
  解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为".exe"或".com"  
  等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该  
  CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行  
  解码。这样,CGI文件名就被错误地解码了两次。  
   
  通过精心构造CGI文件名,攻击者可以绕过IIS对文件名所作的安全检查,例如对"../"  
  或"./"的检查,在某些条件下,攻击者可以执行任意系统命令。  
   
  例如,对于'\'这个字符,正常编码后是%5c。这三个字符对应的编码为:  
  '%'   =   %25  
  '5'   =   %35  
  'c'   =   %63  
  如果要对这三个字符再做一次编码,就可以有多种形式,例如:  
  %255c  
  %%35c  
  %%35%63    
  %25%35%63  
  ...  
  因此,"..\"就可以表示成"..%255c"或"..%%35c"等等形式。  
  在经过第一次解码之后,变成"..%5c"。IIS会认为这是一个正常的字符串,  
  不会违反安全规则检查。而在第二次被解码之后,就会变成"..\"。因此  
  攻击者就可以使用"..\"来进行目录遍历,执行web目录之外的任意程序。  
  漏洞测试:  
  ==========  
  例如,如果TARGET存在一个虚拟可执行目录(scripts),并且它与  
  windows系统在同一驱动器上。那么提交类似下列请求:  
  http://TARGET/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\  
  就会列出C:\的根目录。  
  当然,对于'/'或者'.'做变换同样可以达到上面的效果。  
  例如:"..%252f",   ".%252e/"...  
  注意:攻击者只能以IUSER_machinename用户的权限执行命令。  
  临时解决方法:  
  ===========  
  1、如果不需要可执行的CGI,可以删除可执行虚拟目录,例如   /scripts等等。  
  2、如果确实需要可执行的虚拟目录,建议将可执行虚拟目录单独放在一个分区  
  3、将所有可被攻击者利用的命令行工具移到另外一个目录中并禁止GUEST组  
  访问。  
  厂商状态:  
  ==========  
  2001.3.27   我们将这个问题通报给了微软公司。  
  2001.4.01   微软告知重现了这个问题  
  2001.4.16   微软提供了补丁程序供测试,测试发现此问题已被解决  
  2001.4.23   微软请求我们延迟2个星期发布公告以等待更完善的测试  
  2001.4.30   微软告知我们还须再推迟一个星期发布  
  2001.5.14   微软已就此发布了一个安全公告(MS01-026)以及相应补丁  
  您可以在下列地址看到微软安全公告的详细内容:  
  http://www.microsoft.com/technet/security/bulletin/ms01-026.asp  
  补丁程序可以在下列地址下载:  
  .   Microsoft   IIS   4.0:  
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787    
  .   Microsoft   IIS   5.0:  
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764    
  附加信息:  
  ==========  
  通用漏洞批露(Common   Vulnerabilities   and   Exposures)组织CVE已经为此问题  
  分配了一个候选名   CAN-2001-0333。此名字是为了收录进CVE列表做候选之用,  
  (http://cve.mitre.org)CVE列表致力于使安全问题的命名标准化。候选名在被  
  正式加入CVE列表之前可能会有较大的变化。  
   
  声   明  
  ==========  
   
  本安全公告仅用来描述可能存在的安全问题,中联绿盟信息技术公司不为此安全  
  公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任  
  何直接或者间接的后果及损失,均由使用者本人负责,中联绿盟信息技术公司以  
  及安全公告作者不为此承担任何责任。  
  中联绿盟信息技术公司拥有对此安全公告的修改和解释权。如欲转载或传播此安  
  全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经中联绿  
  盟信息技术公司允许,不得任意修改或者增减此安全公告内容,不得以任何方式  
  将其用于商业目的。  
   
   
  3.名字:IIS   5.0   远程缓冲区溢出漏洞  
   
  ◆   微软Win   2K   IIS   5.0   远程缓冲区溢出   (转载自绿盟)  
  日期:2001-5-6    
   
   
   
  受影响的系统:    
  Microsoft   Windows   2000   Server  
  Microsoft   Windows   2000   Datacenter   Server  
  Microsoft   Windows   2000   Advanced   Server  
   
   
  描述:  
  --------------------------------------------------------------------------------  
   
   
  BUGTRAQ   ID:   2674  
   
  微软Win   2K   IIS   5的打印ISAPI扩展接口建立了.printer扩展名到msw3prt.dll的映射关系,缺省情况下该映射存在。当远程用户提交对.printer的URL请求时,IIS   5调用msw3prt.dll解释该请求。由于msw3prt.dll缺乏足够的缓冲区边界检查,远程用户可以提交一个精心构造的针对.printer的URL请求,其"Host:"域包含大约420字节的数  
  据,此时在msw3prt.dll中发生典型的缓冲区溢出,潜在允许执行任意代码。溢出发生后,WEB服务停止响应,Win   2K可以检查到WEB服务停止响应,从而自动重启它,因此系统管理员很难意识到发生过攻击。  
   
   
  <*   来源:Riley   Hassel   of   eEye   Digital   Security   *>  
   
   
   
  测试程序:  
  --------------------------------------------------------------------------------  
   
  警   告  
   
  以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!  
   
   
   
  Ryan   Permeh   of   eEye   Digital   Security   发布了一个演示该溢出的程序:  
   
  --------------------------------------------------------------------------  
  /***********************************************************************  
  iishack   2000   -   eEye   Digital   Security   -   2001  
  This   affects   all   unpatched   windows   2000   machines   with   the   .printer   isapi   filter   loaded.   This   is   purely   proof   of   concept.  
   
  Quick   rundown   of   the   exploit:  
   
  Eip   overruns   at   position   260  
  i   have   19   bytes   of   code   to   jump   back   to   the   beginning   of   the   buffer.  
  (and   a   4   byte   eip   jumping   into   a   jmp   esp   located   in   mfc42.dll).   The   jumpback   was   kinda   weird,   requiring   a   little   forward   padding   to   protect   the   rest   of   the   code.  
   
  The   buffer   itself:  
  Uou   only   have   about   250ish   bytes   before   the   overflow(taking   into   account   the   eip   and   jumpback),   and   like   211   after   it.   this   makes   things   tight.   This   is   why   i   hardcoded   the   offsets   and   had   2    
  shellcodes,one   for   each   revision.   normally,   this   would   suck,   but   since   iis   is   kind   to   us,   it   cleanly   restarts   itself   if   we   blow   it,   giving   us   another   chance.  
   
  This   should   compile   clean   on   windows,   linux   and   *bsd.   Other   than   that,   you   are   on   your   own,   but   the   vector   is   a   simple   tcp   vector,   so   no   biggie.  
   
  The   vector:  
   
  the   overflow   happens   in   the   isapi   handling   the   .printer   extension.   The   actual   overflow   is   in   the   Host:   header.   This   buffer   is   a   bit   weird,   soi   be   carfull   what   you   pass   into   it.   It   has   a   minimal   amount   of   parsing   happening   before   we   get   it,   making   some   chars   not   able   to   be   used(or   forcing   you   to   encode   your   payload).   As   far   as   i   can   tell,   the   bad   bytes   i've   come   across    
  are:  
   
  0x00(duh)  
  0x0a(this   inits   a   return,   basically   flaking   our   buffer)  
  0x0d(same   as   above)  
  0x3a(colon:   -   this   seems   to   be   a   separator   of   some   kind,   didn't   have   time   or  
  energy   to   reverse   it   any   further,   it   breaks   stuff,   keep   it   out   of   your   buffer)  
   
  i   have   a   feeling   that   there   are   more   bad   chars,   but   in   the   shellcode   i've   written  
  (both   this   proof   of   concept   and   actual   port   binding   shellcode),   i've   come   across  
  problems,   but   haven't   specifically   tagged   a   "bad"   char.  
   
   
  One   more   thing...   inititally,   i   got   this   shellcode   to   fit   on   the   left   side   of   the   buffer   overflow.   something   strange   was   causing   it   to   fail   if   i   had   a   length   of   under   about   315   chars.   This   seems   strange   to   me,   but   it   could   be   soemthing   i   just   screwed   up   writing   this   code.   This   explains   the   0x03s   padding   the   end   of   the   shellcode.  
   
  Ryan   Permeh  
  ryan@eeye.com  
   
  greetz:   riley,   for   finding   the   hole   marc,   for   being   a   cool   boss   dale,nicula,firas,   for   being   pimps   greg   hoglund,   for   sparking   some   really   interesting   ideas   on   exploitable   buffers   dark   spyrit,   for   beginning   the   iis   hack   tradition   I   would   also   like   to   thank   the   academy   and   to   all   of   those   who   voted....  
  Barry,   Levonne,   and   their   $240.00   worth   of   pudding.  
  http://www.eeye.com/html/research/Advisories/tequila.jpg  
  *************************************************************************/Top

4 楼WEB8888()回复于 2003-08-08 04:09:20 得分 0

THANK   YOUTop

相关问题

  • 私活:IIS漏洞扫描 待遇300¥¥
  • ms0601漏洞是什么漏洞,怎么解决
  • 内存漏洞是什么意思?
  • wnn6漏洞是什么??怎么回事
  • 【急】IIS或网页可能有漏洞,高手救急
  • 漏洞?
  • 谁给我举个内存漏洞的例子???什么时候需要检查内存漏洞呢???
  • 为什么缓冲区溢出容易导致安全漏洞?
  • 万象网吧管理软件有什么漏洞?
  • 这是什么漏洞,最新版的了,6.002靠

关键词

  • sp1
  • windows2000
  • 安全公告
  • 解码
  • 文件名
  • 执行
  • 绿盟
  • 微软
  • iis
  • 编码

得分解答快速导航

  • 帖主:WEB8888
  • yishao
  • yishao

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo