본문 바로가기

#CTF 2020

Syskron Security CTF 2020 Write up

반응형

수요일, 21 10 2020, 00:00 UTC — 월요일, 26 10 2020, 00:00 UTC

 

The 2020 Syskron Security CTF event is a free online cyber security competition for everyone. This year's CTF event features an original background story! You act as a cyber security professional, working for a Czech manufacturing company.

 

[Trivia]

- Vulnerable RTOS

- Security Framework

- Deadly Malware

- Check Digit

 

[Monday]

- Security Headers

- Redacted news

 

[Tuesday]

- Bash history

- Change

- Leak audit

 

[Wednesday]

- Screenshot

 

[Thursday]

- Security Advisory


[Trivia]

 

 

  • 주어진 문제를 그대로 구글에 검색해보았다.

 

 

  • Flag : syskronCTF{URGENT/11}

 

  • 문제를 그대로 구글에 검색하여 이미지를 살펴보니 아래와 같은 약칭이 나왔다.

 

  • Flag : syskronCTF{ID-PR-DE-RS-RC}

 

  • 문제를 그대로 검색하면 첫번째에 바로 멀웨어 이름이 나온다.

 

 

  • Flag : syskronCTF{Triton}

 

  • IMEI numbers, credit card numbers, UIC wagon numbers를 check digit와 관련지어 검색해 보면 flag가 나온다.

 

 

  • Flag : syskronCTF{ISO/IEC-7812}

[Monday]

 

 

  • 문제에서 주어진 사이트에 접속하여 개발자 도구에서 네트워크를 보면 빈 페이지가 나온다.
  • 사이트에 아무 버튼을 클릭해보면 여러가지가 실행되는 걸 볼 수 있다.

 

 

 

  • 그 중 Name에서 해당 사이트 URL을 눌러보면 Headers에서 flag를 볼 수 있다.
  • Flag : syskronCTF{y0u-f0und-a-header-flag}

 

  • 주어진 png파일을 열어보면 중간에 비어 있는 부분이 있다.

 

 

  • Stegsolve로 확인해보면 바로 flag가 나온다.

 

 

  • Flag :  syskronCTF{d0-Y0u-UNdEr5TaND-C2eCh?}

[Tuesday]

 

 

  • strings 명령어로 파일을 확인해 보면 중간중간 base 64 인코딩되어 있는 문자열을 볼 수 있다.
  • 하나씩 디코딩 해보았다.

 

  • flag 형태가 보인다.  
  • 중간에 xYTjBNR3hsTFdGc2JDMUVZWFJoSVNGOQ== base64 인코딩된 형태가 있지만 디코딩해보면 알 수 없는 문자열이 나온다.

 

 

  • 문자열을 여기저기 합쳐서 디코딩을 해보았다.
  • flag 형태가 나오긴 전 문자열과 디코딩이 되지 않은 문자열을 합쳐보니 아까보다 좀 더 긴 문자열이 나왔다.
  • 나온 문자열을 한 번 더 디코딩해 보았다.

 

 

  • Flag : syskronCTF{tHey-st0le-all-Data!!}

 

주어진 jpg 파일만 보고는 알 수 있는 게 없어 HxD로 살펴보았다.

Exif가 나오길래 exiftool로 확인해보았다.

 

 

  • Copyright를 보면 코드가 적혀있는 걸 볼 수있다.
  • 줄바꿈 없이 적힌 코드여서 java script 디코딩을 해보았다.
 

Online PHP Javascript Script Decoder | Quttera

 

malwaredecoder.com

 

  • 실행해보려고 했지만 오류가 너무 많다...........;;
  • exiftool에서 본 코드를 웹에서 바로 실행시켜보았다.
 

JSFiddle - Code Playground

 

jsfiddle.net

 

  • Flag : syskron{l00k5l1k30bfu5c473dj5}

 

 

 

  • db파일이 주어져서 sqlite3로 열어보았다.
  • 테이블은 총 2개이다.

 

 

  • How many employee records are in the file? 376
  • Are there any employees that use the same password? man6geiVoo
  • 두번재 질문까지는 sql문으로 해결이 가능하다. 
 

bcrypt - Wikipedia

