Yozzang의 해킹일기 💻
article thumbnail
728x90

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


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

Level 3

## 문제 해석 : 

"양쪽에 정확히 세 명의 큰 보디가드에 둘러싸인 작은 글자 하나"라는 문구가 적혀 있다. 여기서 작은 글자는 알파벳 소문자, 큰 보디가드는 알파벳 대문자를 뜻한다.

## 문제 풀이 : 

페이지의 소스를 확인해보니 아래와 같이 주석 처리된 긴 문장이 있다.

주석문

대충 훑어보니 영어 알파벳으로 이루어진 것을 알 수 있다. 아마 해당 주석문에서 다음 문제의 키가 존재하는 것 같다.

 

그럼 우리는 힌트를 통해 3개의 대문자 사이에 존재하는 1개의 소문자가 뭐뭐 있는지를 알아내면 된다. 여기서는 파이썬의 정규식을 활용하여 쉽게 구할 수 있다.

### 공격 코드 : 

import re

file = """주석문"""

result = re.findall('[a-z][A-Z]{3}[a-z][A-Z]{3}[a-z]', file) # aAAAaAAAa 모양을 가진 문자열 찾기
result = re.findall('[A-Z][a-z][A-Z]', ''.join(result)) # AaA 모양을 가진 문자열 찾기
result = re.findall('[a-z]',''.join(result)) # 소문자를 찾기

print('Level 4\'s URL is' , ''.join(result))

### 실행 결과 :

goURL 출력

해당 문자열을 URL에 대입해서 실행해보겠다.

### 공격문 : http://www.pythonchallenge.com/pc/def/linkedlist.html

### 실행 결과 : 

Level 4 출력

linkedlist.php가 출력된 것을 확인할 수 있다. 해당 페이지로 접속을 해보겠다.

### 최종 공격문 : http://www.pythonchallenge.com/pc/def/linkedlist.php

### 실행 결과 : 

공격 성공

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

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

Python Challenge (Level 5)  (0) 2022.08.06
Python Challenge (Level 4)  (0) 2022.08.05
Python Challenge (Level 2)  (0) 2022.08.01
Python Challenge (Level 1)  (0) 2022.07.31
Python Challenge (Level 0)  (0) 2022.07.30
profile

Yozzang의 해킹일기 💻

@요짱

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