Ctrl+F to search write-up

 

Team : yoobi(solo)

Rank : 286/753th

 

 

Web

 

Sometime you need to look wayback / 25pts / 377 Solves - yoobi
Do Something Special / 50pts / 362 Solves - yoobi
Obsfuscation Isn't Enough / 50pts / 383 Solves - yoobi
Zero is not the limit / 50pts / 247 Solves - whtmdgus56
Find Pass Code - 1 / 50pts / 311 Solves - whtmdgus56
Most Secure Calculator - 1 / 50pts / 338 Solves - whtmdgus56
Can you be Admin? / 50pts / 65 Solves - Team TamilCTF
My PHP Site / 50pts / 242 Solves - Team TamilCTF
Bypass!! Bypass!! Bypass!! / 150pts / 7 Solves - Team TamilCTF
Find Pass Code - 2 / 150pts / 216 Solves - Team TamilCTF
Most Secure Calculator - 2 / 250pts / 135 Solves - Team TamilCTF

 

Reverse Engineering

 

The Flag Vault / 25pts / 389 Solves - yoobi
The Encoder / 50pts / 342 Solves - yoobi
Baby Shark / 50pts / 294 Solves - yoobi
Flag Checker / 100pts / 194 Solves - yoobi
Knight Vault / 100pts / 193 Solves - yoobi
Droid Flag / 100pts / 154 Solves - Harsh Mehta(1n40)
Knight Switch Bank / 200pts / 173 Solves - Harsh Mehta(1n40)

 

Hardware

 

Blood Of Circuits / 150pts / 92 Solves - AlternoX
Fix It Felix! / 150pts / 19 Solves - blackcon
Tensed Tom / 200pts / 1 Solves - Shantanu Rahman

 

OSINT

 

Canada Server / 50pts / 399 Solves - yoobi
Explosion In Front Of Bank Of Spain / 100pts / 142 Solves - Paul Jeremiah
Find The Camera / 100pts / 291 Solves - Paul Jeremiah
Find The Hacker / 100pts / 19 Solves
Java In Earth / 100pts / 63 Solves
Find The Hacker 2 / 100pts / 9 Solves
Find The Hacker 3 / 100pts / 4 Solves
Find The Hacker 4 / 150pts / 3 Solves

 

Cryptography

 

Passwd / 25pts / 536 Solves - yoobi
404 Not Found / 25pts / 143 Solves - Jagsec
Jumble / 50pts / 291 Solves - yoobi
The Pairs / 50pts / 20 Solves
RSA-One / 100pts / 142 Solves - Kabilan S
AlphabetknockCode / 100pts / 145 Solves
Tony Stark Needs Help / 150pts / 113 Solves
Feistival / 150pts / 153 Solves
Tony Stark Needs Help Again / 150pts / 35 Solves

 

PWN

 

What's Your Name / 50pts / 321 Solves - yoobi
Hackers Vault / 100pts / 208 Solves - yoobi
What's Your Name 2 / 100pts / 187 Solves - Team TamilCTF

 

Programming

 

Keep Calculating / 25pts / 308 Solves - yoobi
Time Complexity / 25pts / 261 Solves - yoobi
Reverse The Answer / 50pts / 305 Solves - yoobi
Square Sum / 50pts / 301 Solves - Jagsec
Something In Common / 50pts / 355 Solves - yoobi
Find The Number / 50pts / 328 Solves - yoobi
Run The Program / 50pts / 157 Solves
Loop In A Loop / 100pts / 303 Solves - yoobi

 

Misc

 

The Hungry Dragon / 50pts / 196 Solves - Felix
Broken Datasheet / 100pts / 161 Solves - gom8
Unzip Me / 100pts / 293 Solves - yoobi
Look Closely / 100pts / 169 Solves - Team Red Knights CTF

 

Steganography

 

FileD / 25pt / 236 Solves - Felix
Follow The White Rabbit / 25pt / 337 Solves - Felix
Follow / 25pt / 262 Solves - Team Read Knights CTF
QR Code From The Future / 100pt / 266 Solves - Darkspider
Bangladesh / 100pt / 97 Solves - Raj Chowdhury

 

Networking

 