bcrypt is a password-hashing function designed by Niels Provos and David Mazières, based on the Blowfish cipher and presented at USENIX in 1999.[1] Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over

en.wikipedia.org

 

 

  • bcrypt는 문자열 길이가 정해져있다. 60자 정도 되는 것 같다.
  • How many records are protected with bcrypt? 21
  • Flag : syskronCTF{376_man6geiVoo_21}

[Wednesday]

 

 

  • 스크린 샷에 유용한 무언가가 있다고 한다.
  • 처음에 주어진 이미지만 뚫어져라 보았는데 아무것도 나오지 않았다.
  • 이미지 파일이니까 Stegsolve로 확인해보았다.

 

 

  • Green plane 0에서 스크린샷에 없던 화면이 나왔다.
  • 하단에는 "This is more interesting." 이라고 적혀있고 가운데에 흰색 픽셀이 있다.
  • 이걸 바이너리로 표현한 다음 문자열로 바꾸면 flag가 나올 것 같다.

 

from PIL import Image

f=Image.open("D:/CTF/Syskron Security CTF 2020/Wednesday/Screenshot/solved1.bmp")

for i in range(f.size[0]):
    for j in range(f.size[1]):
        pixel=f.getpixel((i,j))
        
        if pixel == (255,255,255):
            print(i,j,pixel)  

 

  • 먼저 흰색 구간을 찾아보았다. 너비는 800, 높이는 207까지 나온다.
  • 처음에 흰색을 0으로 두고 했다가 이상한 문자열이 나와 한참 헤멨는데 결론적으로 흰색은 1, 검은색이 0이다.

 

from PIL import Image

img=Image.open("D:/CTF/Syskron Security CTF 2020/Wednesday/Screenshot/solved1.bmp")
result=""

for x in range(img.size[0]):
    byte = ""
    for y in range(208):
        pixel=img.getpixel((800,y))
    
        if pixel== (255, 255, 255):
            byte+='1'
        else:
            byte+='0'
        
print(byte)

for i in range(0,len(byte),8):
    result+=chr(int(byte[i:i+8],2))
    

print(result)

 

 

  • Flag : syskronCTF{s3cr3T_m3sS4g3}

[Thursday]

 

 

  • Exiftool로 확인해보았다.

 

 

  • Creator에 헥스값이 적혀있다.

 

 

  • here you go 라면서 문자열을 주었다.
  • um........... base64 디코딩이 되지 않는다............ 메타데이터......?
  • 다시 pdf파일을 한 줄씩 읽어보았다.

 

  • pdf를 보면 Blowfish가 적혀있다.  
  • Blowfish는 대칭키 암호화 알고리즘 중 하나라고 한다.

 

 

  • 2페이지에 hex값처럼 생긴 문자열이 8개가 있다.
  • cyberchiper사이트에서 blowfish 디코딩을 해보았다.
 

CyberChef

 

gchq.github.io

 

 

  • 대칭 알고리즘을 디코딩을 하려면 key와 IV가 필요하다. 
  • key와 iv는 8bytes씩 이라고 한다.
  • 아까 hex값을 디코딩해서 나온 "2ZdkKTtprGddHh33"가 16bytes이니까 반씩 나누어 key와 iv에 넣어보았다. 
  • Input에는 아까 나온 8개의 hex값 중 첫번째 것을 넣어 보았다.

 

 

  • 오.... flag 앞부분이 나왔다.
  • 2ZdkKTtprGddHh33는 base64가 아니라 utf-8이다.
  • 8개의 문자열을 모두 input에 넣고, Mode를 OFB로 바꾸었다. 
  • blowfish와 OFB mode에 대해서는 다시 알아봐야겠다....

 

 

  • Flag : syskronCTF{you-Just-anaLyzed-your-1st-advisorY}.

 

반응형

'#CTF 2020' 카테고리의 다른 글

Sunshine CTF 2020  (0) 2020.11.11
CyberYoddha CTF 2020 Write up  (0) 2020.11.02
Hacktober CTF 2020 writeup  (0) 2020.10.18
제 2회 TeamH4c CTF Write up  (0) 2020.10.11
CCE 2020 예선 #Crypto - [중]easy rsa  (0) 2020.09.29