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단계 인증을 초기화함

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - phpmyadmin-config-set-2fa

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  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 토큰 필요. XSS 또는 CSRF를 지속적인 2FA 제거로 완성
라이선스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. 랩은 하드웨어 키 없이 설정에서 Simple 백엔드를 등록할 수 있도록 $cfg['DBG']['simple2fa']만 활성화한다. TOTP와 WebAuthn은 동일한 2fa 환경설정 키에 있다.

SetConfigController는 key와 JSON value를 받아 Config::setUserValue를 호출한다. UserPreferences::persistOption은 "검증이 수행되지 않음!"으로 문서화되어 있다. apply()는 2fa를 허용 목록에 포함하므로 해당 키가 알 수 없는 환경설정으로 제거되지 않는다.

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

json_decode('null')은 PHP null이다. persistOption('2fa', null, $default)는 해당 경로의 기본값도 null이므로 config_data['2fa']를 해제한다.

설정 -> 2단계 인증은 대조적이다. TwoFactorController는 TwoFactor::check(true)가 true를 반환할 때까지 configure('')를 하지 않는다.

이미 기록된 잘못된 방향: 설정 2fa_remove를 취약점으로 취급 (여전히 인증 요소를 요구함); 인증되지 않은 접근 주장; MySQL 비밀번호 건너뛰기 주장; 이를 잔존 항목 #1 (CustomServer)로 취급; 리버스 셸. 연극.

랩

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)를 요구한다. 설정 경로를 유일한 기록자로 유지한다.

참고 자료

  • 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 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드