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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2019-15107-lab — Webmin 비인증 RCE인 CVE-2019-15107을 시연하는 Docker 기반 랩으로, 배포, 익스플로잇, 탐지, 완화를 다룹니다. | Kitploit
도구/GitHubGitHub/shambhavim18/cve-2019-15107-lab
Defensive ToolsContainer SecurityVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubshambhavim18/cve-2019-15107-lab

cve-2019-15107-lab

Webmin 비인증 RCE인 CVE-2019-15107을 시연하는 Docker 기반 랩으로, 배포, 익스플로잇, 탐지, 완화를 다룹니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2019-15107 – Webmin 인증 우회 RCE 실습

1. 프로젝트 개요

이 프로젝트는 Webmin의 치명적인 원격 코드 실행(RCE) 취약점인 CVE-2019-15107을 통제되고 격리된 Docker 환경에서 시연합니다. 이 실습은 배포와 익스플로잇부터 탐지 및 완화까지 전체 취약점 생명주기를 다룹니다.

2. 사전 요구 사항 및 환경 요구 사항

사전 요구 사항-

1.Docker Desktop (설치 및 실행 중)
2.Docker Compose
3.curl.exe를 지원하는 터미널 / PowerShell

환경 요구 사항OS: Windows / Linux / mac-

1.OS (로컬 호스트 환경)

2.포트 가용성: 호스트 머신에서 포트 10000이 사용 가능해야 합니다.

3. 취약한 애플리케이션 및 버전

1.애플리케이션: Webmin
2.취약한 버전: 1.910 (영향받는 버전: 1.880 ~ 1.920)
3.수정/패치된 버전: 1.930 이상
4.취약점 유형: OS 명령에 사용되는 특수 요소의 부적절한 중화 (CWE-78)
5.CVSS 점수: 9.8 (치명적)

4. 설치 및 설정 단계

1.이 프로젝트 저장소를 로컬 머신에 복제하거나 다운로드합니다.

2.터미널을 열고 docker-compose.yml이 포함된 프로젝트 디렉터리로 이동합니다.

3.시스템에서 Docker Desktop이 활성화되어 있는지 확인합니다.

5. 실습 시작 및 중지 방법

실습 시작 방법-

프로젝트 루트 디렉터리에서 다음 명령을 실행하여 취약한 컨테이너를 백그라운드 모드로 가져오고 시작합니다: docker-compose up -d

다음을 실행하여 컨테이너 상태를 확인할 수 있습니다: docker compose ps

웹 브라우저에서 다음 주소로 애플리케이션 인터페이스에 접속합니다: https://localhost:10000 (로컬 SSL 인증서 경고를 수락하세요).

실습 중지 방법-

실행 중인 컨테이너 환경을 중지하고 제거하려면 다음을 실행합니다: docker-compose down

6. 취약점 익스플로잇 방법

이 취약점은 인증되지 않은 비밀번호 변경 엔드포인트(/password_change.cgi)에 존재하며, 여기서 입력 매개변수가 적절한 정제 없이 시스템 셸로 직접 전달됩니다.

터미널(PowerShell/Bash)에서 다음 명령을 실행하여 진단 명령(id)을 개념 증명으로 실행합니다:

curl.exe -k https://localhost:10000/password_change.cgi -e "https://localhost:10000" -d "user=root&pam=&old=test|id&new1=test&new2=test"

7. 예상 결과

성공적인 익스플로잇: 서버가 주입된 파이프 문자(|)를 처리하여 루트 권한으로 인증되지 않은 명령 실행을 트리거합니다. 터미널은 컨테이너 셸 피드백(uid=0(root))과 함께 HTML 응답 증거를 출력하여 원격 코드 실행이 성공했음을 확인합니다.

8. 탐지 메커니즘 실행 방법이 취약점에 대한 탐지는 다음을 통해 수행할 수 있습니다:

1.버전 식별: 실행 중인 Webmin 인스턴스 버전을 검사하여 취약한 범위(1.880 ~ 1.920)에 해당하는지 확인합니다.

2.네트워크 / 로그 모니터링: 웹 서버 액세스 또는 WAF 로그에서 /password_change.cgi로 향하는 수신 HTTP POST 요청 중 매개변수 값 내에 의심스러운 셸 제어 문자(| 또는 ; 등)를 포함하는 요청을 검사합니다.

9. 완화

CVE-2019-15107을 완화하고 해결하려면:

1.업그레이드: Webmin을 버전 1.930 이상으로 업그레이드합니다. 이 버전은 기본 모듈로 전달되는 입력을 적절히 정제합니다.

2.접근 제어: 방화벽 또는 VPN 터널을 사용하여 포트 10000에 대한 네트워크 접근을 제한하여 신뢰할 수 없는 네트워크에 직접 노출되는 것을 방지합니다.

10. 문제 해결 참고 사항

1.Docker 데몬이 실행되지 않음: 연결 오류가 발생하면 Docker Desktop이 완전히 시작되었는지 확인하고 docker version을 사용하여 검증합니다.

2.포트 충돌 (10000이 이미 사용 중): 다른 로컬 애플리케이션 또는 서비스가 포트 10000을 점유하고 있지 않은지 확인합니다.

3.PowerShell curl 구문 오류: Windows PowerShell에서 표준 curl 대신 curl.exe를 사용하여 PowerShell의 내장 Invoke-WebRequest 별칭과의 매개변수 매핑 문제를 피합니다.

도구 다운로드