【危険】ログイン処理をバイパス(osCommerce)【即死】
oscommerce(v2.2RC2a)
2008年頃(もっと前かも)から言われている*icon_doc*admin/file_manager.phpの脆弱性(directory traversal)を利用したリモートアップロード(ダウンロードも可)。
そんな事から*icon_doc*admin/file_manager.phpは削除してしまうのが基本といわれています。
で、私が遊んでいる(放置中)oscommerce(v2.2RC2a)には*icon_doc*admin/file_manager.phpが放置されていたんですよね=:[
その結果がこれですよ:[]
ざっと調べてみると、*icon_doc*admin/file_manager.phpを利用して、書き込み可能なディレクトリ(images等)にリモートシェルスクリプト(使ってみましたが非常に高機能:))を設置して、それを足がかりに好き勝手に改竄するという感じです。
マクシモクブログの場合は特に改竄されたわけではなく、犯行声明(twe.html)が置かれていっただけなのですが、酷い場合にはトップページにトルコの国旗がはためいていたりするみたいです。
対策として簡単なのから、
1)*icon_dir*imagesなどのパーミッションを755で運用する。
2)*icon_dir*admin/のリネーム
3)*icon_doc*admin/file_manager.phpの削除
4)*icon_doc*admin/.htaccessで、アクセスを制御する。
5)本家フォーラムを参考にいろいろする。
6)osCommerceをあきらめる。
などがあります。
あと、多分に絶対*icon_doc*configure.phpは見られちゃっていますので、管理用のパスワードやユーザーネーム(サーバー・データベース等、全て)は速やかに変更する必要があります。
よし、これでタイトルの即死はもう無いよね?
とは、残念ながらならないんです。
これは今回の改竄の首謀者であるTheWayEndについて調べる過程で発見したんですが、管理エリアの全てのページを閲覧は当たり前、ゴニョゴニョまで出来そうな感じの攻撃方法があるんですよ:ase:
穴はずばり*icon_doc*admin/application_top.phpのリダイレクト処理。
と、こんなコードなのですが、問題なのはこの部分。
パス中のファイル名の部分を返す。という処理なのですが、
こんなリクエストの場合、$current_pageに入るファイル名は何でしょう?
login.phpなんですよね。。。
すると、リダイレクト処理は行なわれずに*icon_doc*admin/customers.phpが走っちゃいます。具体例は書きませんが適当なパラメーターを付けると、もっといろいろ出来ちゃいそうです。
これを防ぐためには該当個所を、
に書き換えてください。これで実行ファイルの名前を正確に取ることが出来て、適切なリダイレクトがなされます。
2008年頃(もっと前かも)から言われている*icon_doc*admin/file_manager.phpの脆弱性(directory traversal)を利用したリモートアップロード(ダウンロードも可)。
そんな事から*icon_doc*admin/file_manager.phpは削除してしまうのが基本といわれています。
で、私が遊んでいる(放置中)oscommerce(v2.2RC2a)には*icon_doc*admin/file_manager.phpが放置されていたんですよね=:[
その結果がこれですよ:[]
ざっと調べてみると、*icon_doc*admin/file_manager.phpを利用して、書き込み可能なディレクトリ(images等)にリモートシェルスクリプト(使ってみましたが非常に高機能:))を設置して、それを足がかりに好き勝手に改竄するという感じです。
マクシモクブログの場合は特に改竄されたわけではなく、犯行声明(twe.html)が置かれていっただけなのですが、酷い場合にはトップページにトルコの国旗がはためいていたりするみたいです。
対策として簡単なのから、
1)*icon_dir*imagesなどのパーミッションを755で運用する。
2)*icon_dir*admin/のリネーム
3)*icon_doc*admin/file_manager.phpの削除
4)*icon_doc*admin/.htaccessで、アクセスを制御する。
5)本家フォーラムを参考にいろいろする。
6)osCommerceをあきらめる。
などがあります。
あと、多分に絶対*icon_doc*configure.phpは見られちゃっていますので、管理用のパスワードやユーザーネーム(サーバー・データベース等、全て)は速やかに変更する必要があります。
よし、これでタイトルの即死はもう無いよね?
とは、残念ながらならないんです。
これは今回の改竄の首謀者であるTheWayEndについて調べる過程で発見したんですが、管理エリアの全てのページを閲覧は当たり前、ゴニョゴニョまで出来そうな感じの攻撃方法があるんですよ:ase:
穴はずばり*icon_doc*admin/application_top.phpのリダイレクト処理。
// redirect to login page if administrator is not yet logged in
if (!tep_session_is_registered('admin')) {
$redirect = false;
$current_page = basename($PHP_SELF);
if ($current_page != FILENAME_LOGIN) {
if (!tep_session_is_registered('redirect_origin')) {
tep_session_register('redirect_origin');
$redirect_origin = array('page' => $current_page,
'get' => $HTTP_GET_VARS);
}
$redirect = true;
}
if ($redirect == true) {
tep_redirect(tep_href_link(FILENAME_LOGIN));
}
unset($redirect);
}
$current_page = basename($PHP_SELF);
http://*****/catalog/admin/customers.php/login.php
login.phpなんですよね。。。
すると、リダイレクト処理は行なわれずに*icon_doc*admin/customers.phpが走っちゃいます。具体例は書きませんが適当なパラメーターを付けると、もっといろいろ出来ちゃいそうです。
これを防ぐためには該当個所を、
$current_page = basename($_SERVER['SCRIPT_NAME']);
[PR] 全てが規格外!しかも1年間の全額返金保証!! [PR]
うちの運営しているRC2もTheWayEndにやられてしまったみたいで、ルート上にtwe.htmlが置いてありました。
そこで、マクシモクさんの記事を参考にセキュリティー強化措置を実施したのですが、ルートに置かれたtwe.htmlをは削除するとして、その他にチェックするべきところはありますか?
twe.htmlのソースを見てもTheWayEndとしか書いていないので危険なものとも思えないし、きっと本体が別にあるはずだと思うのですが。
アドバイスよろしくお願いします。