SMOLNET PORTAL home about changes
iImplement handler for letsencrypt ACME challenges. - bitreich-httpd - Bitreich HTTPD service	Err	bitreich.org	70
hgit clone git://bitreich.org/bitreich-httpd git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-httpd	URL:git://bitreich.org/bitreich-httpd git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-httpd	bitreich.org	70
1Log	/scm/bitreich-httpd/log.gph	bitreich.org	70
1Files	/scm/bitreich-httpd/files.gph	bitreich.org	70
1Refs	/scm/bitreich-httpd/refs.gph	bitreich.org	70
1Tags	/scm/bitreich-httpd/tag	bitreich.org	70
1README	/scm/bitreich-httpd/file/README.md.gph	bitreich.org	70
1LICENSE	/scm/bitreich-httpd/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit d0062f038d181b8d5eb150003ea7b50bcb5330f3	/scm/bitreich-httpd/commit/d0062f038d181b8d5eb150003ea7b50bcb5330f3.gph	bitreich.org	70
1parent a0590477c4c74d7111a031a4cb1c9e5d61ff3044	/scm/bitreich-httpd/commit/a0590477c4c74d7111a031a4cb1c9e5d61ff3044.gph	bitreich.org	70
hAuthor: parazyd <parazyd@dyne.org>	URL:mailto:parazyd@dyne.org	bitreich.org	70
iDate:   Fri, 28 Oct 2022 15:07:04 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iImplement handler for letsencrypt ACME challenges.	Err	bitreich.org	70
i	Err	bitreich.org	70
iSigned-off-by: Christoph Lohmann <20h@r-36.net>	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M bitreich-httpd.c                    |      18 ++++++++++++++++--	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 16 insertions(+), 2 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/bitreich-httpd.c b/bitreich-httpd.c	/scm/bitreich-httpd/file/bitreich-httpd.c.gph	bitreich.org	70
i@@ -105,8 +105,8 @@ servefile(char *path, char *ctype, int sock)	Err	bitreich.org	70
i int	Err	bitreich.org	70
i main(int argc, char *argv[])	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        char *wwwbase, *wwwindex, request[512], *ctype, *path,	Err	bitreich.org	70
i-             clienth[NI_MAXHOST], clientp[NI_MAXSERV], *zuccbase;	Err	bitreich.org	70
i+        char *wwwbase, *wwwindex, request[512], *ctype, *path, *le_file,	Err	bitreich.org	70
i+                *le_base, clienth[NI_MAXHOST], clientp[NI_MAXSERV], *zuccbase;	Err	bitreich.org	70
i         int rlen;	Err	bitreich.org	70
i         struct sockaddr_storage clt;	Err	bitreich.org	70
i         socklen_t cltlen = sizeof(clt);	Err	bitreich.org	70
i@@ -115,6 +115,7 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i         wwwbase = "/bitreich/www";	Err	bitreich.org	70
i         wwwindex = "index.html";	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+        le_base = "/br/www/uacme";	Err	bitreich.org	70
i         zuccbase = "/br/www/zuccless";	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (!getpeername(0, (struct sockaddr *)&clt, &cltlen)) {	Err	bitreich.org	70
i@@ -166,6 +167,19 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i                 sleep(1);	Err	bitreich.org	70
i                 asprintf(&path, "%s/s/yolo-css.css", wwwbase);	Err	bitreich.org	70
i                 ctype = "text/css";	Err	bitreich.org	70
i+        } else if ((le_file = strstr(request, ".well-known/acme-challenge/"))) {	Err	bitreich.org	70
i+                /* Setup for Letsencrypt */	Err	bitreich.org	70
i+                le_file += strlen(".well-known/acme-challenge/");	Err	bitreich.org	70
i+                char *requested = strtok(le_file, " ");	Err	bitreich.org	70
i+                if (strchr(requested, '/') != NULL) {	Err	bitreich.org	70
i+                        /* Get Zucced, no path exploitation. */	Err	bitreich.org	70
i+                        asprintf(&path, "%s/zucc-job.webm", zuccbase);	Err	bitreich.org	70
i+                        ctype = "video/webm";	Err	bitreich.org	70
i+                } else {	Err	bitreich.org	70
i+                        /* Seems legit. */	Err	bitreich.org	70
i+                        asprintf(&path, "%s/%s", le_base, requested);	Err	bitreich.org	70
i+                        ctype = "text/plain";	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i         } else {	Err	bitreich.org	70
i                 if (strstr(request, "zuccless.org")) {	Err	bitreich.org	70
i                         tim = time(NULL);	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/bitreich-httpd/commit/d0062f0...
Content-Typetext/plain; charset=utf-8