본문 바로가기

PYTHON/python_challenge

Python Challenge level 9 Python Challenge level 92016.12.28.우선 문제의 주석부분을 보면 좌표들이 있다.앞 문제에 벌의 윤곽을 나타낸 것처럼 first와 second를 더해서 좌표로 선잇기를 한 다음 그림을 나타내어야 하는 거 같다. 문제 이름도 connect the dots인 걸 보면.그래서 주석에 이전 문제의 풀이를 보기 위해선 주어진 사이트로 가라고 적혀있는 것 같다.그래서 사이트로 가보면 링크와 연결된 문장이 뜬다. 여기서 Put off by the bee부분을 보면 윤곽 그리는 부분이 나온다.우선 이걸 보아 8번 문제에 있던 coords에 숫자들은 차례대로 x,y,x,y,...을 나타낸 것이다. 그러니 이번에 주어진 first 또한 x,y,x,y,...순서일 것이고 second도 마찬가지일 것.. 더보기
Python Challenge level 8 Python Challenge level 8 2016.12.26. 우선 처음에 문제 접속하면 이렇게 뜬다. 그래서 사진 속 벌 중에 검은색으로 빗겨 나온 부분이 있길 레 눌러보면 벌이 저렇게 윤곽이 잡히고 이름과 비밀번호를 입력하는 창이 뜬다. 일단 페이지 소스코드를 보았다. 저기 coords는 벌의 윤곽 선을 잡기 위해 있는 좌표들이라고 한다. un이 사용자 이름이고 pw가 비밀번호인 것 같다. un과 pw앞에 있는 BZh91AY&SY는 bz2 파일의 헤더를 나타내는 것이라고 한다.bz2 모듈을 이용하면 사용자 이름과 비밀번호를 구할 수 있을 것이다. 그래서 코드를 이렇게 짜고 실행시켰는데 오류가 뜬다. ...^-^ 나중에 안 건데 파이썬 버전 차이 때문에 오류가 뜬거 같다. 그래서 print 부분을 .. 더보기
Python Challenge level 7 Python challenge level 7 2016.12.23. 처음에 접속했을 때 그냥 이렇게만 되어있고 뭐 소스코드도 정말 저게 끝이고 그래서 그냥 가만히 보고만 있었다. 그러다 그냥 쿠키를 확인해봤는데 ...?뭐 어쩌라는 걸까. 다시 고이 접고 생각을 하다 it’s in the air에서 it을 찾으라는 건가 싶어서 설마하면서 oxygen을 입력해보았다. ...^^나만 oxygen.html 찾는 데만 10분 넘게 걸렸나 싶어 다른 사람들 풀이를 보았는데 나만 그런 것 같다. 이런 형식의 사진은 CTF에서도 종종 접하는 사진이다. 아마 저기 띠 부분 RGB값을 이용해 아스키코드로 바꿔서 어찌저찌 하다보면 글자가 나오겠지 우선 사진을 받고 코드를 짜자. Image 모듈을 사용하면 되는데 나는 우분투에.. 더보기
Python Challenge level 6 Python challenge level 6 2016.12.22. 주석 처리된 부분을 보면 zip과 뭐 기부하면 감사 하겠다 하는 것 같은데 저기 아래 PayPal을 눌렀을 때 그런 페이지로 이동하는 것 같았다. 그래서 PayPal은 문제 푸는 데 필요 없는 것 같고 바지의 zipper사진과 주석에 zip이 있는 걸 보면 zip파일을 사용해야하는 거 같은데 zip파일이 당최 어디 있는지 모르겠다. 주석 풀어서 눌러봤다가 드래그 해봤다가 의미없는 행동을 하다 이전 문제에서 주소 뒤에 banner.p를 입력해 문제 푸는 것에 접근한 것처럼 그냥 zip을 입력하면 zip파일이 받아지지 않나 싶어 channel.zip을 입력해보았다. channel.html대신 channel.zip을 입력하니 zip파일이 받아졌.. 더보기
Python Challenge level 5 Python Challenge level 5 2016.12.22. 처음에 접속했을 때 산 사진과 ‘pronounce it’만 있어서 일단 소스 코드를 보았다. 주석 처리된 부분이 있길 레 주석 처리부터 없애보았다. banner.p부분에 마우스를 올리니 주소가 뜬다. 이동해보자 이동을 하면 이런 식으로 계속 이상한 문자들이 써져있다. 나는 처음에 banner.p니까 p 언어라는 언어로 쓴 페이지니까 p 언어로 뭐 어떻게 하면 나오지 않을까 싶어서 p 언어를 검색해보았다. p 언어는 예전 명칭은 ‘data p’로 한국어로 프로그래밍을 할 수 있는 언어라고 한다. 신기해하며 이걸로 푸는 건 아니겠다 싶어 창을 닫고 계속 생각해보았다. 글자가 너무 많아서 딱 봐도 무슨 형태로 변환시켜서 그 크기를 줄이고 줄이다.. 더보기
Python Challenge level 4 Python Challenge level 42016.12.21. 우선 linkedlist.html로 접속을 하면이렇게 뜬다.그래서 다시 linkedlist.php로 접속을 하면 문제가 나온다. 우선 페이지 소스를 보면 주석 처리된 부분이 있다.urllib을 활용해야하는 것 같다. 사실 이것만 봐선 감이 안온다. url 주소를 이용해 뭐 400번 정도만 부르트 포싱을 하면 되는 것 같은데 아직 잘 모르겠다.그런데 마우스를 움직이다가 사진 위에 마우스를 올렸을 때 마우스 모양이 누를 수 있도록 바뀌는 걸 확인했다. 그래서 사진을 눌렀더니 새로운 페이지가 열렸다.뭔가 nothing값을 400번 정도 노가다하며 바꿔야하는 거 같은 느낌이 들지만 일단 nothing에 44827을 넣어보자. 또 nothing값을 .. 더보기
Python Challenge level 3 Python Challenge Level 3 3번 화면을 보면 세 개의 큰 촛불이 양 옆으로 작은 촛불 하나를 감싸고 있다. 소스를 보면 주석 처리된 부분에 알파벳들이 길게 있는데 자세히 보다보면 ABCaDEF 이런 식으로 대문자 세 개 소문자 한 개 대문자 세 개로 된 부분이 있다. 여기서 이런 식으로 된 곳의 소문자를 찾아내면 된다.정규표현식을 사용하면 쉽다고 한다.정규표현식에 관한 정보는 http://devanix.tistory.com/296 여기를 참고하면 좋을 것 같다. 2번 문제에서도 똑같이 주석부분만 사용하기 위해 rindex함수를 사용join함수 앞에 "".join을 하면 찾은 소문자들을 문자열로 반환할 때 찾은 요소들 사이에 공백이나 구분자를 넣지 않고 하나로 연결한다는 뜻이 된다.위의 .. 더보기
Python Challenge level 2 페이지 소스에 있다고 해서 ocr.html의 페이지 소스를 보았다. 주석 처리된 부분에 적은 문자들을 찾으라고 하고 특수문자들로 엄청 길게 쓰여진 게 있다.처음엔 긴 문자열을 복사 붙여 넣어서 코드를 짜야하나 싶었는데 파싱을 하면 코드를 어지럽게 하지 않아도 저 문자열을 빼올 수 있다.url의 소스를 보기위해 urllib을 import 해주고 저기 문자열 부분만 빼오기 위해 find함수로 %%$@_$^__부분을 찾는다. find함수는 괄호 안의 부분이 전체에서 몇 번째에 있는지 찾아주는 함수인데 직접 확인하는 게 더 이해가 빠르다. 일단 저기 m 부분만 출력시켜서 확인해보면 즉, url 소스의 843번째 문자가 %%$@_$^__의 시작이라는 것이다.[m:len(response)-5]은 843부터 url .. 더보기
Python Challenge level 1 사진을 보자마자 시저암호라는 걸 파악할 수 있다.보면 원래 값에서 아스키 값이 2가 증가한 값으로 나온다.여기서 무작정 2씩 증가시키면 안되는 게 y나 z의 경우 2씩 증가되었을 때 다시 a,b로 돌아가야 하는데 아스키 숫자를 2씩 증가시키기만 하면 a,b로 돌아가지 않는다. +) def? 함수 정의하는 키워드 +) ord? 문자를 아스키 값으로 변환 +) chr? 아스키 값을 문자로 변환 +) elif? else if우선 temp 값에 아무것도 넣지 말고 str을 하나하나 검사하면서 아스키값이 2 증가된 문자를 temp에 넣는다.띄어쓰기나 ‘나 .인 경우에는 그냥 그대로 출력시켜주고 y와 z의 경우를 고려하기 위해 우선 원래 문자를 아스키 값으로 변환 후 알파벳 개수만큼 더해주고 2를 증가시켜 반환시킨.. 더보기
Python Challenge level 0 제일 처음 만나게 되는 페이지화면에 2와 2보다 조금 위에 위치한 38이 있다.간단히 2^38을 구하면 된다. **연산자를 이용하여 풀 수도 있고 pow함수를 이용할 수 도 있다.+)pow함수 사용시 pow(2,38) 실행결과 나온 숫자를 URL에 친다.http://www.pythonchallenge.com/pc/def/274877906944.html 를치면http://www.pythonchallenge.com/pc/def/map.html 으로 이동한다. 더보기