쉬운 난이도의 MISC 문제
MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.
문제 설명을 읽어보면 두 파일을 비교해서 뭔가를 찾아내야 하는듯 하다.
주어지는 파일은 files.zip 인데
압축을 풀어보면 안에 이렇게
file2.txt 와 file3.txt 파일이 들어있다.
왼쪽이 file2.txt, 오른쪽이 file3.txt 의 내용이다.
뭔가 알수없는 문자들이 가득 쓰여있는데,
얼핏 보면 두 파일의 내용이 똑같은것 처럼 보인다.
리눅스에서 diff 명령어를 통해 file2.txt 와 file3.txt를 비교한 결과를 보니
확실히 중간에 뭔가가 다른것 같다.
1c1 이라고 되어있는건 각 파일의 첫번째 줄이 서로 다르다는 의미인데,
이건 file2.txt 와 file3.txt 의 모든 내용이 한줄로 적혀있어서 그런것이다.
(엔터가 쳐져있는것 같지만 사실은 모두 한줄이다.)
대충 눈으로 따라가면서 비교해보니
드문드문 글자가 다른 부분이 식별되었다.
뭔가 이 다른 글자들을 모으면 플래그가 될 것 같았다.
파이썬 스크립트로 자세히 비교해본다.
f1 = open("file2.txt", "rb")
f2 = open("file3.txt", "rb")
l1 = f1.readline()
l2 = f2.readline()
tmp = ''
for i in range(len(l1)):
if l1[i] != l2[i]:
tmp += chr(l2[i])
flag = ''
for i in range(len(tmp)-1,0,-1):
flag += tmp[i]
print(flag)
코드는 이렇게 짤 수 있다.
f1 과 f2 변수에 file2.txt 와 file3.txt 파일을 읽어서 넣고,
그 내용은 각각 l1, l2에 readline 으로 읽어와 저장해준다.
for 문을 통해 l1과 l2 를 첫번째 글자부터 비교해 나가고,
만약 다른 내용이 있다면 그 내용을 tmp 변수에 저장해준 뒤
tmp 변수를 역으로 출력해주는 코드이다.
코드를 실행시키면
플래그가 출력되는것을 볼 수 있다.
'CTF > MISC' 카테고리의 다른 글
[JISCTF] Oh my rain!!! - MISC / John the Ripper / Base32 (76) | 2023.01.30 |
---|---|
[JISCTF] Indicate - MISC / Hybrid Analysis (68) | 2023.01.28 |
[JISCTF] Unknow Ransomware - MISC / Base64 (70) | 2023.01.12 |
[Layer7 CTF] zipzipzipzipzip - MISC / Shell script (63) | 2022.12.25 |
[SHELLCTF] Secret Document - MISC / XOR / HxD (49) | 2022.10.03 |