Yozzang의 해킹일기 💻
article thumbnail
728x90

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


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

Level 15

## 문제 해석 : 

달력이 출력되어있다. 달력 우측 하단에 위치하는 오른쪽 달력을 보면 2월이라고 되어있는데, 29일까지 있다는 것을 알 수 있다. 즉 윤년인 것이다. 일단 1**6년 중 윤년이면서, 1월 1일이 목요일이면서 6으로 끝나는 해를 찾으면 될 것 같다.

## 문제 풀이 : 

파이썬을 통해 1**6년 중 윤년을 구해보겠다. 

### 공격 코드 :

import calendar

leap_years = list()

for i in range(1006, 2000, 10):
    curr_year = i

    if(calendar.isleap(curr_year)):
        if(calendar.weekday(curr_year, 1, 1) == 3):
            leap_years.append(curr_year)

print(leap_years)

### 실행 결과 : 

윤년 출력

5개의 윤년이 출력된 것을 확인할 수 있다.

 

힌트를 얻기 위해 개발자 도구를 확인해보겠다.

개발자 도구

가장 젊은 사람이 아닌 둘째라고 한 것으로 보아 1756인 것 같다. 또한 다음 날을 위해 꽃을 사야한다고 되어있는데, 다음 날은 1756년 1월 27일이다.

 

구글에서 해당 날짜에 대한 정보를 검색해보겠다.

### 실행 결과 :

구글링 결과

모차르트의 탄생일임을 알 수 있다. 정답은 바로 mozart이다.

### 최종 공격문 : http://www.pythonchallenge.com/pc/return/mozart.html

### 실행 결과 : 

공격 성공

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

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

Python Challenge (Level 17)  (0) 2022.09.16
Python Challenge (Level 16)  (0) 2022.09.15
Python Challenge (Level 14)  (0) 2022.09.10
Python Challenge (Level 13)  (0) 2022.09.08
Python Challenge (Level 12)  (0) 2022.09.07
profile

Yozzang의 해킹일기 💻

@요짱

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