Robots.txt / 25pts / 234 Solves - Adem Hmissa
Vuln / 25pts / 176 Solves
FTP Flag / 25pts / 215 Solves - Adem Hmissa
PHP Version / 25pts / 127 Solves
How's The Shark? / 25pts / 355 Solves - yoobi
KCTF / 25pts / 96 Solves
Find the Flag / 50pts / 328 Solves - Jagsec
Compromised CTF Platform / 50pts / 265 Solves - Adem Hmissa
Vuln Columns / 50pts / 154 Solves
Hashed Password / 50pts / 117 Solves
Database Flag / 50pts / 106 Solves
Admin Arena / 50pts / 198 Solves - Adem Hmissa
Attacker / 50pts / 131 Solves - Jagsec

 

Digital Forensics

 

The Lost Flag / 25pts / 329 Solves
Compromised FTP / 25pts / 313 Solves - Team TamilCTF
Unknown File / 50pts / 201 Solves - Team TamilCTF
Let's Walk Together / 50pts / 210 Solves - Team TamilCTF

 

Web

 

Sometime you need to look wayback / 25pt / 377 Solves

 

 

 

check source of this site,

we can get github repo URL

 

go to checking repo101's commit log,

we can get the FLAG

 

 

End

 

Do Something Special / 50pt / 362 Solves

 

 

 

In this site, we can see that '#' letter is not working

 

Thus, exchange # -> %23

We can get the FLAG

 

 

End

 

Obsfuscation Isn't Enough / 50pt / 383 Solves

 

 

 

encrypted JS Code

 

We can get real Code by using ".toString()"

 

 

Then, we can get decoument.location infomation,

Access that php file, We can get the FLAG

 

 

End

 

Reverse Engineering

 

The Flag Vault / 25pt / 389 Solves

 

 

Using IDA to decompile file,

we can get C code of Chall file

 

 

Enter that password, and we can get the FLAG

 

 

End

 

The Encoder / 50pt / 342 Solves

 

 

Using IDA to decompile file,

we can get C code of Chall file

 

 

Make simple python reverse script & brute forcing it

 

import string

s = string.ascii_letters + string.punctuation + string.digits


def countChar(s):
    v3 = 0
    i = 0
    while True:
        if len(s) == i:
            break
        if s[i] != 10:
            v3 = v3 + 1
        i = i + 1
    return v3


v7 = 1337
v6 = 0
s2 = "KCTF"
s1 = "1412 1404 1421 1407 1460 1452 1386 1414 1449 1445 1388 1432 1388 1415 1436 1385 1405 1388 1451 1432 1386 1388 1388 1392 1462"
s1 = s1.split(" ")
flag = ""

for i in range(len(s1)):
    s1[i] = int(s1[i])

for j in range(len(s1)):
    i = 0
    while True:
        v3 = countChar(s)
        if i >= v3:
            break
        v6 = int(ord(s[i]))
        # print(v6+v7)
        if (v6+v7) == s1[j]:
            flag += s[i]
        i = i + 1

print(len(s1))
print(flag)

 

We can get the FLAG

 

 

End

 

Baby Shark / 50pt / 294 Solves

 

 

This Chall is given .jar file

Using Java Decompiler to get JAVA code

 

in String.class we can get String _0xflag value

 

 

Decode from Base64

We can get the Flag

 

 

End

 

Flag Checker / 100pt / 194 Solves

 

 

Using IDA to decompile file,

we can get C code of Chall file

 

 

Make simple reverse C code and brute forcing it

 

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

int __cdecl main(int argc, const char** argv, const char** envp)
{
    char v4[512]; // [rsp+0h] [rbp-240h] BYREF
    char v5[51]; // [rsp+200h] [rbp-40h] BYREF
    char key[512];
    char v6; // [rsp+233h] [rbp-Dh]
    int v7; // [rsp+234h] [rbp-Ch]
    int j; // [rsp+238h] [rbp-8h]
    int i; // [rsp+23Ch] [rbp-4h]
    int k;

    for (i = 0; v4[i]; ++i)
    {
        v4[i] = i;
    }

    strcpy(v5, "08'5[Z'Y:H3?X2K3V)?D2G3?H,N6?G$R(G]");
    printf("Give me a flag : ");

	//32 ~ 126 means ASCII
    for (i = 32; i <= 126; ++i)
    {
        if (v4[i] <= 64 || v4[i] > 90)
        {
            if (v4[i] <= 96 || v4[i] > 122)
                v4[i] = v4[i];
            else
                v4[i] = -37 - v4[i];
        }
        else
        {
            v4[i] = -101 - v4[i];
        }
    }
    for (j = 32; j <= 126; ++j)
        v4[j] -= 32;
    v7 = 0;
    v6 = 0;

	//Fing FLAG
    for (i = 0; i <= 35; i++)
    {
        for (j = 32; j <= 126; j++)
        {
            if (v5[i] == v4[j])
                printf("%c", j);
        }
    }
    exit(0);
}

 

