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 Enababledなど)。
listoptions "-a"が構成に追加されると、 ftp_rawlist()は非表示ファイルを含むすべてのファイルを返します。
Pure-FTPDはUNIXスタイルもサポートしていますが、一部の設定では、簡素化された形式のリスト(許可列の省略など)を返す場合があります。 「UNIXリスティング」モードを有効にすることをお勧めします。
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 | Unix | ? |
Proftpd | Unix | ? (構成は出力に影響します) |
Pure-ftpd | Unix | ? (UNIXモードを有効にすることをお勧めします) |
filezillaサーバー | Unix-like | ? (一部のフィールドはありません) |
IIS FTPサーバー | dos | ? (互換性のないフォーマット) |