Evlz CTF 2019 FindMe

CTF/Writeup 2019. 2. 6. 11:58

바이너리를 실행해보면 키 값을 입력받아 총 3개의 함수를 거쳐 여러가지 연산을 한다. 



먼저 첫번째 함수를 보면 다음과 같이 알파벳들에 대해 간단한 rotate 연산을 한다.



두번째 함수와 세번째 함수와 같은 경우 코드가 복잡해서 디버깅을 통해 리턴값을 확인해보니 두번째 함수는 몇몇 특수문자들에 대한 URL Encoding을 하고있었고, 세번째 함수는 base64 인코딩을 하고 있었다.


위 세 함수를 거친 값을 dWdnYyUzQSUyRiUyRnJpeW0lN0JoZXlfZnJyemZfZWJnZ3JhX2p2Z3VfNjQlN0RwZ3MucGJ6 요놈과 비교해주기 때문에 간단히 역연산 해주는 코드를 아래와 같이 짜서 돌려줬다.


import urllib2

result = "dWdnYyUzQSUyRiUyRnJpeW0lN0JoZXlfZnJyemZfZWJnZ3JhX2p2Z3VfNjQlN0RwZ3MucGJ6".decode("base64")

result = urllib2.unquote(result).decode('utf8')

dec = ""

for i in range(0,len(result)):

    if ord(result[i])>64 and ord(result[i])<=90:

        dec += chr((ord(result[i])-52)%26+65)

    elif ord(result[i])>96 and ord(result[i])<=122:

        dec += chr((ord(result[i]) - 84) % 26 + 97)

    else:

        dec += result[i]

print dec


Flag = http://evlz{url_seems_rotten_with_64}ctf.com

'CTF > Writeup' 카테고리의 다른 글

Codegate CTF 2019 KingMaker  (0) 2019.02.16
Trust CTF 2019 Web Writeup  (0) 2019.02.16
Evlz CTF 2019 WeTheUsers  (0) 2019.02.04
NCSC CTF 2019 Web Wrietup  (0) 2019.02.04
Codegate CTF 2019 Preliminary Rich Project  (0) 2019.01.27
블로그 이미지

JeonYoungSin

메모 기록용 공간

,