Web の脆弱性 - ファイルに脆弱性が含まれている 超詳細な完全なソリューション (例付き)

目次

1.地図

2. ファイルに抜け穴が含まれている

1.スクリプトコード

2.原理実証

3. 脆弱性の原因

4. 検出方法

5. タイプ分類

3. ローカル ファイル インクルージョンの脆弱性の悪用

<無制限のローカル ファイル インクルージョン>

<限られたローカル ファイルの包含>

4. リモート ファイル インクルージョンの脆弱性の悪用

<無制限のリモート ファイル インクルージョン>

<限られたリモート ファイルの包含>

5. 契約の遊び方

<読み取りファイルの内容>

<実行コード>

<文章を書く バックドア型トロイの木馬>

6. 南陽杯CTFの例

7. iSpring と秋の Baidu Cup の例

8. CMS ファイルに脆弱性インスタンスが含まれている


1.地図

2. ファイルに抜け穴が含まれている

1.スクリプトコード

        このファイルには、個々のスクリプト コードが含まれています。

ASP,ASPX,JSP,PHP等

<!-—#include file="1.asp " -->

<!--#include file="top.aspx"-->

<c:import url="http://lthief.one/1.jsp">

<jsp:include page="head .jsp" / >

<%@ include file="head.jsp" %>

<?php Include ( 'test.php ' ) ?>

2.原理実証

        (1) include.php という名前の php ファイルを作成します。ファイル内のコードは下図のとおりです。

        (2) 1.txt という名前のファイルを作成します。その内容は下図のとおりです。

        (3) include.php ファイルに直接アクセスし、filename のパラメータ値を 1.txt に追加します。Web サイトがファイル 1.txt の php コードを正常に実行したことがわかります。

        (4) しかし、1.txt ファイルに直接アクセスすると、Web サイトはそれをテキストの文字列として入力するだけです。そして、ファイル インクルージョンの脆弱性を利用してアクセスすると、Web サイトはそれをコードとして実行します。

        概要: 指定したファイルのコンテンツを Web サイトのスクリプト コードとして実行します。たとえば、Web サイトが php の場合は php コードとして実行され、Web サイトが jsp の場合は jsp コードとして実行されます。

3. 脆弱性の原因

        (1) 空の変数: $filename.

        (2) 脆弱な関数: include()。

4. 検出方法

        (1) ホワイトボックスの検出: コード監査。

        (2) ブラックボックスの検出: 脆弱性スキャン ツールを使用するか、公開されている脆弱性を検索するか、URL の背後にあるパラメーターをチェックして、ファイルが受信されたかどうかを確認します。

5. タイプ分類

        (1) ローカルに含める: ローカル ファイルのみを含めます。

        (2) リモートの包含: インターネットからアクセスできるファイルを包含することは、より有害です。

        (3) 無制限と制限: 両方の種類の包含には、無制限と制限の 2 つの状況があります. 制限なしとは、制限がなく、直接使用できることを意味します. 制限とは、何らかの干渉がある可能性があり、何らかの特別な方法を使用する必要があることを意味します.バイパス。

3. ローカル ファイル インクルージョンの脆弱性の悪用

<無制限のローカル ファイル インクルージョン>

1. 複数のディレクトリにまたがるファイルを含める場合は、「../」記号を使用して次のレベルにジャンプする必要があります。

2. たとえば、下図のパスの下に www.txt を含めます。

3. パラメータの値を下の図に示すスタイルに設定する必要があります。

<限られたローカル ファイルの包含>

1. ここのコードには、上記の無制限のコードよりも多くの ".html" があります。

2. この時点で 1.txt ファイルをインクルードすると、1.txt.html をインクルードしたことになります。

3. では、この状況に直面して私たちは何をすべきでしょうか? いくつかのバイパス方法を次に示します。

4.最初の方法: %00 切り捨て: この方法には php バージョン <5.3.4 が必要です。

        ファイルの末尾に「%00」を追加するだけで、次の「.html」が切り捨てられます。

        以下の図では、ファイル内のコードが %00 の切り捨て後に正常に実行されていることがわかります。 

5. 2 番目のタイプ: 長さの切り捨て: Windows の場合、ドット数は 250 より長くする必要があります; Linux の場合、ドット数は 4096 より長くする必要があります。

        この方法は、waf バイパスの過程でガベージ データを埋める方法に似ています。

        対応するサーバー システム ファイル名の最大長に達するまでジャンク データを入力すると、「.html」が圧迫されて追加できなくなります。

        「/./././././././.·····」、「............·····」などをファイルの最後に続く「.html」のゴミデータを絞り出します。

        下の図では、長さの切り捨て後にファイル内のコードが正常に実行されていることがわかります。 

4. リモート ファイル インクルージョンの脆弱性の悪用

        コードにローカル ファイルのみを含めることができるという制限がある場合、リモート ファイル インクルージョンの脆弱性は発生しません。

        コードに制限がなく、プラットフォームの設定にリモート ファイルの組み込みを許可しない設定がない場合、リモート ファイルの組み込みの脆弱性が発生する可能性があります。

        PHPにはそのようなスイッチがあります-allow_url_include。phpinfo() で表示できます。

         このスイッチがオンの場合、アドレスのリモート要求が許可されます。

<無制限のリモート ファイル インクルージョン>

1. 最初に、無制限のリモート ファイル インクルージョンを示します。

2. 下図の URL にアクセスすると、このファイルにこのような内容の文字列が含まれていることがわかります。

3. リモート ファイルにアクセスすると、Web サイトがリモート ファイルのコンテンツを実行したことがわかります。

4. リモート ファイルのコードをバックドア コードに変更します。

5.再度アクセスすると、前回の「ニシゲジイブ!」の実行は成功しているのに、バックドアコードが見えない、これは正常な現象で、今回は実際にバックドアコードが実行されたということです。効果はただの空白です。 

