-
2팀_송설연_Write_Up (Suninatas_18)2021/Write-Ups 2021. 11. 23. 20:22
써니나타스 포렌식 관련 18번 문제 풀이
18번 문제를 클릭해보니 Cipher I : What is it ? 이라고 적혀있었고, 그 아래 이러한 숫자들이 나열돼있었습니다.
나열된 문자들을 살펴보니 2진수,8진수,16진수를 이용하는 것은 아닌 것 같았고 숫자들을 유심히 들여다보니 가장 작은 숫자가 48, 가장 큰 숫자가 121인 걸로 보아 아스키 코드를 이용하여 텍스트로 변환을 해야겠다는 생각이 들었습니다.
입력된 문자(숫자)를 Ascii, hex, binary, demical, base64 로 각각 변환해주는 사이트를 이용하여 위 숫자들을 변환해보았더니 (https://www.rapidtables.org/ko/convert/number/ascii-hex-bin-dec-converter.html)
이러한 결과들이 나왔습니다. 다른 문제들에 비해 명확한 답처럼 보이는 것이 없었기 때문에 확신을 갖지 못하고 ASCII변환 문자를 Authkey로 입력해보았더니
역시나 옳은 key가 아니었습니다.
그렇다면 *Base64 를 이용하여 인코딩된 문자를 디코딩 해봐야겠다는 생각이 들었습니다.
*base64 : 바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩이다. ASCII 문자 하나가 64진법의 숫자 하나를 의미하기 때문에 BASE64라는 이름을 가졌다. 8비트짜리 바이트 3개를 6비트씩 4개로 쪼개어 Base64 코드 4개로 바꾸어 표현한다. Base64 코드를 바이너리로 디코딩하기 편하게 하기 위해 Base64 코드를 무조건 4글자 단위로 만들고, 빈 부분을 '=' 문자로 채워두기도 한다. 3개의 바이트를 변환한다는 점에서 UTF-8 인코딩으로 작성된 한글/한자를 변환할 때 효율이 좋다. BASE64 코드를 쉽게 변환할 수 있는 사이트가 있다. 인코딩 디코딩 알고리즘이나 이미 존재하는 라이브러리를 이용해 직접 인코딩/디코딩 프로그램을 쉽게 만들 수 있다.
(출처 : 나무위키)
그래서 incode, decode 사이트에 들어가서 base64에 존재하는 문자들을 decode시켜줬더니,
(https://ostermiller.org/calc/encode.html)
처음 숫자들을 아스키코드 문자로 변환한 값들과 똑같은 문자들이 나왔고,
이 문자들을 한 번 더 디코딩 해준 결과
이러한 Authkey를 구할 수 있었습니다.
key를 입력한 결과
18번 문제를 무사히 풀 수 있었습니다.
써니나타스 18번 문제 해설 끝 !
'2021 > Write-Ups' 카테고리의 다른 글
1팀 박지혜 Write-Ups (Suninatas_18) (0) 2021.11.24 3팀_김소희_Write-Ups (HackCTF-Terrorist) (0) 2021.11.23 1팀 이유진 Write-Ups (Suninatas_21) (0) 2021.11.23 4팀_임예은_Write-Ups(Hack CTF-Questions?) (0) 2021.11.23 4팀_최민영 Write-Ups (Hcak CTF - Magic PNG) (0) 2021.11.23