Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
phpmyadmin-webauthn — phpMyAdmin 5.2.3 - 높음 - 원격 - 2FA 우회 - WebAuthn 인증 과정을 건너뛸 수 있음 | Kitploit
도구/GitHubGitHub/abraxas/phpmyadmin-webauthn
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingAuthenticationLabs & Practice
GitHubabraxas/phpmyadmin-webauthn

phpmyadmin-webauthn

phpMyAdmin 5.2.3 - 높음 - 원격 - 2FA 우회 - WebAuthn 인증 과정을 건너뛸 수 있음

저장소 보기
93일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - phpmyadmin-webauthn

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-webauthn

phpmyadmin-webauthn

분류: 2FA 우회 도달 범위: 원격

phpMyAdmin 5.2.3 (태그 RELEASE_5_2_3). 기본 tarball. web-auth/webauthn-lib는 suggest / require-dev입니다. composer install --no-dev는 이를 설치하지 않습니다. 따라서 createServer는 CustomServer를 사용합니다. 해당 클래스는 response.signature를 파싱하고(필드가 존재하고 디코딩되어야 함) 절대 COSE 검증을 하지 않습니다. 저장된 credentialPublicKey를 절대 사용하지 않습니다. 제품 자체의 CustomServerTest는 공개 키 없이 assertion을 허용합니다.

구조적 검사는 실제로 수행됩니다: allowCredentials 내 credential id, clientData.type == webauthn.get, 세션과 일치하는 challenge, origin host, rpIdHash, user-present. 서명은 파싱되고 무시됩니다. MySQL 비밀번호 이후, 해당 필드들과 여전히 일치하는 쓰레기 WebAuthn 서명은 완전한 phpMyAdmin 세션을 부여합니다. 그것이 데이터베이스입니다. 실제로 web-auth/webauthn-lib를 설치했다면, WebauthnLibServer를 사용하는 것이며 이 버그에 해당하지 않습니다.

ID아직 CVE 없음
분류2FA 우회 / 서명 검증 누락
도달 범위원격 (쿠키 로그인 후 WebAuthn 건너뜀)
CWECWE-347, CWE-287
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
제품phpMyAdmin
영향받는 버전5.2.3 태그 RELEASE_5_2_3. 기본 tarball / composer install --no-dev
인증쿠키 로그인 (MySQL 비밀번호) 후 WebAuthn 건너뜀
라이선스GNU Affero GPL v3.0
랩127.0.0.1:18080 전용

공격자가 할 수 있는 일

여전히 MySQL 비밀번호(쿠키 로그인)가 필요합니다. 그 비밀번호 이후, 일치하는 challenge, origin host, rpIdHash, user-present, 등록된 credential id, 그리고 쓰레기 서명을 담아 webauthn_request_response를 POST합니다. 그러면 정상 UI에 진입합니다. 2FA는 사라집니다. 그것은 데이터베이스(SQL, 사용자, 내보내기)이며, 호스트 상의 PHP 셸이 아닙니다.

실제로 web-auth/webauthn-lib를 설치했다면, WebauthnLibServer를 사용하는 것이며 이 버그에 해당하지 않습니다.

권한메서드 / 경로랩 입증 또는 추정
인증자 없이 WebAuthn 2FA 완료 (2차 인증 요소의 무결성)비밀번호 후 POST webauthn_request_response, 쓰레기 서명랩 입증. still_2fa=False landed=True
해당 MySQL 사용자로서의 전체 PMA (무결성 + SQL 박스 정찰)동일 세션랩 입증. 홈 UI 마커 존재
MySQL 비밀번호 건너뛰기인증되지 않은 POST랩 입증, 차단됨. 로그인 화면 유지
web-auth/webauthn-lib가 설치된 상태에서 동일 우회WebauthnLibServer차단됨. 이 잔여 버그 아님
OS RCE / 리버스 셸이 잔여 버그차단됨

이 잔여 버그에서 차단된 것: 인증되지 않은 PMA, 호스트 상의 PHP 셸, 그리고 실제로 web-auth/webauthn-lib를 설치한 tarball을 이 버그로 취급하는 것.

발견 방법

createServer를 읽고, 그다음 parseAndValidateAssertionResponse를 읽고, 그다음 공개 키를 전달하지 않는 단위 테스트를 읽었습니다. 구조적 검사는 실제로 수행됩니다. 서명은 파싱되고 무시됩니다.

잘못된 시도들: 사전 비밀번호 세션 없이 WebAuthn JSON을 POST; 구조적 검사를 통과하지 못한 서명; Webauthn\Server가 여전히 존재(잘못된 서버 클래스); 이 세션에서 나오지 않은 challenge; origin host 불일치; user-present 플래그 해제; allowCredentials에 없는 credential id.

랩 Dockerfile은 5.2.3을 복사하고, composer install --no-dev를 실행한 뒤, vendor/web-auth를 삭제하여 CustomServer가 사용되도록 합니다. 마지막 php -r은 Webauthn\Server가 존재하면 종료 코드 1로 종료됩니다. init.sql은 하드웨어 키 없이 appuser에 대해 WebAuthn 2FA를 등록합니다. PoC는 서명 not-a-real-signature-PMA-WEBAUTHN-BYPASS를 POST합니다.

랩

Dockerfile 옆에 핀을 클론한 뒤 실행하세요:

cd lab
git clone --depth 1 --branch RELEASE_5_2_3 https://github.com/phpmyadmin/phpmyadmin.git src
./run.sh

또는 해당 클론 후 팩 루트에서:

python3 phpmyadmin-webauthn-Abraxas-Labs.py

루프백 전용: http://127.0.0.1:18080. Compose 프로젝트 pma-webauthn-lab. 핀 RELEASE_5_2_3. src/를 배포하지 마세요. 증거 PMA-WEBAUTHN-BYPASS.

SUCCESS PMA-WEBAUTHN-BYPASS WebAuthn 2FA accepted with garbage signature

수정 방법

저장된 COSE 공개 키로 authenticatorData || SHA-256(clientDataJSON)을 검증하세요; userHandle을 바인딩하세요; signCount를 강제하세요. web-auth/webauthn-lib를 실제 의존성으로 만들고 CustomServer를 삭제하거나, 라이브러리가 없으면 fail closed로 처리하세요. 그때까지는 WebAuthn 2FA를 비활성화하거나 이 phpMyAdmin을 노출하지 마세요.

참고 자료

  • github.com/phpmyadmin/phpmyadmin 태그 RELEASE_5_2_3
  • Plugins\TwoFactor\WebAuthn::createServer
  • CustomServer::parseAndValidateAssertionResponse
  • 동일 핀 잔여 버그: phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-347 · CWE-287

라이선스

GNU Affero GPL v3.0. LICENSE 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드