#include #include #include #define MAX_INPUT 4000 // Function to parse POST data void parse_post(char* data, char* username, char* password) { sscanf(data, "username=%[^&]&password=%s", username, password); } void mask_password(char *src, char *dest) { size_t len = strlen(src); for (size_t i = 0; i < len; i++) { dest[i] = '*'; } dest[len] = '\0'; } int main() { printf("Content-type: text/html\n\n"); printf("\n"); printf("\n"); printf("\n"); printf("KILLSWITCH PUBLIC ACCESS\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("
\n"); printf("
\n"); printf("   

\n"); printf("
\n"); printf("
\n"); printf("
\n"); printf("\n"); printf("
\n"); printf("\n"); printf("KILLSWITCH PUBLIC ACCESS SYSTEM

\n"); printf("
\n"); printf("\n"); printf("
\n "); char *content_length = getenv("CONTENT_LENGTH"); int len = content_length ? atoi(content_length) : 0; char post_data[MAX_INPUT] = {0}; fread(post_data, 1, len, stdin); char username[64] = {0}, password[3000] = {0}; parse_post(post_data, username, password); if (strlen(username) == 0 || strlen(password) == 0) { printf("

Invalid username or password.

"); return 1; } // Call external shell script to create jailed user char cmd[MAX_INPUT]; snprintf(cmd, sizeof(cmd), "sudo /usr/local/bin/create_user.sh '%s' '%s' > /tmp/create_user_log.txt 2>&1", username, password); int result = system(cmd); if (WIFEXITED(result) && WEXITSTATUS(result) == 0) { char masked[64]; mask_password(password, masked); printf("

Account Created Successfully

\n"); printf("

Username: %s

\n", username); printf("

Password: %s

\n", masked); } else { printf("

Failure

Could not create user. Exit code: %d

", WEXITSTATUS(result)); } return 0; }