앵하니의 더 나은 보안
Captcha bypass by Python OCR 본문
과거 웹 취약점 진단 시 자동등록방지용 captcha 수준이 낮아 파이썬 OCR 코딩을 통해 우회했던 코드를 공유한다.
사실 대단한 코드는 아니고 잘 만들어진 pytesseract 모듈을 사용했다.
from PIL import Image
import pytesseract
import urllib.request
ans_list = []
try_num = 10
for i in range(try_num):
url = "https://캡챠생성페이지"
urllib.request.urlretrieve(url,'captcha.png')
data = Image.open("./captcha.png")
pytesseract.pytesseract.tesseract_cmd = r'C:/Users/test/Desktop/Tesseract-OCR/tesseract'
text = pytesseract.image_to_string(data,config='--psm 6 -c tessedit_char_whitelist=0123456789')
print(text)
right = input("맞니 ?(맞으면 입력, 틀리면 엔터)")
ans_list.append(right)
percent = list(filter(None,ans_list))
print(str(len(percent)/try_num*100)+"%")
10번을 시도하고 수동으로 검증해본 결과 당시 tesseract가 아직 학습이 많이 필요했는지
일치율은 통상적으로 20프로정도가 나왔다.
해당 소스코드를 이용하기 위해선 tesseract-ocr을 설치해야한다.
https://github.com/tesseract-ocr/tesseract
해당 모듈을 다운로드 받아 다운로드 받은 tesseract의 경로를 소스코드 11번째 줄의 경로로 작성하면 된다.
'보안 기술 > Python' 카테고리의 다른 글
로또번호와 카오스이론 (0) | 2024.08.16 |
---|
Comments