728x90
반응형

Shifter

Misc

 

What a strange challenge...

It'll be no problem for you, of course!

 

 

 

Solve 50 of these epic problems in a row to prove you are a master crypto man like Aplet123!
You'll be given a number n and also a plaintext p.
Caesar shift `p` with the nth Fibonacci number.
n < 50, p is completely uppercase and alphabetic, len(p) < 50
You have 60 seconds!
--------------------
Shift XECK by n=1

 

주어진 문자열을 n번째 피보나치 수열 만큼 shift 한 값을 보내면 된다.

 

 

EX

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from pwn import *
 
def fibo(n):
    t = [01]
 
    if n in (01):
        f = n
    else:
        for i in range(2, n+1):
            f = sum(t)
            t = [t[1], f]
 
    return f
 
 
 
 
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 
= remote("misc.2020.chall.actf.co"20300)
 
for a in range(0,50):
    p.recvuntil("Shift ")
    taskstr = list((p.recvuntil(" ")).strip())
    p.recvuntil("=")
    n = fibo(int(p.recvline()))
 
 
    for i in range(len(taskstr)):
        taskstr[i] = alpha[(ord(taskstr[i]) - 65 + n) % 26]
 
    ans = ''.join(taskstr)
    print ans
    p.sendline(ans)
p.interactive()
 
cs

 

 

 

flag : actf{h0p3_y0u_us3d_th3_f0rmu14-1985098}


Reasonably Strong Algorithm

Crypto

 

 

n = 126390312099294739294606157407778835887
e = 65537
c = 13612260682947644362892911986815626931

 

 

https://www.alpertron.com.ar/ECM.HTM

 

Integer factorization calculator

 

www.alpertron.com.ar

여기에서 n을 인수분해 해준다.

 

 

126 390312 099294 739294 606157 407778 835887 (39 digits) = 9 336949 138571 181619 × 13 536574 980062 068373

 

 

 

$ python rsatool.py -p 9336949138571181619 -q 13536574980062068373
Using (p, q) to initialise RSA instance

n = 126390312099294739294606157407778835887 (0x5f15e3803896f7b78f17d685eb590daf)

e = 65537 (0x10001)

d = 122116681453826726664714315157880092841 (0x5bded13dfcef588dae9e87c5c23eb8a9)

p = 9336949138571181619 (0x819381c5b26cbe33)

q = 13536574980062068373 (0xbbdb93397a0a3e95)

 

rsatool.py를 이용해서 d값을 구해준다.

 

c^d mod N

 

복호화

 

 

flag : actf{10minutes}

 

 

 


 

Wacko Images

Crypto

 

How to make hiding stuff a e s t h e t i c? And can you make it normal again? enc.png image-encryption.py

 

 

enc.png

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from numpy import *
from PIL import Image
 
flag = Image.open(r"flag.png")
img = array(flag)
 
key = [413723]
 
a, b, c = img.shape
 
for x in range (0, a):
    for y in range (0, b):
        pixel = img[x, y]
        for i in range(0,3):
            pixel[i] = pixel[i] * key[i] % 251
        img[x][y] = pixel
 
enc = Image.fromarray(img)
enc.save('enc.png')
cs

 

각 픽셀의 rgb 값에 각각 41, 37, 23을 곱하고 251로 나눈 나머지 값을 저장하여 enc.png 이미지를 만든다.

 

 

역연산을 해주면 되는데 251로 나눈 몫을 모르기 때문에 t로 두고 브포를 때렸다.

 

 

ex.py :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from numpy import *
from PIL import Image
 
flag = Image.open(r"enc.png")
img = array(flag)
 
key = [413723]
 
a, b, c = img.shape
 
for x in range (0, a):
    for y in range (0, b):
        pixel = img[x, y]
        for i in range(0,3):
            for t in range(0,41):
                if (251 * t + pixel[i]) % key[i] == 0:
                    pixel[i] = (251 * t + pixel[i]) / 23
        img[x][y] = pixel
 
enc = Image.fromarray(img)
enc.save('flag.png')
 
cs

 

 

728x90
반응형

'CTF Write Up' 카테고리의 다른 글

FIESTA 2020 Write up  (2) 2020.09.07
2020 Defenit CTF Write Up  (2) 2020.06.06
angstrom CTF 2020 write up  (0) 2020.03.14
UTCTF 2020 Write up  (0) 2020.03.07
RiceTeaCatPanda CTF 2020 Write up  (0) 2020.01.22
Christmas CTF 2019 Write-up 문제 풀이  (2) 2019.12.30

+ Recent posts