论坛: 菜鸟乐园 标题: IIS.asp映射分块编码远程缓冲区溢出漏洞怎么利用 复制本贴地址    
作者: kuangren [kuangren]    论坛用户   登录
"IIS .asp映射分块编码远程缓冲区溢出"漏洞怎么利用。谢谢

地主 发表时间: 02/22 17:55

回复: meiying [meiying]   版主   登录
所影响的操作系统和应用程序 
Microsoft IIS 4.0
    - Microsoft Windows NT 4.0 
Microsoft IIS 5.0
    - Microsoft Windows 2000  
  
详细描述 
<* Microsoft IIS 4.0/5.0/5.1 .ASP Chunked Encoding Remote Buffer Overflow *>

<keyword: .ASP Chunked Encoding Remote Buffer Overflow>

IIS WEB服务器是Microsoft开发的流行的WEB服务器。

其中ASP(active server pages)ISAPI过滤器默认在所有NT4和W2K系统中装载,存在漏洞可以导致远程执行任意命令。

恶意攻击者可以使用分块编码(chunk encoding)形式数据给IIS服务器,当解码和解析这些数据的时候可以强迫IIS把我们提供的数据写到内存任意位置。

通过利用这个漏洞可以导致W2K系统产生缓冲溢出并以IWAM_computername用户的权限执行任意代码,而在NT4下可以以SYSTEM的权利执行任意代码。  
  
测试代码 
下面的代码可以漏洞重现,在打了最新补丁的W2K上安装默认.asp页面:

**************Begin Session**************** 
POST /iisstart.asp HTTP/1.1 
Accept: */* 
Host: eeye.com 
Content-Type: application/x-www-form-urlencoded 
Transfer-Encoding: chunked 


10 
PADPADPADPADPADP 

DATA 

DEST 

[enter] 
[enter] 
**************End Session****************** 

技术描述如下:

这段会话可以导致在dllhost子进程内执行默认异常处理,昂默认异常处理执行时会弹出如下窗口信息:

DLLHOST.EXE - Application error 
The instruction at 0x77fcb397 referenced memory at 0x54534544 

注意这里的0x54534544十六进制"TSED"字符,或者说“DEST”在little endian格式下的值,DLLHOST.EXE进程尝试拷贝“DATA”到“DEST”,因为这个0x54534544内存地址不可写,所有会出现访问冲突和在NT内核捕获结构异常处理信号并杀掉DLLHOST.EXE子进程。

问题存在与我们提供的数据覆盖了由AllocateHeap()分配的堆管理头结构,清楚的说,当我们覆盖头结构时,我们控制了结构中的两个4字节地址。第一个4字节地址在我们的演示中被“DATA”覆盖,而这个地址会被拷贝到结构头中的第二个4字节地址中。我们也可以覆盖第二个地址,这些使用“DEST”,通过覆盖这两个地址,我们可以在子进程DLLHOST.EXE权利可写的任意内存地址中放置我们自己构早的4字节地址,允许我们覆盖函数指针,保存指令指针,异常处理或者任何我们想要覆盖的地址。  
  
解决方案 
请尽快采用如下补丁:

补丁下载:

    * Microsoft IIS 4.0:
       http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37931

     * Microsoft IIS 5.0:
       http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37824  
  
发现者 
Marc Maiffret (marc@eeye.com)       
参考:http://www.microsoft.com/technet/security/bulletin/MS02-018.asp http://archives.neohapsis.com/archives/bugtraq/2002-04/0116.html  


B1层 发表时间: 02/22 20:08

回复: kuangren [kuangren]   论坛用户   登录
看的不是太清楚,怎么入侵。有实用点教程没有,谢谢。

B2层 发表时间: 02/22 22:42

回复: laievf [laievf]   论坛用户   登录
嗯,很多漏洞也是,不知道如何测试,在这个例子当中是不是把 http://ip/iisstart.asp
填到浏览器里就行了???
还有很多需要用c写成的程序,哪这些程序怎么用啊??

B3层 发表时间: 02/23 07:13

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号