VSFTPD는 보안으로 알려진 널리 사용되는 오픈 소스 FTP 서비스 소프트웨어입니다. 기본적으로 목록 출력 형식은 UNIX 스타일을 따르므로 FTP_RAWLIST ()는 이러한 서버 응답을 구문 분석 할 때 잘 수행됩니다.
$conn = ftp_connect("gitbox.net");
ftp_login($conn, "user", "password");
$rawlist = ftp_rawlist($conn, ".");
print_r($rawlist);
출력 예 :
Array
(
[0] => drwxr-xr-x 2 1000 1000 4096 May 20 10:30 public_html
[1] => -rw-r--r-- 1 1000 1000 1234 May 19 14:12 index.php
)
이 출력 형식은 매우 표준이며 일반 표현식으로 구문 분석에 적합합니다.
Proftpd는 광범위한 구성 옵션을 지원하며 기본적으로 Unix 스타일 출력을 사용합니다. 그러나 구성은 유연하며 경우에 따라 출력 형식이 변경됩니다 (예 : ListOptions 활성화).
ListOptions "-a"가 구성에 추가되면 ftp_rawlist ()는 숨겨진 파일을 포함한 모든 파일을 반환합니다.
Pure-FTPD는 또한 UNIX 스타일을 지원하지만 일부 설정에서는 단순화 된 형식 목록 (예 : 권한 열 생략)을 반환 할 수 있습니다. "Unix Listings"모드를 활성화하는 것이 좋습니다.
pure-config.pl --with-unix-listings
켜진 후 FTP_Rawlist () 의 리턴 값 형식은 vsftpd에 가깝습니다.
FileZilla Server는 사용자 정의 구현을 사용합니다. 목록 출력은 또한 UNIX 스타일, 권한 열 및 사용자 그룹 정보를 모방하지만 다음 과 같이 종종 자리 표시 자입니다.
-rw-r--r-- ? ? ? 1024 May 21 09:45 log.txt
일부 자동화 시나리오에서 최선의 선택은 아니지만 기본 구조는 변경되지 않으며 Exploit () 또는 규칙적으로 필드를 여전히 구문 분석 할 수 있습니다.
IIS의 FTP 서버는 기본적으로 이전 버전의 DOS 스타일 디렉토리 목록을 출력합니다.
05-21-25 09:45AM <DIR> Logs
05-21-25 09:45AM 1024 report.txt
ftp_rawlist ()는 형식을 파일/디렉토리 권한, 사용자 및 기타 정보로 직접 구문 분석 할 수 없습니다. FTP_Rawlist () 시나리오에서 IIS FTP를 사용하지 않거나이 형식의 구문 분석 논리를 수동으로 구현하는 것이 좋습니다.
서버 유형 | 형식 유형 | FTP_Rawlist와 호환됩니까? |
---|---|---|
vsftpd | 유닉스 | ? |
proftpd | 유닉스 | ? (구성은 출력에 영향을 미칩니다) |
순수한 -ftpd | 유닉스 | ? (UNIX 모드를 활성화하는 것이 좋습니다) |
FileZilla 서버 | 유닉스와 같은 | ? (일부 필드가 누락되었습니다) |
IIS FTP 서버 | 도스 | ? (양립 할 수없는 형식) |