Q18. [Forensic] leaf in forest를 Python으로 풀어보세요
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}}}
상당히 깨끗해졌다!
Reference
이 문제에 관하여(Q18. [Forensic] leaf in forest를 Python으로 풀어보세요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuratsuka/items/b5177f8dabdbb56f5d23텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)