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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
phpmyadmin-config-set-2fa — phpMyAdmin 5.2.3 - 높음 - 원격 - 2FA - config/set이 2단계 인증을 초기화함 | Kitploit
도구/GitHubGitHub/abraxas/phpmyadmin-config-set-2fa
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingAuthenticationLabs & Practice
GitHubabraxas/phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

phpMyAdmin 5.2.3 - 높음 - 원격 - 2FA - config/set이 2단계 인증을 초기화함

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - phpmyadmin-config-set-2fa

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-config-set-2fa

분석 문서: https://abraxaslabs.tech/research/phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

분류: 권한 잔여 / 단계 상향 누락 도달 범위: 원격

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

POST index.php?route=/config/set는 2fa를 포함한 허용 목록의 모든 환경설정을 기록합니다. UserPreferences::persistOption은 아무런 검증도 하지 않습니다. 설정 -> 2단계 인증은 여전히 인증 요소를 제거하기 전에 TwoFactor::check(true)를 호출합니다. /config/set은 그렇지 않습니다.

로그인된 세션, 또는 페이지 토큰을 POST할 수 있는 XSS/CSRF는 key=2fa와 value=null을 전송할 수 있습니다. 다음 비밀번호 로그인에는 TOTP, WebAuthn, Simple 프롬프트가 없습니다. 단일 요청 건너뛰기가 아닌 지속적인 제거입니다.

ID아직 CVE 없음
분류권한 잔여 / 단계 상향 누락
도달 범위원격 (인증된 쿠키 로그인, CSRF 토큰 필요)
CWECWE-620
CVSS높음: 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 (962857e4f63d42e38f11ff4d63f5e722018add76)
인증쿠키 로그인. CSRF 토큰 필요. 지속적인 2FA 제거로 이어지는 XSS 또는 CSRF를 완성함
라이선스GNU Affero GPL v3.0
실습 환경127.0.0.1 전용

공격자가 할 수 있는 일

TOTP, WebAuthn, 또는 Simple 확인 필드를 제시하지 않고 phpMyAdmin 계정에서 2FA를 제거합니다. 다음 비밀번호 로그인은 비밀번호만으로 이루어집니다. 해당 MySQL 사용자로서 전체 PMA 권한(SQL, 사용자, 내보내기)을 가집니다.

권한메서드 / 경로정찰 / 무결성 / 가용성실습 입증 또는 추론
2fa를 null로 지속시키고 pmadb에서 두 번째 인증 요소 제거인증된 POST index.php?route=/config/set key=2fa value=null 및 유효한 token환경설정 저장소의 무결성실습 입증. success:true, pmadb config_data가 []가 됨
해당 쓰기 이후 비밀번호만으로 로그인새 쿠키 세션, 동일 MySQL 사용자로그인 경로의 무결성실습 입증. 2fa_confirm 없이 일반 UI에 진입
이후 로그인에서 2FA가 사라지는 동안 현재 세션 유지동일 핸들러; persistOption은 저장소를 기록하며 라이브 two_factor_check 플래그는 아님이후 세션의 무결성실습 입증. 세션 A는 유지됨. 세션 B는 2FA를 보았음. 세션 C는 보지 못함
페이지 토큰으로 POST할 수 있는 저장형 XSS 또는 CSRF로부터 연쇄동일 검토의 잔여 항목, 이 실습 아님동일 출처 POST 이후 2FA의 무결성추론
설정을 통해 2FA 제거POST /preferences/two-factor 2fa_remove=1문서화된 UI를 통한 2FA의 무결성실습 입증, 차단됨. 인증 요소 없이는 PMA가 확인 페이지를 표시하고 pmadb에는 여전히 backend=simple이 있음

이 잔여 항목에서 차단됨: 인증되지 않은 접근, MySQL 비밀번호 건너뛰기, OS RCE, 다른 사용자의 pmadb 행 읽기. 잔여 항목 #1(CustomServer 서명)은 필요하지 않았습니다. MySQL 비밀번호는 건너뛰지 않았습니다.

동일 핀: WebAuthn CustomServer 잔여 항목.

발견 방법

PMASA-2025-1/2/3 이후 5.2.3으로 고정했습니다. 쿠키 인증, pmadb pma__userconfig. 랩에서는 하드웨어 키 없이 Settings에서 Simple 백엔드를 등록할 수 있도록 $cfg['DBG']['simple2fa']만 켭니다. TOTP와 WebAuthn은 동일한 2fa preference 키에 있습니다.

SetConfigController는 key와 JSON value를 받아 Config::setUserValue를 호출합니다. UserPreferences::persistOption은 "No validation is done!"이라고 문서화되어 있습니다. apply()는 2fa를 허용 목록에 포함시켜 해당 키가 알 수 없는 pref로 제거되지 않도록 합니다.

$result = $this->config->setUserValue(null, $key, json_decode($value));

json_decode('null')는 PHP null입니다. persistOption('2fa', null, $default)는 해당 경로의 기본값도 null이기 때문에 config_data['2fa']를 unset합니다.

Settings -> Two-factor는 대조적입니다. TwoFactorController는 TwoFactor::check(true)가 true를 반환할 때까지 configure('')를 하지 않습니다.

이미 기록된 잘못된 해석: Settings 2fa_remove를 취약점으로 간주한 것(여전히 인증 요소를 요구함); 인증되지 않은 접근이라고 주장한 것; MySQL 비밀번호를 건너뛴다고 주장한 것; 이를 #1(CustomServer)의 잔재로 간주한 것; 리버스 셸. 연극일 뿐입니다.

Lab

python3 phpmyadmin-config-set-2fa-Abraxas-Labs.py
# or: cd lab && ./run.sh

http://127.0.0.1:19280만 대상으로 합니다. Compose 프로젝트 phpmyadmin-config-set-2fa. RELEASE_5_2_3을 고정합니다. run.sh는 해당 태그를 이미지용으로 lab/src/에 복사하거나 클론합니다. 실행 후 스택은 내려갑니다.

설정에서 Simple 2FA를 등록했습니다. 두 번째 브라우저가 2fa_confirm 페이지에 접근했습니다. 인증 요소 없이 2fa_remove를 POST했지만 확인 UI에 그대로 머물렀고 pmadb에는 backend=simple이 남아 있었습니다. 이후 /config/set을 POST하자 success:true가 반환되었고, pmadb는 []가 되었으며, 다음 로그인은 일반 UI로 진입했습니다.

SUCCESS phpmyadmin-config-set-2fa enroll=simple ui-remove-blocked=yes config-set-cleared=yes next-login-password-only=yes PMA-CONFIG-SET-2FA-WITNESS

수정 사항

/config/set에서 2fa(및 기타 인증 키)를 거부합니다. 2FA 변경 전에 TwoFactor::check(true)를 요구합니다. Settings 경로만 유일한 기록자로 유지합니다.

참고 자료

  • github.com/phpmyadmin/phpmyadmin 태그 RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/Controllers/Config/SetConfigController.php
  • libraries/classes/Config/UserPreferences.php
  • 동일 고정 버전: PMA-5.2.3-WebAuthn-2FA
  • CWE-620

라이선스

GNU Affero GPL v3.0. LICENSE를 참조하세요. 루프백 실습 환경 전용입니다. 보증은 제공되지 않습니다.

도구 다운로드