From 8057ab1167b3c0c19f8212c86c7a849ca3997d47 Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Thu, 27 May 2021 21:58:17 +0200 Subject: bumped enochecker and implemented exploits with minor tweaks to source --- service/src/main.c | 28 +++++++++++++++++++++------- service/src/util.c | 4 ++-- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'service/src') diff --git a/service/src/main.c b/service/src/main.c index e880ba3..de2bd48 100644 --- a/service/src/main.c +++ b/service/src/main.c @@ -190,8 +190,6 @@ search_cmd(const char *arg) if (!(d = opendir(resultdir))) return; - printf("%s %s\n", resultdir, hash); - dirstart = telldir(d); for (i = 0; (de = readdir(d));) { name = de->d_name; @@ -266,8 +264,11 @@ cleanup: void list_cmd(const char *arg) { - DIR *d; struct dirent *de; + struct parseinfo info; + char *path; + FILE *f; + DIR *d; if (!loggedin) { fprintf(stderr, "Not logged in!\n"); @@ -278,7 +279,16 @@ list_cmd(const char *arg) while ((de = readdir(d))) { if (*de->d_name == '.' && !strchr(".", de->d_name[1])) { - printf("%s\n", de->d_name); + printf(">> %s\n", de->d_name); + path = aprintf("%s/%s/info", resultdir, de->d_name); + if ((f = fopen(path, "r"))) { + if (load_info(&info, f) != OK) + fprintf(stderr, "Failed to read saved file info!\n"); + else + print_info(&info); + fclose(f); + } + free(path); } } } @@ -288,6 +298,7 @@ auth_cmd(const char *arg) { const char *hash; char *ndir; + int ret; if (loggedin) { fprintf(stderr, "Already logged in!\n"); @@ -296,13 +307,16 @@ auth_cmd(const char *arg) hash = mhash(arg ? arg : ask("Enter a password: "), -1); ndir = aprintf("%s/.%s", resultdir, hash); - if (mkdir(ndir, S_IRWXU | S_IRWXG | S_IRWXO) && errno != EEXIST) { + ret = mkdir(ndir, S_IRWXU | S_IRWXG | S_IRWXO); + if (!ret) { + printf("Success!\n"); + } else if (ret && errno == EEXIST) { + printf("Success!\nWelcome back!\n"); + } else { fprintf(stderr, "Auth failed!\n"); return; } - printf("Success!\n"); - free(resultdir); resultdir = ndir; loggedin = 1; diff --git a/service/src/util.c b/service/src/util.c index 9270fd9..ce22c4e 100644 --- a/service/src/util.c +++ b/service/src/util.c @@ -52,11 +52,11 @@ mhash(const char *str, int len) /* VULN #2: BUFFER OVERFLOW */ /* see documentation/README.md for more details */ - if (len == -1) len = strlen(str) + 1; + if (len == -1) len = strlen(str); for (v = 0, i = 0; i < len; i++) v += str[i]; - srand(v); + srand(v); for (bp = buf, i = 0; i < MHASHLEN / 2; i++) bp += sprintf(bp, "%02x", str[i % len] ^ (rand() % 256)); -- cgit v1.2.3-71-gd317