티스토리 뷰
728x90
반응형
가끔 로그인 창이나 반복적으로 확인하거나 입력하기 위한 사이트에서 마주치는 것이 Captcha(캡챠)죠?
CAPTCHA는 기계는 인식할 수 없으나 사람은 쉽게 인식할 수 있는 텍스트, 이미지를 통해 사람과 기계를 구별하는 프로그램이다.
자동화된 프로그램이 접근하는 것을 막기위해서 다양한 방법이 있겠지만 비교적 저비용으로 수행할 수 있는 방법이 Captcha입니다.
가장 일반적으로 생각할 수 있는 우회 방법은 9가지로 아래와 같습니다.
- 아예 Captcha 관련 요청을 보낼 때 Captcha 관련 파라미터를 보내지 않는 방법입니다.
- 아니면 POST 요청을 GET이나 다른 HTTP 요청헤더로 변경해보는 것도 방법입니다.
- 아니면 그냥 JSON 형태로 보내던가 해봅시다.
- 아예 그냥 Captcha 파라미터에 빈 값을 넣고 보내봅니다.
- 혹시 Captcha 코드가 페이지에 노출되어 있는지 확인합니다.
- 혹시 Captcha 코드가 쿠키 값에 있는지 확인해봅니다.
- 혹시 옛날에 사용하던 Captcha 값을 재사용할 수 있는 지 해봅니다.
- 동일한 세션ID일 경우 Captcha 도 동일한 걸 여러번 사용할 수 있는 지 확인해봅니다.
- 만약 Captcha 생성에 일정한 규칙이나 수학적 알고리즘이 존재한다면, 알고리즘을 자동화해봅니다.
- 만약 Captcha 가 이미지 형태이며, 전체 이미지 개수가 별로 없다면, 이미지들을 MD5 해시화해서 구별해봅시다.
- 아니면 그냥 OCR(Optical Character Recognition)을 할 수도 있습니다. 가장 유명한 라이브러리 중에서는 tesseract-ocr 이 있습니다. (참고 : https://github.com/tesseract-ocr/tesseract)
- 끝 -
추신 : 대회나 문제 풀이할 때 참고하려고 정리해둔 것을 실제 예매/예약하는 매크로 프로그램 제작에 쓰려고 캡챠 우회 방법에 대해서 질문하시는 분들이 계신데, 이를 악용하는 법에 대한 질문에는 따로 대답해드리지 않겠습니다. 또한 개발자라면 반드시 위 내용을 참고해서 캡챠 보안을 강화해주길 바랍니다.
728x90
반응형
'보안' 카테고리의 다른 글
[꿀팁]🤩리버스쉘(reverse shell) 쉽고 빠르게 여는 방법 (46) | 2023.12.10 |
---|
댓글