+++ author = "Maik de Kruif" title = "Moscow - Apartment" subtitle = "Beginners Quest 2 - Google CTF" date = 2021-09-22T18:15:25+01:00 description = "A writeup for challenge 2 of the beginners quests of the Google CTF." cover = "img/writeups/google-ctf/2021/beginners-quest/2/cover.png" tags = [ "Google CTF", "Beginners Quest", "ctf", "hacking", "writeup", "web", ] categories = [ "ctf", "writeups", "hacking", ] +++ ## Story line Well, it’s a rather gloomy and messy apartment, a faint shade is cast from the almost covered master window upon the worn wall. It smells very burnt, and there's a cracked bottle in the sink that suggests some kind of experiment. Someone must have left in a hurry. Thinking about it, do you want to: Look at the beautiful view of the Kremlin from the window or search the apartment thoroughly ### Look at the beautiful view of Kreml, from the window Wow look at the Kremlin. Ah, the Moscow Kremlin is really something else! But hey wait... look at the street, someone just started to run when he saw you in the window. Could it be the person that we’re looking for? You exit the building and see that they are jumping on a motorcycle and they take off! You spot a parked car, hotwire it and quickly take up the chase. ### Search it thoroughly AGENT X seems to have missed that a plank on the floorboard has become very loose. You have a look and you see some kind of device under it. If you’re lucky, some information on it might come in handy. You have to travel back to the base if you wish to find out more. ### Attachment {{< figure src="/img/writeups/google-ctf/2021/beginners-quest/2/logic-lock.png" title="Logic Lock" >}} ## Explanation The attachment contains an image with, as it's name suggests, logic gates. Logic gates perform basic logical functions that are fundamental to digital circuits. They make decisions based on a combination of digital signals coming from its inputs. I'll give an explantation of the six most common logic gates. ### OR {{< figure class="small" src="/img/writeups/google-ctf/2021/beginners-quest/2/gates/or.png" title="OR Gate" >}} The OR gate. The output is `true` if at least one of the inputs is `true`. If both inputs are `false`, then the output is `false`. ### AND {{< figure class="small" src="/img/writeups/google-ctf/2021/beginners-quest/2/gates/and.png" title="AND Gate" >}} The AND gate. The output is `true` if both inputs are `true`. If one or no input is `true`, the output is `false`. ### NOT {{< figure class="small" src="/img/writeups/google-ctf/2021/beginners-quest/2/gates/not.png" title="NOT Gate" >}} The NOT gate, also know as an inverter. The output is `true` if the input is `false`. If the input is `true`, the output is `false`. ### XOR {{< figure class="small" src="/img/writeups/google-ctf/2021/beginners-quest/2/gates/xor.png" title="XOR Gate" >}} The XOR gate. The gate behaves just like the OR gate, with the only difference being that it is when both inputs are on. The output is `true` is one of the two inputs is on, but not both. If either both inputs are `true`, or if both inputs are `false`, the output is `false`. ### NOR {{< figure class="small" src="/img/writeups/google-ctf/2021/beginners-quest/2/gates/nor.png" title="NOR Gate" >}} The NOR gate. This gate is an OR gate, followed by a NOT gate. The output is `true` if both inputs are `false`. If one or more of the inputs are `true`, the output is `false`. ### NAND {{< figure class="small" src="/img/writeups/google-ctf/2021/beginners-quest/2/gates/nand.png" title="NAND Gate" >}} The NAND gate. This gate is an AND gate, followed by a NOT gate. The ouput is `true` if none or one of the inputs is `true`. If both inputs are `true`, the output is `false`. ## Solution Now that we now what these gates mean, we can work back from end to see what the inputs should be. {{< figure src="/img/writeups/google-ctf/2021/beginners-quest/2/logic-lock-solved.png" title="Logic Lock Solved" >}} We find that the inputs `BCFIJ` should be set, so the resulting flag would be `CTF{BCFIJ}`.