Q18. [Forensic] leaf in forest를 Python으로 풀어보세요

4306 단어 파이썬CTFCpawCTF

Q18.[Forensic]leaf in forest



이 파일에는 플래그가 있습니다. 찾아보세요.
플래그는 모두 소문자입니다!

CpawCTF의 Q18을 풀어 보았으므로 해법과
Python을 사용한 특정 문자열 삭제 메모입니다.

1. 파일을 살펴보기



우선 지정한 파일을 file 명령으로 보자
root@kali:/home/kuratsuka/Documents# file misc100 
misc100: pcap capture file, microsecond ts (little-endian) - version 0.0 (linktype#1768711542, capture length 1869357413)

pcap을 작성했기 때문에 확장자를 pcap로 설정하고 wireshark에서 열려고하면 오류가 발생했습니다.

내용을 cat로 보면 ...


대단한 기세로 「lovelive!」라고 출력된다
레벨 1에서 잔치는 신은 문제도 있었지, 아아^~터미널이 삐삐삐 하지잖아^~

대단한 문자량에 압도되지만 스크롤해 보면 곳곳에 대문자가 배치되어 있다

문제명에도 있던 것처럼 나무를 숨긴다면 숲속에서 FLAG가 이 러브라이브! 맞은 편에있을 것입니다.

파이썬에서 지정된 문자열을 지우기



문제문에 있는 "플래그는 모두 소문자입니다!"에서 숨겨진 대문자를 추출하여 소문자로 변환하면 괜찮을 것
텍스트 파일에 문자열을 복사하고 아래 코드에서 실행해보십시오.
f = open('C:/Users/kuratsuka/Desktop/misc100.txt')
data = f.read()
print(data.replace('lovelive!',''))

Python 잘 모르고 read()를 쓰지 않으면 "io.TextIOWrapper"로 에러 토해진, 잘 모르는 것이 움직이니까 요시!

결과적으로 이것은
ヤテイ。       %e!CCCelive!lovelivPPPovelive!loveAAAe!lovWWWve!{{{elive!loveliMMMelive!lovelGGG!lovelivRRRovelive!lEEElive!P
PPelive!}}}

치에이···!
상당히 깎았지만 조금 더 깎고 싶기 때문에 'love'와 'live!'로 나누어 보자.
f = open('C:/Users/kuratsuka/Desktop/misc100.txt')
data = f
data =data.replace('love','')
print(data.replace('live!',''))

결과는 이쪽
ヤテイ。       %e!CCCelivPPPoveAAAe!lovWWWve!{{{eliMMMelGGG!livRRRovelEEEPPPe}}}

·····
이거 더 이상 골라도 될까요? ?

re.sub()를 사용하여 좀 더 깨끗하게 만듭니다.



알겠어・・・플래그는 알겠지만・・・
조금 더 청소하고 싶습니다 ...
대문자 추출하는 것도 있겠지만, 여기서는 문자 삭제 방향으로 풀어 보자
replace()라면 지정한 문자열 밖에 지울 수 없는 것 같아 re.sub() 사용하면 범위내의 문자열을 지울 수 있는 것 같기 때문에 시험해 본다
import re
f = open('C:/Users/kuratsuka/Desktop/misc100.txt')
data = f.read()
data = re.sub('[a-z,!]',"",data) #a-zと!を削除
print(data)

이것으로 실행해 보면 · · ·
ヤテイ。       %CCCPPPAAAWWW{{{MMMGGGRRREEEPPP}}}

상당히 깨끗해졌다!

좋은 웹페이지 즐겨찾기