We can get the FLAG

 

 

End

 

Knight Vault / 100pt / 193 Solves

 

 

Using IDA to decompile file,

we can get C code of Chall file

 

 

Make simple reverse C code and brute forcing it

 

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

int __cdecl main(int argc, const char** argv, const char** envp)
{
    char v4; // [rsp+Bh] [rbp-435h]
    int i; // [rsp+Ch] [rbp-434h]
    int j;
    int v6; // [rsp+Ch] [rbp-434h]
    char v7[48]; // [rsp+10h] [rbp-430h] BYREF
    char v8[1016]; // [rsp+40h] [rbp-400h] BYREF
    unsigned __int64 v9; // [rsp+438h] [rbp-8h]

    //v9 = __readfsqword(0x28u);
    strcpy(v7, "*9J<qiEUoEkU]EjUc;U]EEZU`EEXU^7fFoU^7Y*_D]s");
    puts("Hello There..\nWelcome to KS Vault.");
    printf("Please enter vault password : ");

    for (i = 0; i < 1016; ++i)
    {
        v8[i] = i;
    }

    for (i = 32; i <= 126; ++i)
    {
        v8[i + 512] = v8[i] - 10;
        if (v8[i + 512] == 65)
            v8[i + 512] = 42;
        //printf("%c ", v8[i]);
    }
    v6 = 0;
    v4 = 0;

    //43
    for (i = 0; i < 43; i++)
    {
        for (j = 32; j <= 126; j++)
        {
            if (v7[i] == v8[j + 512])
                printf("%c", j);
        }
    }
    return 0;
}

 

We can get the FLAG

 4K was appeared, change 4K -> K

 

 

End

 

OSINT

 

Canada Server / 50pt / 399 Solves

 

 

 

FLAG : KCTF{192.99.167.83}

 

End

 

Cryptography

 

Passwd / 25pt / 536 Solves

 

 

This Chall is given passwd file

 

 

using MD5 attacker to attack given string,

we can get password of knight user

 

 

FLAG : KCTF{exploit}

 

End

 

Jumble / 50pt / 291 Solves

 

 

This Chall is given script and ciphertext

 

make reverse python script and run it

 

def ff(t):
    c = list(t)
    for i in reversed(range(len(t))):
        for j in reversed(range(i, len(t) - 1)):
            c[j], c[j+1] = c[j+1], c[j]
    return "".join(c)

def f(t):
    c = list(t)
    for i in range(len(t)):
        for j in range(i, len(t) - 1):
            c[j], c[j+1] = c[j+1], c[j]
    return "".join(c)

if __name__ == "__main__":
    enc = "0Un5Hfz02zQ=NtVB0=RZfMSX"
    #origin = "ababababcdcdcdcd"
    #enc = "bbbbddddaaccacca"
    #print(f(origin))
    print(ff(enc))

 

We can get encrypted Base64

 

 

We can get FLAG by decoding it

 

 

End

 

PWN

 

What's Your Name / 50pt / 321 Solves

 

 

Using IDA to decompile file,

we can get C code of Chall file

 

We can enter the values to v4[60],

but, the Chall ask us to change v5 value

 

This is simple BOF Chall

Enter more than 60 bytes to overflow the buffer

 

We can get the FLAG

 

 

End

 

Hackers Vault / 100pt / 208 Solves

 

 

Using IDA to decompile file,

we can get C code of Chall file

 

 

Make simple python code to get correct passcode

 

a = 0
c = 0
tmp = 0

while True:
    a = a + 1
    print(a)
    tmp = a
    c = 0
    while tmp:
        c += int(tmp % 10)
        tmp /= 10
    print(c)
    if int(c) == 48:
        print(int(a))
        print(int(c))
        break

 

Enter 399999,

We can get the FLAG

 

 

End

 

Programming

 

Keep Calculating / 25pt / 308 Solves

 

 

make python script by given direction

 

x = 1
y = 2
ans = 0

while True:
    if x > 666:
        break
    ans = ans + ((x*y) + int(str(x)+str(y)))
    x = x + 1

