본문 바로가기

#CTF 2020

Sunshine CTF 2020

반응형

토요일, 07 11월 2020, 14:00 UTC — 월요일, 09 11월 2020, 14:00 UTC

 

 

[Crypto]

 

[문제]

  • Emoji crpyto 문제이다.
  • 구글 검색해보면 emoji decode가 있다고 한다.
  • 하지만 문제를 다시 보니 힌트에  디코딩을 하고 있다면 큰 잘못이라고 적혀있었다.
  • 먼저 알파벳으로 대입을 해보았다. 

 

  • ⭐=a, 🌈=b, 🍀=c  
  • 이렇게 바꾸게 되면 알파벳이 8개 밖에 안나온다.
 

quipqiup - cryptoquip and cryptogram solver

 

quipqiup.com

  • 이 사이트에서 확인해보았지만 플래그는 나오지 않았다.
  • 플래그 형태라면 S가 먼저 나와야 한다.
  • 아스키코드표로 이번엔 숫자로 바꾸어 보았다.

 

[8진수]

 

  • 뭔가 알파벳이 8개 나온 것 처럼 숫자도 8개 밖에 없으니까 8진수로 푸는 거 같다.
  • 만약 처음 ⭐🌈🍀가 플래그 형태라면 sun에서 s가 나와야 한다.  
  • 10진수라면 ⭐🌈🍀 115이고, 8진수라면 163이다.
  • 10진수는 겹치는 게 생기니까 8진수가 맞는 것 같다.

 

 

  • ⭐=1, 🌈=6, 🍀=3
  • 그 다음 u는 165이니까 🦄=5
  • 앞에 플래그 형태 sun 뒤에 { 는 173이니까 ⭐🎈🍀 중 🎈=7이다.
  • 남은 🌑💜🐴는 8진수 중 앞에서 나오지 않은 0, 2, 4일 것이다.

 

[잘못된 플래그]

 

  • '🌑':0,'💜':2,'🐴':4 이게 문제인 것 같다. 
  • 나온 순서대로 대입했지만 아닌 것 같다....

 

emoji={'⭐':1,'🌈':6,'🍀':3,'🦄':5,'🎈':7,'💜': 0,'🐴': 2,'🌑':4}

string='⭐🌈🍀 ⭐🌈🦄 ⭐🦄🌈 ⭐🎈🍀 ⭐🦄🌑 ⭐🌈🦄 ⭐🌑🍀 ⭐🦄🍀 ⭐🎈⭐ 🦄🦄 ⭐🦄🎈 ⭐🌑🍀 ⭐🌈🌑 ⭐🌑⭐ ⭐🦄🌑 🦄🦄 ⭐🌑🦄 ⭐🦄🌈 ⭐🌑🍀 ⭐🦄🎈 ⭐🌑🌑 ⭐🦄⭐ ⭐🦄🌈 ⭐🌑🎈 🦄🦄 ⭐🦄⭐ ⭐🌈🍀 🦄🦄 ⭐🌈🌑 ⭐🦄💜 ⭐🌑🦄 🦄🦄 ⭐🌑🐴 ⭐🌑🦄 ⭐🌈🍀 ⭐🌈🌑 🦄🦄 ⭐🌑🦄 ⭐🦄🌈 ⭐🌑🍀 ⭐🦄🎈 ⭐🌑🌑 ⭐🦄⭐ ⭐🦄🌈 ⭐🌑🎈 🦄🦄 ⭐🦄🦄 ⭐🌑🦄 ⭐🌈🌑 ⭐🦄💜 ⭐🦄🎈 ⭐🌑🌑 ⭐🎈🦄'


char=string.split(' ')
result=''

for i in char:
    code=''
    #print("i:",i)
    for letter in i:
        #print("letter:",letter)
        code += str(emoji[letter])
        #print("code: ",code)
    result += chr(int(code,8))
    
print("result:",result)

 

[flag]

 

  • 분명 🌑💜🐴는 무작위로 하는게 아니라 코드를 짜서 하는 문제일텐데...
  • 난 그냥 여러번 대입해보았다ㅠㅠ
  • Flag : sun{lucky-octal-encoding-is-the-best-encoding-method}

 


[Web]

 

[문제]

 

[login]

 

계정을 만들기 위해 로그인을 하는 문제인 것 같다.

개발자 도구, 페이지 소스 등등 아무것도 힌트되는 게 없다.

sql injection 문제도 아니었다.

id=admin  pw=' or '1'='1를 입력해보았지만 에러라고 나온다.

(이때까진 에러가 힌트라는 걸 몰랐다.......)

 

 

문제에 적힌 Password Pandemonium를 검색해보니 19개 정도의 리스트가 있었다.

 

[Password Pandemonium]

 

  • id=admin       pw= ADEAMIIE

 

 

[1번 에러]

음... 특수문자를 두가지 이상 적어야 한단다...

  • pw = ADEAMIIE!!!

 

[2번 에러]

 

소수(?)를 포함해야 한다? 숫자가 한 개 이상이여야 한다는 건가?

  • pw = ADEAMIIE!!!97

 

[3번 에러]

 

대소문자가 동일해야 한다.

기존에 입력했던 단어보다 짧게 줄여보았다.

pw = Aa!!!97    (패스워드가 너무 짧다고 나온다..........😤.;;;)

  • pw= AaAa!!!97

 

[4번 에러]

도대체 에러는 어디까지 나올건지...

  • pw = AaAa!!!97😱

 

 

[5번 에러]

 

아.........

자바스크립트에 성립을 해야 하는 건가...? (주석문처럼 하면 가능하지 않을까...?)

pw = //AaAa!!!97😱

 

 

[6번 에러]

 

위에 썼던 pw의 MD5 해시값은 앞자리가 c라서 안된다.

  • pw= "aA97😱"!="Aa"  MD5(298ae825d8f9d06fb75cffbfe7813044)
 

Md5 Decrypt & Encrypt - More than 15.000.000.000 hashes

 

md5decrypt.net

 

[7번 에러]

헐......

palindrome= 앞 뒤가 동일한 단어....

  • pw = "😱aA2Aa😱"=="😱aA2Aa😱"         MD5(03b07c88c1f66aaed32647bf2a14acd7)

 

 

[flag]

 

  • 우왕........ 드디어 플래그가 나왔다......
  • Flag : sun{Pal1ndr0m1c_EcMaScRiPt}

 

반응형

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

JISCTF 2020 write up SQUARE_qrcode  (0) 2020.11.23
JISCTF 2020 write up  (0) 2020.11.22
CyberYoddha CTF 2020 Write up  (0) 2020.11.02
Syskron Security CTF 2020 Write up  (0) 2020.10.26
Hacktober CTF 2020 writeup  (0) 2020.10.18