• 목록
  • 아래로
  • 위로

안녕하세요?


https://studyforus.com/help/626417 에 대한 허접한 자답입니다.


그누보드의 Kcapcha의 이미지를 적절히 프로세싱하여 아래와 같은 방법으로 카카오 OCR API를 돌려보았습니다.



def OCR(filename, boxes):
    API_URL = 'https://kapi.kakao.com/v1/vision/text/recognize?boxes={}'.format(boxes)
    headers = {'Authorization': 'KakaoAK {}'.format(MYAPP_KEY)}
    data = {'boxes': boxes}
    print(data)
    try:
        files = { 'file' : open(filename, 'rb')}
        resp = requests.post(url=API_URL, headers=headers, files=files)
        resp.raise_for_status()
        result = resp.json()['result']['recognition_words']
        print(json.dumps(result, ensure_ascii=False)) # 이 부분은 캡챠만을 위한 소스가 아니기 때문에 들어갔습니다.
    except Exception as e:
        print(str(e))
        sys.exit(0)



결과적으로 사실상 그누보드의 Kcaptcha가 무력화되는 취약점(?)을 발견했습니다.


Tesseract에서 여러 옵션을 주면서 시도해봐도 대체로 잘 인식이 되지 않았는데, 


카카오 OCR API에서는 특별한 옵션을 지정할 수 없음에도 불구하고 상당히 강력하다는 느낌을 받았습니다.


예컨대 다음과 같은 숫자를 잘 인식했고, 전반적으로 높은 확률로 성공하였습니다.



 



제가 사용한 이미지 프로세싱과 관련된 방법을 그대로 공개하면 문제의 소지가 될 수 있을 것 같아서 여기에는 적지 않겠습니다.


사실 제가 대단한 이미지 프로세싱을 사용한 것도 아니고 Pillow로 간단히 전처리한 것이어서 더욱 놀랐습니다.


그누보드로 사이트를 운영하시는 분들께서는 카카오 OCR을 이용한 스팸 글 작성에 각별히 주의하셔야 될 것 같습니다 ㅠㅠ


사견으로는 보다 뚫기 오려운 구글 리캡차 등으로 변경하시는 것을 권해드립니다.


Dobob님 Dobob 포함 1명이 추천

추천인 1

작성자
이니스프리 119 Lv. (0%) 1876250/115200000EXP

당분간 일신상의 사정으로 쪽지나 댓글로 답변을 드리기 어렵습니다. 죄송합니다.

 

CSVpuymXAAAVVpd.jpg

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 2

이니스프리 작성자
profile image

제가 개인적으로 테스트했을 때 특별한 이미지 프로세싱을 하지 않고서도 평균적으로 약 35~40% 정도의 성공률을 보였습니다.

이 정도라면 캡차가 사실상 무력화될 수 있으니 사이트 운영에 참고하세요.

comment menu
2020.01.14. 22:17

신고

"이니스프리님의 댓글"

이 댓글을 신고 하시겠습니까?

이니스프리 작성자
profile image
요새 다시 테스트해봤는데 인식률이 50~60% 정도로 올라간 것 같네요 ㅎㄷㄷ
comment menu
2020.06.27. 19:04

신고

"이니스프리님의 댓글"

이 댓글을 신고 하시겠습니까?

권한이 없습니다.