print(ans)

 

We can get the FLAG

 

FLAG : KCTF{2666664}

 

End

 

Time Complexity / 25pt / 261 Solves

 

 

Time Complexity of this Algo is θ(n)

 

FLAG : KCTF{θ(n)}

 

End

 

Reverse The Answer / 50pt / 305 Solves

 

 

make python script by given direction

 

x = 1
ans = 0

while True:
    if x > 543:
        break
    cal = (x*(x+1)) + (2*(x+1))

    reversed_calc = int(str(cal)[::-1])

    if reversed_calc % 4 == 0:
        ans = ans + reversed_calc
    x += 1

print(ans)

 

FLAG : KCTF{12252696}

 

End

 

Something In Common / 50pt / 355 Solves

 

 

make python script by given direction

 

import math

x = 21525625
y = 30135875


gcd = math.gcd(x, y)

print(gcd)
gcd = str(gcd)
seperation = []
sum = 0

for i in range(len(gcd)):
    seperation.append(gcd[i])

for data in seperation:
    sum = sum + int(data)

flag = sum * 1234

print(flag)

 

FLAG : KCTF{24680}

 

End

 

Find The Number / 50pt / 328 Solves

 

 

 

make python script by given flowchart

 

def G_Sum(n):
    if n < 0:
        return 0

    return 1 / (pow(2,n)) + G_Sum(n - 1)

n = 25
print(G_Sum(n))

 

FLAG : KCTF{1.9999999701976776}

 

End

 

Loop In A Loop / 100pt / 303 Solves

 

 

This Chall is given under C code

 

 

translate to C language and make reverse code

 

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

int main() {
	char flag[100] = { 0 };
	char x;
	puts("Enter\n");
	scanf("%s", flag);


	printf("%d\n", strlen(flag));
	
    //encrypt
	/*
	for (int i = 0; i < strlen(flag); i++) {
		for (int j = i; j < strlen(flag) - 1; j++) {
			char x = flag[j];
			flag[j] = flag[j + 1];
			flag[j + 1] = x;
		}
	}
	*/

	//decrypt
	for (int i = 0; i < strlen(flag); i++) {
		for (int j = strlen(flag) - 2; j > strlen(flag) - i - 1; j--) {
			char x = flag[j];
			flag[j] = flag[j + 1];
			flag[j + 1] = x;
		}
	}

	for (int i = 0; i < 24; i++)
		printf("%c", flag[i]);

	if (flag == "CFb5cp0rm1gK{1r4nT_m4}6")
		puts("\nCongrats. That's the flag!");
	else
		puts("\nWrong flag. Bye");

	return 0;
}

 

We can get the FLAG

 

 

End

 

MISC

 

Unzip Me / 100pt / 293 Solves

 

 

This Chall is given unzipme.tar.gz file

 

after

# tar -xvf unzipme.tar.gz

 

We can get unzipme file

This file have the FLAG format string

but, it's a little weird

 

 

Using Hxd.exe to analyze it

 

unzipme file have very similar header with .zip file

but, it was reversed each bytes

 

make simple python script to recover zip file

 

f = open("./unzipme", "rb")
origin = f.read()
f.close()

flag = []

i = 0
while True:
    try:
        if i >= len(origin):
            break
        flag.append(origin[i + 1])
        flag.append(origin[i])
        i = i + 2
    except Exception as e:
        print(e)

f = open("./flag.zip", "wb")

for data in origin:
    print(hex(data) + " ", end="")

print()

for data in flag:
    print(hex(data) + " ", end="")

f.write(bytes(flag))

 

Now, we got complete zip file

 

 

We can get the FLAG by unzip that file

 

 

End

 

Networking

 

How's the Shark? / 25pt / 355 Solves

 

 

This Chall is given one data.pcapng file

 

First step is Using wireshark to open it,

 

Export HTTP object list and click "Save All" button to save everything

 

 

We can find FLAG in one of the downloaded files

 

 

End

 

'CTFs' 카테고리의 다른 글

[Real World CTF 4th] review & studies  (0) 2022.01.31
[Real World CTF 4th] write-ups  (0) 2022.01.31
[KnightCTF 2022] review & studies  (0) 2022.01.25
[2020 InCTF] write-ups  (0) 2021.01.17
[2020 SSTF] write-ups  (0) 2021.01.17

+ Recent posts