来源:网络 | 2007-2-8 | (有2169人读过)
asp溢出漏洞。这个方法,我至今没有成功过。溢出成功后,据说将得到一个普通用户权限.在这儿只是摘篇文章放这儿充数罢了。(好笑呀,还写教程呢!)
Microsoft 安全公告(MS02-018):IIS .asp 缓冲溢出
涉及程序:
IIS 4.0/5.0
描述:
NT/2k IIS4.0/5.0 .asp映射分块编码远程缓冲区溢出漏洞
详细:
Microsoft IIS(Internet Information Server)是MS Windows系统默认自带的Web服务器软件。
IIS 4.0/5.0 ASP (Active Server Pages) ISAPI过滤器存在远程缓冲区溢出漏洞,远程攻击者可以利用此漏洞得到主机本地普通用户访问权限。
默认安装的IIS 4.0/5.0服务器加载了ASP ISAPI过滤器,它在处理分块编码传送(chunked encoding transfer)机制的代码中存在一个缓冲区溢出漏洞。攻击者通过提交恶意分块编码的数据可以覆盖heap区的内存数据,使之以他指定的数据重写任意地址的4字节内存。例如,攻击者可以让dllhost.exe重写它可以访问的任意4字节的内存,包括程序函数指针、意外处理模块指针或其他任何可以用来控制程序执行流程的地址,从而改变程序执行流程,执行任意攻击者指定的代码。
如果攻击者使用随机数据,可能使IIS服务崩溃(IIS 5.0会自动重启)。如果精心构造发送的数据,也可能允
许攻击者执行任意代码。
成功地利用这个漏洞,对于IIS 4.0,远程攻击者可以获取SYSTEM权限;对于IIS 5.0攻击者可以获取IWAM_computername用户的权限。
以下代码仅仅用来测试和研究这个漏洞,如果您将其用于不正当的途径请后果自负
Riley Hassell (riley@eeye.com)提供了如下测试方法:
以下的演示可重现问题,使用一个打了最新补丁的Windows 2000系统,安装一个默认的.asp页面:
**************会话开始****************
POST /iisstart.asp HTTP/1.1
Accept: */*
Host: eeye.com
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked
10
PADPADPADPADPADP
4
DATA
4
DEST
0
[enter]
[enter]
**************会话结束******************
上面的会话导致从dllhost的子进程中执行默认意外处理模块,会弹出消息:
DLLHOST.EXE - Application error
The instruction at 0x77fcb397 referenced memory at 0x54534544
其中0x54534544代表“TSED”,在little endian架构的机器上代表“DEST”。DLLHOST.EXE试图把“DATA”拷贝到“DEST”,因为0x54534544地址的内存不可写,发生访问错误,NT Kernel中的结构化意外处理模块(structured exception handling)捕获了这个信号杀掉了dllhost.exe进程。
问题在于上述会话用自己的数据重写了堆管理头结构(被AllocateHeap()所使用)中两个4字节的数据。在上面演示中,会话用“DATA”重写了第一个4字节的内存,它的内容将会被写到第二个4字节内存中指定的地址中去,当然也用“DEST”重写了第二个4字节的内存,因此,指定内容“DATA”会被程序试图写到地址为0x54534544(“DEST”)的内存里去。通过重写这两个4字节的数据,可以让dllhost.exe重写它可以访问的任意4字节的内存,包括程序函数指针、意外处理模块指针或其他任何可以用来控制程序执行流程的地址。
需要注意的是虽然这个漏洞存在于.ASP ISAPI,但还是需要一个机制来提交Shellcode等利用代码,有表单的ASP程序当然是比较方便,可以通过表单变量提交,如果没有表单,也可以通过HTTP请求头中的服务器变量提交。
受影响的系统:
Microsoft IIS 4.0
- Microsoft Windows NT 4.0
Microsoft IIS 5.0
- Microsoft Windows 2000
解决方案:
这是一个非常严重的安全漏洞,eEye建议我们立即安装微软提供的补丁
下载补丁:
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
如果您不需要使用ASP脚本,作为临时解决方案,建议您立刻删除".asp"的脚本映射。
删除上述脚本映射时可以参考如下步骤:
1. 打开Internet 服务管理器 ;
2. 右击你的服务器,在菜单中选择"属性"栏 ;
3. 选择"主属性" ;
4. 选择 WWW 服务 | 编辑 | 主目录 | 配置 ;
5. 在扩展名列表中删除".asp"项;
6. 保存设置,然后重启IIS服务。
你可以上灰色下载已编译好的源程序。使用方法,cmd下:
c:>Usage: isgrey [-b]
: 0 -- Chinese Win2000 + SP0 or SP1
1 -- Chinese Win2000 + SP2
2 -- English Win2000 + SP2
: the asp file can deal with POST method
[-b]: brute brute mode,very very very long time mode(do not use at first)
Example: If www.some.com has a html source code include:
then you can run:
isgrey www.some.com 1 /search.asp
注:从程序行的命令方法看,asp的路径指的是具有表单提交的虚拟路径,不应该是网上所说的asp的实际路径。
|