http://www.pythonchallenge.com/pc/return/uzi.html 문제 페이지에 나오는 달력 이미지를 보면 1xx6년도의 1월 26일이 월요인 해를 찾아야 한다. 아래 소스를 통해 1월 26일이 월요일인 해를 찾을 수 있었다. #!c:\python26\pyhton.exe from datetime import date year = 1996 for x in range(100): d = date(year, 1, 27) t = d.timetuple() ic = d.isocalendar() if ic[2] == 2: # if Tuesday? print […]
http://www.pythonchallenge.com/pc/return/italy.html 빵그림과 이상한 이미지를 하나 주어주고 풀라고 한다. 해당 페이지 소스를 보면 아래와 같은 힌트가 있다. <!– remember: 100*100 = (100+99+99+98) + (… –> 빵그림이 동그랗게 되어 있으므로 처음 아래 이상한 이미지를 처음 100 픽셀 짤라 맨 우측에 붙이고(빨간부분), 그다음 99 픽셀을 짤라 하단에 붙이고(파란부분), 다음 99 픽셀을 짤라 좌측에 붙이고(노란부분) 이런식으로 조금씩 짤라서 안쪽으로 […]
http://www.pythonchallenge.com/pc/return/disproportional.html 전화기 그림에서 5번을 클릭하면 xml 에러 메세지가 나온다. 이번 문제를 풀려면 xmlrpc에 대한 이해가 필요하다. #!C:\python26\python.exe from xmlrpclib import ServerProxy server = ServerProxy('http://www.pythonchallenge.com/pc/phonebook.php') print server.system.listMethods() print server.system.methodHelp('phone') print server.phone('blahblah') 대체 blahblah 부분에 어떤 단어를 넣어야 하는지 심히 생각했다. He is not the evil…? 대체 누구지? http://www.pythonchallenge.com/pc/return/evil4.jpg 주소에서 누군지 알 수 있었다. 왜 저 페이지는 […]
http://www.pythonchallenge.com/pc/return/evil.html 역시 어떤 이미지가 있다. 해당 이미지의 파일명을 살펴보니 evil1.jpg 이다. 그럼 evil2.jpg도 있는 것일까? 확인하여 보니 있다. not jpg .gfx 라는 메세지가 있었다. .gfx 파일이 있는 것일까 하고 evil2.gfx 파일이 있는지 확인해 보니 역시 파일이 있었다! evil2.gfx 파일을 HexEditor로 확인한 결과 반복적으로 같은 갯수의 더미값이 포함되며 이미지 헤더를 확인할 수 있었다. 그래서 데이터를 추출하여 […]
http://www.pythonchallenge.com/pc/return/5808.html 문제 페이지 제목이 odd ever 이다. 몰랐는데 이 뜻은 홀짝 이란다… 해당 페이지에 있는 cave.jpg 파일을 확대하여 본 결과 검은색 픽셀이 섞여 있는것을 볼 수 있었다. 그래서 검은색 부분이 아닌 부분만 따로 뽑아서 이미지로 만들어 보았다. #!c:\python26\python.exe import Image, ImageDraw im = Image.open('cave.jpg') size = im.size tmp = Image.new('RGB', (size[0]/2, size[1]/2), 'white') for x […]
http://www.pythonchallenge.com/pc/return/good.html 이전 레벨에서 구한 huge / file 로 접속하여 보면 그림이 나타난다. 그리고 소스를 보면 first와 second 값이 있다. 이 값들을 X,Y 좌표로 보고 선을 그려보면 아래와 같은 그림이 나타난다. #!c:\python26\python.exe import Image, ImageDraw first = [146,399,163,403,170,393,169,391,166,386,170,381,170,371,170,355,169,346,167,335,170,329,170,320,170,310,171,301,173,290,178,289,182,287,188,286,190,286,192,291,194,296,195,305,194,307,191,312,190,316,190,321,192,331,193,338,196,341,197,346,199,352,198,360,197,366,197,373,196,380,197,383,196,387,192,389,191,392,190,396,189,400,194,401,201,402,208,403,213,402,216,401,219,397,219,393,216,390,215,385,215,379,213,373,213,365,212,360,210,353,210,347,212,338,213,329,214,319,215,311,215,306,216,296,218,290,221,283,225,282,233,284,238,287,243,290,250,291,255,294,261,293,265,291,271,291,273,289,278,287,279,285,281,280,284,278,284,276,287,277,289,283,291,286,294,291,296,295,299,300,301,304,304,320,305,327,306,332,307,341,306,349,303,354,301,364,301,371,297,375,292,384,291,386,302,393,324,391,333,387,328,375,329,367,329,353,330,341,331,328,336,319,338,310,341,304,341,285,341,278,343,269,344,262,346,259,346,251,349,259,349,264,349,273,349,280,349,288,349,295,349,298,354,293,356,286,354,279,352,268,352,257,351,249,350,234,351,211,352,197,354,185,353,171,351,154,348,147,342,137,339,132,330,122,327,120,314,116,304,117,293,118,284,118,281,122,275,128,265,129,257,131,244,133,239,134,228,136,221,137,214,138,209,135,201,132,192,130,184,131,175,129,170,131,159,134,157,134,160,130,170,125,176,114,176,102,173,103,172,108,171,111,163,115,156,116,149,117,142,116,136,115,129,115,124,115,120,115,115,117,113,120,109,122,102,122,100,121,95,121,89,115,87,110,82,109,84,118,89,123,93,129,100,130,108,132,110,133,110,136,107,138,105,140,95,138,86,141,79,149,77,155,81,162,90,165,97,167,99,171,109,171,107,161,111,156,113,170,115,185,118,208,117,223,121,239,128,251,133,259,136,266,139,276,143,290,148,310,151,332,155,348,156,353,153,366,149,379,147,394,146,399] second = [156,141,165,135,169,131,176,130,187,134,191,140,191,146,186,150,179,155,175,157,168,157,163,157,159,157,158,164,159,175,159,181,157,191,154,197,153,205,153,210,152,212,147,215,146,218,143,220,132,220,125,217,119,209,116,196,115,185,114,172,114,167,112,161,109,165,107,170,99,171,97,167,89,164,81,162,77,155,81,148,87,140,96,138,105,141,110,136,111,126,113,129,118,117,128,114,137,115,146,114,155,115,158,121,157,128,156,134,157,136,156,136] im = Image.new('RGB', (512, 512), 'white') draw = ImageDraw.Draw(im) count = 0 for y in […]
http://www.pythonchallenge.com/pc/def/integrity.html 문제 페이지에서 접속하면 파리같이 생긴 곤충의 그림이 나오고 소스를 보면 어떤 인코딩 된듯한 문자열이 나온다. 이후에 알게 되었지만 사진속의 곤충은 벌이였고 beezip을 의도한 것으로 보인다. #!c:\python26\python.exe import bz2 un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084' pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08' print repr(bz2.decompress(un)) print repr(bz2.decompress(pw))
몇일 전 Adobe Reader/Acrobat 관련 0-Day 취약점(CVE-2009-3459)이 발표되었습니다. (자세한 내용 : http://blogs.adobe.com/psirt/2009/10/adobe_reader_and_acrobat_issue_1.html) 현재 Adobe 사에서 해당 취약점에 대한 패치는 공개 하였으나 PDF 파일에서 해당 취약점이 존재하는지 확인할 경우가 있을거 같아 포스팅을 합니다. 얼마전에 PDF 파일 분석하기 라는 내용으로 포스팅을 한 글이 있습니다. 해당 글에 보면 PDFiD(PEiD 이름에서 따온 것으로 추측….) 툴이 나옵니다. 이 툴을 이용하여 […]