리뷰/자랑하기

[간단리뷰] 카카오 OCR API로 그누보드 Kcaptcha 우회하기

이니스프리2019.12.02 21:38조회 수 39추천 수 1댓글 0

  • 3
    • 글자 크기

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을 이용한 스팸 글 작성에 각별히 주의하셔야 될 것 같습니다 ㅠㅠ


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


ཇོ་མོ་གླང་མ

  • 3
    • 글자 크기
[간단리뷰] 카카오 API의 성인이미지 판별은 아직 신뢰할 정도의 수준은 아닌 것 같군요 (by 이니스프리) [간단리뷰] 카카오 API의 성인이미지에 대한 판별 기준이 뭔가 변경된 것 같네요 ㄷㄷ (by 이니스프리)

댓글 달기

핫슈
2019.12.08 조회 7
핫슈
2019.04.26 조회 59
핫슈
2019.02.02 조회 70
첨부 (3)
kcaptcha_image_001.jpg
2.2KB / Download 0
kcaptcha_image_002.jpg
1.9KB / Download 0
kcaptcha_image_003.jpg
2.5KB / Download 0
서버에 요청 중입니다. 잠시만 기다려 주십시오...