[xcz,kr] prob25 XCZ Captcha!
xcz Captcha 문제다.
15초 안에 각 숫자 2개의 최소공배수를 입력하면 플래그를 건네준다~
[Solve]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | from PIL import Image from pytesser import * import urllib2 import re, time def connect_web(url, cookie_data): request = urllib2.Request(url, '', cookie_data) response = urllib2.urlopen(request) response = response.read() return response def create_image_string(path): imageFile = path im = Image.open(imageFile) return image_to_string(im) def change_rgb(filename): im = Image.open(filename) im = im.convert('RGB') x, y = im.size im_pix = im.load() r, g, b = im_pix[0, 0] for i in range(x): for j in range(y): if im_pix[i, j] != (r, g, b): im_pix[i, j] = 0 im.save(filename) def gcd(a, b): mod = a % b while mod > 0: a = b b = mod mod = a % b return b def lcm(a, b): return a * b // gcd(a, b) if __name__ == "__main__": picture_url = 'http://xcz.kr/START/prob/prob_files/prob25_img.php' # gif file path url = 'http://xcz.kr/START/prob/prob_files/prob25_ok.php?lcm=' cookie_data = {'cookie': 'PHPSESSID=8gs1i81a3lgrpkf4q94gfrakp0;'} filename = "G:\\xcz_image\\xcz_captcha.png" while 1: try: with open(filename, "wb") as f: f.write(connect_web(picture_url, cookie_data)) change_rgb(filename) img_str = create_image_string(filename) img_str = re.sub("[^0-9,',']", "", img_str).split(',') print img_str auth = lcm(int(img_str[0]), int(img_str[1])) result = connect_web(url + str(auth), cookie_data) time.sleep(0.5) if result.find('Failed') == -1: print result break except IndexError as e: print e | cs |
일단 rgb 값으로 배경색과 다른 문자들 색은 다 검은색으로 다꿔서 이미지 string을 잘 인식하게 바꿔주었다.
그다음 가끔 쉼표를 인식못해서 숫자만 나와 indexerror가 뜨는데 이부분 예외처리 해줘서 correct 나올때 까지 반복문 돌렸다.
'Wargame > ▷ xcz.kr' 카테고리의 다른 글
[xcz.kr] chaos (0) | 2018.03.21 |
---|---|
[xcz.kr] All Clear (6) | 2018.02.08 |
[xcz.kr] prob26 ju57_ENc0dE (0) | 2018.02.08 |
[xcz.kr] prob34 - Get the key, If You Can (0) | 2017.06.14 |
[xcz.kr] prob19 - Revershit! (0) | 2017.01.30 |