반응형

Great Binary 50

주어진 파일을 열어보면 바이너리가 적혀있다.

아래 사이트를 이용해 아스키로 변환하면 끝.

https://www.branah.com/ascii-converter

 

ASCII Converter - Hex, decimal, binary, base64, and ASCII converter

Convert ASCII characters to their hex, decimal and binary representations and vice versa. In addition, base64 encode/decode binary data. The converter happens automatically.

www.branah.com

HackCTF{crypto_v2ry_easy_pr0b1em}

 

 

Smooth CipherText 100

Rijvsmysmysmy Itovwyrc! Ns wyy ixsu Glm kq G? wc lkqc sw qwsmdlkkr sr...M ixsu fipi acvp urer iss geld! Md iss mel niastfov rrmq mvwzxmqvyw, cme gyx kcd xfo gmbvcmx yxwuov. qy, jjkk gc LymoADJ{t_tzwi_3vxbd0p3_vff.afy'q_wzoxpq_dp_qfz}

 

LymoADJ == HackCTF

m과 a가 C에 중복으로 대응되는 것으로 보아, 카이사르는 아니다. 그래서 비제네르로 돌려봤다.

본문 key = key

플래그 key = n

 

 

Classic Cipher -1 100

Hint : [::-1]

?y4zl4J_d0ur_b0f_0K zp nhsm

 

[::-1] 은 reverse. 즉 글자 순서를 뒤바꿔주면 된다.

그 다음에 카이사르를 돌리니 플래그가 나왔다.

 

HackCTF{D0_y0u_kn0w_C4es4r?}

 

 

RSA

200

RSA 알고리즘을 이용하여 값을 해독해보자! 
파일에 나와있는 c, p, q, e 는 RSA 대한 파라미터 값이다. 

 

p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483

q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407

e = 65537

c = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

 

https://mandu-mandu.tistory.com/110 이 글에 나온 방법대로 따라하면 된다.

그러면 값이 12058e43d9e0c22559c19774 가 나오는데, 이를 10진수로 변환해서 플래그 인증하면 된다.

 

Classic Cipher -3

200

 

 

RSA2

200

(n, c) = 675517326695494061190287679557796696358902817969424171685361, 0xe3712876ea77c308083ef596a32c5ce2d7edf22abbc58657e

 

 

n 을 소인수분해 하여 p와 q를 구한다.

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

 

 

 

e를 65537 기본으로 잡고 복호화.

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
def egcd(a, b):
    x,y, u,v = 0,11,0
    while a != 0:
        q, r = b//a, b%a
        m, n = x-u*q, y-v*q
        b,a, x,y, u,v = a,r, u,v, m,n
        gcd = b
    return gcd, x, y
 
def main():
 
    p = 804811499343607200702893651293
    q = 839348502408870119614692320677
    e = 65537
    ct = 0xe3712876ea77c308083ef596a32c5ce2d7edf22abbc58657e
 
    # compute n
    n = p * q
 
    # Compute phi(n)
    phi = (p - 1* (q - 1)
 
    # Compute modular inverse of e
    gcd, a, b = egcd(e, phi)
    d = a
 
    print"d:  " + str(d) );
 
    # Decrypt ciphertext
    pt = pow(ct, d, n)
    print"pt: " + str(pt) )
 
if __name__ == "__main__":
    main()
 
cs

 

pt = plain text

평문값을 hex로 변환한 뒤에 ascii로 바꾸면 flag가 나온다.

 

 

 

 

 

RSA3

250

n = 10283681839193276126097189449431804469761940095295471888398234447479454966284763902940257262270896218602885591849219329295416054197234326881779747263501982465102957508563705432633950651360492963151374387619070656704554971992649022858286686244477458518219811343940208016922937570643216329114427596008380607613093481777894261584227765149699743645734317383348201997748556656749211035951710759363655486663011079526697122026161182876988679088458171192764980121987583057238040415225285169219391637708267493561674900564748140379192079752942242600521017002960185256025253900075152690586476143729320416895984549165574371936823

c = 0x5c93ba85692a8b3981a5d47be0e80d129b8a2f6cf4dc134547aa7e1620f6691513b1dc1d69e085c39e261c2b49026436bb243dba70a86f7fcd1a3a7e6b0f0ecfac015becad0a76e9cf208d5d31e2b4865

e = 3

 

 

n은 매우 크고 e는 매우 작다.

 

c = m^e mod n = m^e

 

HelloCryto

350

key 길이는 14

flag 앞에는 HackCTF{ 인 것을 알고 있으니 key 14자리중 8자리 알아낼 수 있고

메세지 뒤에 key값이 붙은 것이 다시 key 앞에 8자리랑 연산을 하니 key 뒷자리도 알아낼 수 있음.

 

 

 

XOR

400

 

 

역연산돌리자

 

반응형

'WAR GAME > HackCTF' 카테고리의 다른 글

HackCTF Reversing 카테고리 풀이  (0) 2019.08.29
HackCTF Pwnable [Basic_BOF #1] 풀이  (0) 2019.07.24
HackCTF Forensics 카테고리 풀이  (0) 2019.07.20
HackCTF MISC 카테고리 풀이  (0) 2019.07.18
HackCTF Web 카테고리 풀이  (0) 2019.07.18

+ Recent posts