ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • pythonchallenge.com - 0
    Python/challenge 2013. 12. 18. 21:13

    ※ 주의사항

    아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다.

    악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.

    해당 문서의 저작권은 해당 저자에게 모두 있습니다. 다른 용도로 사용할 시 법적 조치가 가해질 수 있습니다.

     

     

    문제 분석



    파이썬 챌린지의 첫 번째 문제입니다. 모니터에 2의 38승이라는 숫자가 붙어있네요. 힌트는 URL 주소를 바꾸는 것을 시도해보라고 합니다. 


    문제 풀이


    일단 URL부터 보도록 하겠습니다.


    http://www.pythonchallenge.com/pc/def/0.html


    해당 페이지의 이름이 0으로 되어있네요. 문제에 해당하는 그림의 왼쪽 상단에도 0이라는 숫자가 있습니다. 이 숫자가 이 문제의 레벨을 나타내는 것 같습니다. 그럼 html 페이지의 이름을 1로 바꾸면 다음 단계로 넘어가질까요? 일단 시도를 해보도록 하겠습니다.



    그랬더니 1.html이라는 페이지의 내용에는 위와 같은 문장이 나타납니다. 2의 38승은 훨씬 훨씬 더 큰 숫자라는 내용의 문장입니다. 감이 오시나요? 다음 단계로 넘어가기 위한 페이지의 이름은 아마도 2의 38승에 해당하는 숫자일 것 같습니니다. 그럼 일단 파이썬을 이용하여 2의 38승을 계산해보도록 하겠습니다.



    파이썬에서 거듭제곱을 계산하는 방법은 '숫자 ** 거듭제곱수'입니다. 간단하죠? 곱하기 기호를 두번쓰면 되는 것입니다. 계산을 한 결과가 '274877906944L' 이라고 나왔네요. 숫자의 맨 뒤에 붙은 L은 숫자의 자리수가 매우 큰 경우에 나타나는 기호입니다. 결과를 구했으니 우리가 해야할 행동은 하나입니다. 2의 38승을 계산한 결과를 URL에 집어넣어보는 것입니다. URL의 마지막인 html 페이지 명에 '274877906944L'라는 값을 넣어보도록 하겠습니다.



    오호라. 'L'은 필요없다는 문구가 나왔습니다. 그러면 바로 이어서 2의 38승의 결과인 '274877906944L'에서 'L'을 제외한 나머지 숫자만을 넣은 URL로 접속해보도록 하겠습니다.



    성공입니다! 다음 단계인 1단계의 문제가 나타났습니다. 그리고 해당 페이지의 URL 주소는 아래와 같이 바뀌었군요.


    http://www.pythonchallenge.com/pc/def/map.html


    바로 map입니다. 다음부터는 1단계의 문제로 바로 접근할 수 있습니다. 기억하세요. 1단계 문제의 페이지명은 'map'입니다.





Designed by Tistory.