6. ツール「チョッパー」を使用して、バックドア コードを接続します。

7. ツールを開いた後、アドレスとパスワードを入力し、スクリプト タイプを php に変更して、[追加] をクリックします。

8. バックドア ファイルが正常に接続されていることがわかります。

<限られたリモート ファイルの包含>

1. ここのコードには、上記の無制限のコードよりも多くの ".html" があります。

2. この時点でリモート ファイルを含めると、失敗します。

 3. では、この状況に直面して私たちは何をすべきでしょうか? いくつかのバイパス方法を次に示します。

4.最初のタイプ: 最後に %20 を追加します:

 5. 2 番目のタイプ: 最後に %23 を追加します

 6. 3 番目のタイプ: 最後に追加しますか? :

5. 契約の遊び方

        優れた記事: https://www.cnblogs.com/endust/p/11804767.html

<読み取りファイルの内容>

1. パラメータの後に次の内容を入力して、1.txt ファイルを読み込みます。

2. 読み込んだ内容はbase64で暗号化(文字化け防止)されており、復号後はファイルの元の内容を取得できます。 

<実行コード>

1. パラメータの後に以下の内容を入力し、ポストセクションに実行するコードを記述します。

<文章を書く バックドア型トロイの木馬>

1. パラメータの後に以下の内容を入力し、ポストセクションに実行するコードを記述します。

2. Web サイトのディレクトリを確認すると、「shell.php」バックドア コードが正常に作成されていることがわかります。

6. 南陽杯CTFの例

        住所:asdf

1. Web サイトを開きます。

2. 説明テキストをクリックします。

3. 最後のパラメータ部分が「file=show.php」であることから、ファイルインクルージョンの脆弱性が存在する可能性があるとまず判断します。 

4. ここに show.php ファイルが表示されているので、show.php ファイルに直接アクセスすることを考えました. show.php に直接アクセスすると、Web サイトは同じコンテンツを返すことがわかります。

5. したがって、show.php の内容は text123 であると判断できます. パラメータの後に置くのは、それを含めて出力を実行するだけです. ここでファイルに抜け穴が 含まれていると判断することは難しくありません.

6. まずそのオペレーティング システムを判断し、php を php に変更してアクセスすると、Web ページがエラーを返していることがわかりますので、Linux オペレーティング システムであると判断します。

 7. したがって、ここで Linux の下で ls コマンドを実行すると、Web ページが次のコンテンツを返すことがわかります。

8. 別のコマンドを実行すると、Web ページは引き続き同じコンテンツを返します。これは、Web サイトがこれをブロックしたことを意味します。

 9. この方法は無理なので、プロトコルのゲームプレイを考え、以下の方法を考え、まずは index.php の読み込みを試みたところ、読み込みに成功しました。

10. 読み取ったコンテンツをデコードします。

11. 上記のソフトウェアでの表示形式はあまり明確ではないため、デコードされたファイルを表示用のテキスト ファイルに入れます。

12. フラグ値の取得に成功しました。

7. iSpring と秋の Baidu Cup の例

1. 射撃場を開くと、以下のコンテンツが表示されます。

2. ページに記載されているコードを読んで、その意味を確認します。パス変数を受け取った場合は、include を使用して受け取った値を含めます。それ以外の場合は、次の phpinfo.php を実行します。

3. 分析に問題がないことを確認します。

4. 最初に index.php ファイルをインクルードすると、正常に読み込まれたことがわかります。

 5. オペレーティング システムの判断 --> Linux システム。

6. Linux コマンドを使用してディレクトリを読み取ります。

 7. 最後の 2 つのファイルを既に読み込んだので、最初のファイルを読み込んでその内容を確認しましょう。

 8. 何も読み取られていないことがわかりました。

9. Web ページのソース コードを表示すると、フラグがここにあることがわかります。 

8. CMS ファイルに脆弱性インスタンスが含まれている

1. Web サイトを開くと、次のページが表示されます。

 2. では、この Web サイトの脆弱性はどのようにして発見されたのでしょうか?

3. まず、ekucms であることがわかっているので、この cms の脆弱性をインターネットで直接検索できます. 存在する場合は直接使用します. 存在しない場合は、元のコードをダウンロードして分析します.私たち自身。 

4.確かに抜け穴があることがわかります。

5. 記事を見つけると、そのアイデアが次のとおりであることがわかります。この cms にはファイルのアップロードがないため、Web サイトに固有のファイルにしかアクセスできません。しかし、この cms にはローカル ファイル インクルージョンの脆弱性があるため、Web サイトのログに 1 語のトロイの木馬を書き込み、ローカル ファイル インクルージョンの脆弱性を利用してこのログ ファイルをインクルードし、包丁などのツールを使用して、接続。

6. 記事内の URL をコピーし、ブラウザーに入力して、アクセスできるように変更します。

7. Web ページがエラー メッセージを返していることがわかりますが、この時点で URL の内容が Web サイトのログに書き込まれています。 

        説明: バックドア コードの両側に「<?php?>」を追加する必要がないのはなぜですか。ファイルがインクルードされると、ファイル内のコンテンツが Web サイトのスクリプト タイプに従って実行され、ここのウェブサイトのスクリプトタイプは php なので、「<?php?>」を付けなくても php のコード通りに実行されます。

8. ログには日時が付けられています。まず、次の URL にアクセスしてバックドア コードをトリガーします。

 8. テストするパラメーターを追加すると、パラメーター コードが正常に実行されていることがわかります。

 9. この時点で、基本的に任意のコードを実行することができ、Web サイトの権限を取得することに成功しています。

おすすめ

転載: blog.csdn.net/weixin_62808713/article/details/129909977