Yozzang의 해킹일기 💻
article thumbnail
728x90

이번 포스트에서는 Python Challenge의 Level 19 문제에 대해 다루겠다.


문제를 클릭하면 다음과 같은 페이지가 출력된다.

Level 19

## 문제 해석 : 

인도 사진이다. 개발자 도구를 확인해보면 아래와 같이 MIME 타입의 이메일이 보인다.

개발자 도구

이메일 본문의 데이터를 이용하여 푸면 될 것으로 보인다.

## 문제 풀이 : 

우선 데이터를 파일로 저장한 다음에 파이썬을 통해 indian.wav로 변경해보겠다.

### 공격 코드 :

import base64

with open("level_19.txt", "r") as f:
    data = f.read()
    data = data.replace("\n", "")

data = base64.b64decode(data)

with open("indian.wav", "wb") as f:
    f.write(data)

### 실행 결과 : 

indian.wav

파일을 재생해보면 "sorry"라는 말이 들린다. sorry.html로 접속해보겠다.

### 공격문 : http://www.pythonchallenge.com/pc/hex/sorry.html

### 실행 결과 : 

sorry.html

뭔가 잘못된 방향으로 가고 있는 것 같다. 여기서 힌트는 바보 해당 사람은 indian이라는 것이다. indian은 endian로 볼 수도 있으니 해당 파일의 endian 타입을 바꿔줘야 한다. 현재는 리틀엔디안이므로 빅엔디안으로 바꿔주면 된다.

### 공격 코드 : 

import wave

with wave.open("indian.wav", "rb") as w:
    r = wave.open("result.wav", "wb")
    r.setnchannels(w.getnchannels())
    r.setsampwidth(w.getsampwidth()//2)
    r.setframerate(w.getframerate()*2)
    frames = w.readframes(w.getnframes())
    wave.big_endiana = 1
    r.writeframes(frames)

r.close()

### 실행 결과 : 

result.wav

"you are an idiot"라는 말이 들린다. idiot.html로 접속해보겠다.

### 공격문 : http://www.pythonchallenge.com/pc/hex/idiot.html

### 실행 결과 : 

idiot.html

아래의 버튼을 클릭하면 다음 레벨로 이동할 수 있다.

### 최종 공격문 : http://www.pythonchallenge.com/pc/hex/idiot2.html

### 실행 결과 : 

공격 성공

Level 20로 넘어간 것을 확인할 수 있다.

'Wargame > Python Challenge' 카테고리의 다른 글

Python Challenge (Level 21)  (1) 2022.09.20
Python Challenge (Level 20)  (1) 2022.09.19
Python Challenge (Level 18)  (0) 2022.09.17
Python Challenge (Level 17)  (0) 2022.09.16
Python Challenge (Level 16)  (0) 2022.09.15
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!