DawgCTF 2021

Helped Write with ABBY

Cooking the Books - Crypto [100 pts]

If it's from GCHQ why do they call it the Swiss Army Knife?? )%|&Ap*!dq$#h8h:!xhx)7_)b_x:5!Cq:;>I4(;`4x4b6Il Author: Trashcanna

Doing a quick google search to find out that GCHQ is referring to CyberChef. From that point, I was clueless about what to do. I remembered that this is low points so I used a cipher that was used on Mr. Robot. Also, ROT47 came up which when ROT13 failed I decided to try with ROT47. RXTMUpAYP5BSR9g9iPI9IXf0X30IidPrBijmxcWj1cIc3ex= After that, I tried All of the base32 and base64 as the new text contained a "=" at the end. This ended up worse so I knew more was to this problem. I looked at the Cryptogram Assistant for some help, but that turned up empty, but it had a list of ciphers. I decided to plug them into the Chef and see if I recognized anything. So now my recipe is Rot47 -> From Cipher x -> From Cipher y -> From Base64 After some brute force attempts the final recipe is Rot47 -> Bifid cipher decode [keyword: '"] -> Rail Fence Decode [key: 2, offset: 0] -> From Base64

Flag: DawgCTF{j0r$@n_b3lfort_coUlD_n3v3r}

Cookin the ramen - Crypto [50 pts]

Apparently we made cookin the books too hard, here's some ramen to boil as a warmup: .--- ...- ...- . ....- ...- ... ..--- .. .-. .-- --. -.-. .-- -.- -.-- -. -... ..--- ..-. -.-. ...- ...-- ..- --. .--- ... ..- .. --.. -.-. .... -- ...- -.- . ..- -- - . -. ...- -. ..-. --- -.-- --.. - .-.. .--- --.. --. --. ...-- ... -.-. -.- ..... .--- ..- --- -. -.- -..- -.- --.. -.- ...- ..- .-- - -.. .--- -... .... ..-. --. --.. -.- -..- .. --.. .-- ...- ... -- ...-- --.- --. ..-. ... .-- --- .--. .--- .....

First, we know this is Morse code so we go to the great site called CyberChef. From their we decoded the data from morse and got JVVE4VS2IRWGCWKYNB2FCV3UGJSUIZCHMVKEUMTENVNFOYZTLJZGG3SCK5JUONKXKZKVUWTDJBHFGZKXIZWVSM3QGFSWOPJ5 it looks like a lot of gibberish so putting it through magic and knowing that the phrase "DawgCTF" is in the result. The final algorithm is From Morse Code -> From Base32 -> From Base64 -> From Base58

Flag: DawgCTF{0k@y_r3al_b@by's_f1r5t}

Two truths and 1 fib - Misc [100 pts]

Can you catch the fibber?

nc umbccd.io 6000

Author: Trashcanna

The process to this one was simple. I reused some code for the past connections to the server and ran it on loop as it didn't just give 1 problem and the flag. One note when writing this code I did not waste my time doing a recursion because of how big the numbers are to start with.

import sys
import socket
import time
import random

hostname = "umbccd.io"
port = 6000

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((hostname, port))
sock.settimeout(10)

def readall():
    global sock
    return sock.recv(100000)

def sendall(s):
    global sock
    sock.sendall((s + '\n'))

def dumpall(s):
    for line in s.split('\n'):
        print(line)

def isFib(n):
    a = 0
    b = 1
    i = 2
    n = int(n)
    while i < 200:
        c = a + b
        a = b
        b = c
        if c == n:
            return True
        if c > n:
            return False
        i += 1
    return False
    
# header
while (True):
    res = readall()

    print('-'*30)
    print(res)
    start = res.index('[')
    end = res.index(']')
    numbers = res[start+1:end].strip().split(",")
    print(numbers)
    time.sleep(.1)
    for n in numbers:
        n = n.strip()
        print("Checking " + str(n))

        if (isFib(int(n))):
            print("Sending " + str(n))
            sendall(n)
            time.sleep(.5)
            break

    print('-' * 30)

sock.shutdown(socket.SHUT_WR)

Flag: DawgCTF{jU$T_l1k3_w3lc0me_w33k}

Last updated