Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2012-2122 — CVE-2012-2122 - MySQL Authentication Bypass | Kitploit
도구/GitHubGitHub/k3ystr0k3r/cve-2012-2122
Password AttacksVulnerability AnalysisExploitationPenetration TestingAuthenticationLearning & EducationDatabase Security
GitHubk3ystr0k3r/cve-2012-2122

CVE-2012-2122

CVE-2012-2122 - MySQL Authentication Bypass

저장소 보기
1개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2012-2122 - MySQL 인증 우회

취약한 MySQL 및 MariaDB 서버에 영향을 미치는 심각한 인증 우회 취약점인 CVE-2012-2122의 개념 증명(PoC)입니다.

면책 조항

이 프로젝트는 교육 목적, 보안 연구 및 승인된 침투 테스트용으로만 제공됩니다. 귀하가 소유하지 않거나 명시적 테스트 권한이 없는 시스템에 이 소프트웨어를 사용하지 마십시오.


CVE-2012-2122는 MySQL의 비밀번호 검증 로직에서 발견된 인증 우회 취약점입니다.

정수 캐스팅/비교 버그로 인해 특정 조건에서 유효하지 않은 비밀번호 비교가 동등한 것으로 평가되어 인증이 잘못 성공할 수 있습니다.

공격자는 유효한 비밀번호를 알 필요 없이 비교 버그가 트리거될 때까지 임의의 비밀번호를 사용하여 인증을 반복적으로 시도할 수 있습니다.

성공 확률은 대략 다음과 같습니다:

  • 256회 인증 시도 중 1회 (0.39%)

이 비교적 높은 확률 때문에 자동화된 도구는 일반적으로 수백 번의 로그인 시도 내에 인증을 우회할 수 있습니다.


심각도

메트릭값
CVECVE-2012-2122
CVSS v27.5 (높음)
공격 벡터네트워크
인증필요 없음
사용자 상호 작용필요 없음
영향인증 우회

영향을 받는 버전

이 취약점은 취약한 컴파일러 최적화로 빌드된 MySQL 빌드에 영향을 미치며, 다음과 같은 버전을 포함합니다:

  • MySQL 5.1.x
  • MySQL 5.5.x
  • 취약한 코드에서 파생된 일부 MariaDB 릴리스

이 문제는 주로 컴파일러 동작으로 인해 버그가 드러난 Linux 배포판에 영향을 미쳤습니다.

이러한 버전의 모든 설치가 취약한 것은 아닙니다.


기술적 세부 사항

비밀번호 확인 중 MySQL은 내부적으로 memcmp() 함수를 사용하여 두 해시 값을 비교합니다.

정상적인 상황에서:

root@kitploit:~
memcmp(hash1, hash2)

다음을 반환합니다:

  • 동일하면 0
  • 다르면 0이 아닌 값

취약점은 반환 값이 부호 있는 정수에 저장되고 이후 특정 0이 아닌 값이 인증 성공으로 해석될 수 있는 방식으로 변환되면서 발생했습니다.

단순화된 로직:

root@kitploit:~
if (memcmp(hash1, hash2) == 0)
{
    // 로그인 성공
}

취약한 컴파일러 동작 하에서 memcmp()의 특정 반환 값이 비교를 잘못 충족시킬 수 있었습니다.

결과적으로 잘못된 비밀번호가 때때로 성공적으로 인증되었습니다.


익스플로잇

공격자에게 필요한 것은:

  • MySQL 서비스에 대한 네트워크 접근
  • 유효한 사용자 이름

비밀번호 지식은 필요하지 않습니다.

공격자는 임의의 비밀번호를 사용하여 로그인 시도를 계속 제출합니다.

결국 비교 버그로 인해 하나의 인증이 성공합니다.

일반적인 공격 흐름:

root@kitploit:~
시도 #1
    ↓
인증 실패

시도 #57
    ↓
인증 실패

시도 #141
    ↓
인증 실패

시도 #237
    ↓
인증 성공

평균 성공은 대략 256회 시도당 한 번 발생합니다.


영향

성공적인 익스플로잇을 통해 공격자는 다음을 수행할 수 있습니다:

  • 올바른 비밀번호 없이 인증
  • 데이터베이스 내용에 접근
  • 민감한 정보 덤프
  • 레코드 수정
  • 데이터베이스 생성 또는 삭제
  • MySQL에 의존하는 애플리케이션에 대한 공격 확대

관리자 자격 증명이 대상이 될 경우 데이터베이스 서버에 대한 완전한 제어 권한을 얻을 수 있습니다.


탐지

징후는 다음과 같습니다:

  • 대량의 실패한 인증 시도
  • 동일한 클라이언트의 빠른 반복 로그인
  • 많은 실패 후 인증 성공
  • 비정상적인 데이터베이스 접근 패턴

MySQL 인증 로그에서 과도한 실패 로그인 활동을 검토하십시오.


완화

권장 완화 방법은 패치된 릴리스로 업그레이드하는 것입니다.

추가 방어 조치는 다음과 같습니다:

  • MySQL 네트워크 노출 제한
  • 방화벽을 사용한 접근 제한
  • 원격 루트 로그인 비활성화
  • 최소 권한 데이터베이스 계정 적용
  • 인증 로그에서 무차별 대입 행동 모니터링
  • 가능한 경우 VPN 또는 내부 네트워크 접근 요구

참고 자료

  • CVE-2012-2122
  • Oracle MySQL 보안 권고
  • MariaDB 보안 권고
  • NVD (National Vulnerability Database)

root@kitploit:~
---

## 사용 예시

```bash
python3 exploit.py -ip <대상>

예시:

root@kitploit:~
python3 exploit.py -ip 192.168.1.100

교육 목적

이 저장소는 인증 로직의 미묘한 구현 버그가 어떻게 비밀번호 검증을 완전히 무너뜨릴 수 있는지 보여줍니다.

취약점이 10년 이상 지났지만, 여전히 다음 분야에서 중요한 사례 연구로 남아 있습니다:

  • 안전한 소프트웨어 개발
  • 컴파일러 종속 동작
  • 인증 설계
  • 방어적 프로그래밍
  • 취약점 연구
도구 다운로드