유랑하는 나그네의 갱생 기록

だけど素敵な明日を願っている -HANABI, Mr.children-

Security & Hacking 10

python challenge 9

파이썬 챌린지 9 저 점들을 이으면 무슨 그림이 나올까요.. 검은점들 RGB 값도 다르던데 먼저 HTML 코드부터 열어봅시다. first와 second를 더하면 "?" 뭔가 나오나 봅니다. x좌표 y좌표로 그림 그리는 줄 알았는데 저런 형태의 숫자 모음들 파이썬 챌린지 풀다가 어디서 본 적 있지 않나요. 파이썬 챌린지 8번 문제 HTML 코드에서 벌 모양 그림에 하이퍼 링크를 걸어놨었죠. 이미지 맵이라고 하는데 이미지 안에 poly(다각형)으로 coords(좌표)를 지정해 주고 good.html로 링크 해놓은 것이에요. 이미지에 그림을 그리려면 PIL 라이브러리에서 Image와 ImageDraw 모듈을 데려와야 해요. https://pillow.readthedocs.io/en/stable/referenc..

python challenge 8

파이썬 챌린지 8번 문제 입니다~ 벌한테 마우스를 가져다대면 good.html 링크가 떠요. 이미지를 클릭하면 로그인 창이 뜨는데 사용자 이름과 비밀번호를 모르니 잠시 닫아둡시다. 권한없음 에러 페이지가 나오니까 뒤로가기. HTML 코드를 다시 살펴보면 사용자이름하고 비밀번호를 주석처리 해놨는데 un: 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07

python challenge 7

파이썬 챌린지 7 oxygen.html로 들어왔습니다. HTML 코드 열어봐도 힌트 메시지 같은건 안보여요. 힌트 이미지에 그어져 있는 흑백 줄무늬 띠를 이용해서 푸는 문제 입니다. 파이썬에서 이미지를 처리하려면 pillow 라이브러리를 사용하면 됩니다. 설치는 pip install Pillow 근데 아나콘다가 깔려있으면 따로 안깔아도 돼요. 이제 힌트 이미지를 받아와서 만져봅시다. 이미지 파일을 열고 잘라낼 픽셀 좌표를 확인을 합니다. 좌표를 확인하다보니 눈에 띄는 값이 있었습니다. RGB값이 일정하네요. 이 점 염두에 두고 코드를 작성해봅시다. 일단 이미지부터 잘라볼게요. from PIL import Image img = Image.open('./oxygen.png') px = img.load() c..

python challenge 6

