# CTF Super League (2021)

**Website:** [https://ieee-buet-ctf.web.app/](https://ieee-buet-ctf.web.app/)

Yesterday, I had participated in **CTF Super League: CTF Competition for Beginners**- the first CTF competition of my life. During the competition, I could solve around 5 problems. The solution writeup are given below: 

### Basic Problems

#### Problem B
##### Description
You have to find the flag from the file linked below.

**[Downloadable File Link](https://drive.google.com/file/d/1YCj4bKZ6ofCvQ3vV4MFbFMUeoZppJqNZ/view)**

##### Solution
A basic string search for "IEEE_BUET{" gives out the flag `IEEE_BUET{WHO_COULD_HAVE_DONE_THIS}`

#### Problem C
##### Description
You have to find the flag from the image linked below.

**[Downloadable Image Link](https://drive.google.com/file/d/10hRLkIOJjlslbsD_zarL56Mxv-YRYhPw/view)**

##### Solution
After downloading the file, a basic `cat` command prints out the `img.png` file content. At the bottom, we can see the flag `IEEE_BUET{I_AM_BEAN}`

***

### Cryptography

#### Problem C
##### Description
Decode the following while rome was burning.

`guvf vf fvzcyr`

###### Solution
A simple ROT-13 encryption gives us the message

`this is simple`.

***

### Reverse Engineering

#### Problem A
##### Description
You have to investigate following file and find the flag.

**[Downloadable File Link](https://drive.google.com/file/d/1IiaPlRwERmFt9rgv9HKP0Id10dPLn8gy/view)**

##### Solution
A simple `file` command on the file gives us the following output:

```
ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=e842fd921c0649de7bdceb6461c0bf52471ae3ba, for GNU/Linux 3.2.0, not stripped
```

Meaning it's an object file built for GNU/Linux platform. Let's try executing the file.

```
chmod +x revme
./revme

>> capture{>49?x1+x67,x,09,x+15(4=}
```

And thus it gives out the flag.


#### Problem E
##### Description
You have to investigate following file and find the flag.

**[Downloadable File Link](https://drive.google.com/file/d/1fyJZFwqMkVKLOx-PaOiSmZ1zcOt29hid/view)**

##### Solution
Since it's a JAR file, let's extract it. Extracting the JAR file and going inside the `com/khabib97` folder shows the compiled JAVA bytecode. Opening those `.class` files using a Java decompiler or even with IntelliJ gives us the source code.

```java
// Deadend.class

public class DeadEnd {
    String value;

    public DeadEnd() {
        this.value = Plug.three + Plug.one + Plug.two;
    }
}
```

```java
// Plug.class

public final class Plug {
    public static String one = "asewd";
    public static String two = "sfgrr";
    public static String three = "$4qe123";

    public Plug() {
    }
}
```

From these two source codes, we can now easily construct the string `$4qe123asewdsfgrr`.
That's our flag.

***
