1. 취약점 요약
CVE-2025-47812 예 Wing FTP 서버 심각한 원격 코드 실행(RCE) 취약점이 존재합니다. 이 취약점은 웹 관리 인터페이스에서 사용자 입력을 처리할 때 서버가 NB(널 바이트)를 제대로 필터링하지 못하기 때문에 발생합니다. \0 어쩌면 %00).
공격자는 사용자 이름 매개변수에 널 바이트와 악성 Lua 스크립트 코드를 삽입하여 인증 로직을 우회하거나 익명 로그인 메커니즘을 악용하여 서버의 세션 파일에 악성 코드를 삽입할 수 있습니다. 이후 서버가 세션 파일을 로드하면 삽입된 Lua 코드가 파싱되어 실행됩니다.
Wing FTP 서버는 기본적으로 상승된 권한(Windows에서는 시스템, Linux/유닉스에서는 루트)으로 실행되므로, 이 취약점을 성공적으로 익스플로잇하면 다음과 같은 결과가 바로 발생합니다.서버가 완전히 다운되었습니다... 이 취약점은 인터넷에서 야생 익스플로잇 활동이 모니터링되고 있습니다.
취약성 영향 평가:
2. 취약점 분석
2.1 취약성 원칙
취약점의 핵심은 Wing FTP 서버의 웹 인터페이스(특히 로그인 로직을 처리하는 구성 요소)와 기본 세션 관리 메커니즘 간의 문자열 처리 불일치에 있습니다.
-
입력 지점취약점 트리거는 주로 사용자 로그인 요청을 처리하는 인터페이스에 있습니다.
POST /loginok.html. -
널 바이트 잘림백엔드 C++ 인증 모듈에서 사용자 이름의 유효성을 검사할 때 null 바이트가 발생합니다(
\0) 즉, 읽기를 중지합니다. 즉, 공격자가 다음을 제출하면username=anonymous%00[恶意代码]인증 모듈은익명를 사용하여 인증을 허용합니다(익명 액세스가 활성화되어 있거나 유효한 사용자 아이디를 사용한다는 가정 하에). -
루아 주입인증 모듈은 스푸핑을 위해 잘리지만, 사용자 정보를 세션 파일에 쓰는 모듈(일반적으로 Lua 스크립트 형식으로 저장됨)은 null 바이트로 잘리지 않고 대신문자열 완성(널 바이트 뒤의 악성 코드 포함)가 디스크의 세션 파일에 기록되었습니다.
-
코드 실행Wing FTP는 Lua 스크립트를 사용하여 세션 상태를 관리합니다. 사용자가 다른 페이지(예
/dir.html) 세션 로드가 트리거되면 서버는 세션 파일에서 Lua 코드를 구문 분석하고 실행하여 RCE를 트리거합니다.
2.2 공격 벡터
-
공격 경로: 네트워크 원격 공격(네트워크).
-
권한 요구 사항: 높은 권한이 필요하지 않습니다. 서버가 익명 로그인(익명)이 활성화된 경우 공격자는 인증 없이도 서버를 완전히 악용할 수 있으며, 그렇지 않은 경우 공격자는 낮은 권한의 일반 계정만 있으면 권한을 해제할 수 있습니다.
-
상호 작용사용자 상호작용이 필요하지 않습니다(제로 클릭).
3. 취약점의 영향
3.1 기술적 의미
-
전체 시스템 제어공격자가 임의의 시스템 명령을 실행할 수 있습니다.
-
권한 상승악성 코드는 일반적으로 윙 FTP 서비스의 권한을 상속받습니다.
NT 권한\시스템(Windows) 또는root(Linux). -
지속성 및 측면 이동공격자는 이 취약점을 사용하여 백도어, 랜섬웨어를 설치하거나 인트라넷의 다른 자산을 공격하기 위한 발판으로 삼을 수 있습니다.
3.2 운영 영향
-
데이터 침해FTP 서버에 저장된 모든 민감한 파일(소스 코드, 금융 데이터, 개인 정보 등)이 도난당할 위험에 노출되어 있습니다.
-
서비스 중단공격자는 파일을 삭제하거나 데이터를 암호화(랜섬웨어)하여 비즈니스를 마비시킬 수 있습니다.
-
규정 준수 위험회사가 GDPR, HIPAA 또는 집단 보호와 같은 법률 및 규정을 위반하게 합니다.
4. 익스플로잇 분석 및 검증
경고: 이 섹션의 콘텐츠는 보안 연구 및 방어 검증을 위한 용도로만 사용되며 불법 공격에 사용하는 것은 엄격히 금지됩니다.
4.1 개념 증명 로직(PoC 로직)
공격 프로세스는 두 가지 주요 HTTP 요청 단계로 나뉩니다:
1단계: 악성 세션 인젝션(페이로드 전달)
공격자가 /loginok.html로 POST 요청을 보냅니다.
-
헤더콘텐츠 유형: application/x-www-form-urlencoded
-
페이로드(회로도):
일반 텍스트username=ValidUser%00';os.execute('calc.exe');--&password=AnyPasswordparse:
ValidUser유효성 검사를 통과했습니다.%00그런 다음 Lua 코드가 세션 파일에 기록됩니다.
2단계: 코드 실행 트리거(트리거)
공격자는 1단계에서 반환된 쿠키(세션 ID)를 /dir.html과 같이 인증이 필요한 페이지에 전달합니다.
-
서버에서 세션 파일 로드 -> Lua 코드 구문 분석 -> 실행
os.execute('calc.exe').
4.2 유효성 검사 방법
로그 감사:
Wing FTP의 액세스 로그 또는 시스템 로그에서 다음 특성을 확인하세요:
-
오른쪽
loginok.html요청의 POST 데이터에는 다음이 포함됩니다.%00또는 16진수0x00. -
세션 디렉터리에 비정상적인 Lua 구문이 포함된 세션 파일이 나타납니다.
-
서버 프로세스(
wftpserver.exe)는 의도하지 않은 하위 프로세스(예cmd.exe,powershell.exe,sh,bash).
네트워크 트래픽 분석:
在 WAF 或 IDS/IPS 上监控 HTTP POST 请求体,匹配正则表达式规则:username=.*%00.*。
5. 취약점 솔루션
5.1 공식 수정(권장)
공급업체인 Wing Soft에서 이 취약점을 수정하는 보안 업데이트를 발표했습니다.
최고 보안 책임자의 원본 기사, 복제할 경우 출처 표시: https://www.cncso.com/kr/cve-2025-47812-wing-ftp-server-remote-code-execution.html