힌트 이미지가 지퍼인 거 보면 압축파일 zip이 생각날 거예요 html 열어보면 zip 이래요. 아래 주석은 대충 도네 쏴주면 감사하겠단 뜻 channel.zip으로 수정해봅시다. zip 파일이 다운 받아집니다. 열어보면 엄청 많은 텍스트 파일이 압축돼있고 설명란에 의미불명의 문자들이 적혀있습니다. readme.txt를 열어보면 힌트 :: 1. 90052에서 시작 2. 답은 zip파일 안에 :: 90052.txt부터 열어볼게요. 이전 포스트에서 간단히 웹 크롤링해서 마지막 페이지까지 넘어가 봤어요. 그때처럼 똑같이 하면 될 것 같아요. import re pattern = re.compile("[0-9]+") nothing = "90052" while True: try: f = open(nothing+"...

python challenge 5

언덕이 보이네요. Peak. 최대치. 정점. 절정. 산봉우리. html 코드에 뭔가가 있습니다.. peakhell banner.p 한번 banner.p 링크로 들어가보겠습니다. 뭔지 모르겠죠. peak hell이랑 발음이 비슷한 '피클(pickle)'이라는게 있습니다. "피클이 뭐냐?" 텍스트로 된 데이터가 아닌 파이썬 객체 자체를 파일로 저장한 것인데 이진 프로토콜을 사용해서 이진수로 변형되어 저장되니 파일을 일반적으로 열어봤을 때 알아 볼 수 없는 형태죠. 피클링된 데이터를 읽으면 원래 형태의 데이터를 사용할 수 있게 됩니다. banner.p를 저장하고 pickle 모듈을 import해서 코드를 작성해봅시다. import pickle f = open('banner.p','rb') data = pick..

python challenge 4

(대충 url따라 가지말라는 내용) 그래도 따라가 볼 거에요. 이렇게 가다가는 끝도 없을거에요. 말 잘듣는 사람이 됩시다. 문장 뒤에 있는 숫자로 따라 가다보면 언젠간 끝이 보이겠죠. 코드를 작성하기 전에 pip install requests 명령어를 사용해서 requests 모듈을 깔아줍시다. 웹에 연결 요청하려구요. import requests import re pattern = re.compile("[0-9]+") url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=" nothing = "12345" while True: response = requests.get(url+nothing) print(response.text) not..

python challenge 3

One small letter, surrounded by EXACTLY three big bodyguards on each of its sides. (대충 앞뒤로 정확히 3개의 대문자 사이에 끼어있는 소문자를 찾으라는 내용) f12를 눌러서 HTML소스에서 힌트를 찾습니다. 이것도 정규 표현식을 사용해서 찾는 문제에요. 이건 노가다 하라해도 못할 거 같아요. 그냥 적당히 [A-Z]{3}([a-z])[A-Z]{3}하면 앞뒤로 3개의 대문자로 둘러싸인 소문자들을 찾을 수 있겠죠? import re pattern = re.compile("[A-Z]{3}([a-z])[A-Z]{3}") print("".join(re.findall(pattern,string))) 라고 생각했다면 큰 오산입니다. AAAaBBBbCC..

python challenge_2

recognize the characters. maybe they are in the book, but MAYBE they are in the page source. (대충 페이지 소스에서 문자를 찾으라는 내용) f12를 눌러서 페이지 소스를 뒤져보니 주석 처리된 힌트가 나오네요. 이 수많은 문자들 중에 알파벳을 따로 찾으려면 "정규 표현식"을 써야합니다. 파이썬은 정규표현식을 지원하기 위해 re(regular expression) 모듈을 제공하는데 데 이것을 사용하려면 re 모듈을 import하고 사용하면 됩니다. import re pattern = re.compile("[a-z]") print(pattern.findall(string1)) string1에다가 HTML 소스에서 찾은 힌트 문자들을 넣어..

python challenge 1

K->M O->Q E->G 힌트 이미지에서 일정한 규칙을 찾을 수 있는데 자기 자신으로부터 2번째 떨어진 알파벳으로 치환하는 패턴이 보입니다. 풀기 전에 생각을 해보래요. 손으로 노가다해서 할 수도 있지만 파이썬 챌린지니까 파이썬으로 풀어봅시다. 소문자로만 되어있으니 소문자 아스키 코드표를 참고하면 되겠죠. 아스키 코드에서 알파벳 소문자는 97-122 입니다. 파이썬에서 문자를 아스키코드 값으로 변환하는 함수는 ord()고, 아스키코드 값을 문자료 변환하는 함수는 chr()임을 염두에 두고 코드를 작성해 봅시다. 이미 써놓은 코드라 따로 코드블럭 만들어서 게시글에 박아넣기 귀찮아요. 소문자를 받았을 때, 아스키코드 값에 +2한 값을 다시 문자로 변환해서 출력하는 for문 입니다. 근데 y,z값에서 +2를..

python challenge 0

7-8월 안에 python challenge와 webhacking 모든 문제를 풀 수 있으면 좋겠습니다. 디게 오래된 사이트인데 왜 이제서야 풀고 있을까요. 이 문제가 파이썬이랑 무슨 관련이 있는진 모르겠는데 2의 38제곱을 URL에 때려박으면 된대요. 아 티스토리 수식 버튼 없는거 실화인가 2^38을 파이썬에서는 2**38로 표현하구요. 0.html에서 0 지우고 2**38 결과 값을 넣어주면 됩니다. 그럼 1번 문제로 넘어가는 겁니다. 아 참고로 238 있다고 238 집어넣으면 38이 2보다 조금 더 위에 있다는 오답 페이지가 나와요.

320x100