ホームページ >php教程 >php手册 >Web の脆弱性を解決する (パート 2)

Web の脆弱性を解決する (パート 2)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-21 09:10:021072ブラウズ

ウェブ

解決策:
(1) データベース ファイルに複雑で型破りな名前を付け、複数のディレクトリに配置します。いわゆる「型破り」というのは例え話です。たとえば、書籍に関する情報を保存したいデータベースがある場合、「book.mdb」という名前ではなく、d34ksfslf.mdb などの奇妙な名前を付けます。 、それを ./kdslf/i44/studi/ などの複数のディレクトリに配置します。これにより、ハッカーが推測によって Access データベース ファイルを取得することがより困難になります

(2) データベース名をディレクトリに書き込まないでください。プログラム。次のような DSN をプログラムに記述することを好む人もいます。

DBPath = Server.MapPath(“cmddb.mdb”)

conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath

誰かがソース プログラムを入手すると、Access データベースの名前が一目でわかります。したがって、ODBC でデータ ソースを設定し、プログラム内で次のように記述することをお勧めします:

conn.open "shujiyuan"

(3) Access を使用してデータベース ファイルをエンコードおよび暗号化します。まず、「ツール」→「セキュリティ」→「データベースの暗号化/復号化」を選択し、データベース (employee.mdb など) を選択して、「OK」をクリックします。次に、「データベースを暗号化して保存」ウィンドウが表示されるので、名前を付けて保存します。従業員1.次に、「employer.mdb」はエンコードされ、employee1.mdb として保存されます。

注: 上記のアクションはデータベースにパスワードを設定することではなく、データベース ファイルを暗号化することであり、他の人が他のツールを使用してデータベース ファイルの内容を表示できないようにすることです。

次にデータベースを暗号化します。まず、エンコードされた「employer1.mdb」を開きます。開くときに「排他」モードを選択します。次に、メニューから「ツール」→「セキュリティ」→「データベースパスワードの設定」を選択し、パスワードを入力します。

「employer1.mdb」のパスワードを設定した後、Access データベース ファイルを再度使用すると、Access は最初にパスワードを要求し、検証が正しく行われた後でのみデータベースを起動できます。

ただし、ASP プログラムの Connection オブジェクトの open メソッドに PWD パラメーターを追加するだけです。例:

param="driver={Microsoft Access Driver (*.mdb)};Pwd=yfdsfs"

param= param&";dbq="&server.mappath("employer1.mdb")

conn.open param

この方法では、たとえ他の人が Fmployer1.mdb ファイルを入手したとしても、パスワードがなければemployer1.mdbを参照することはできません。 。

5.asp プログラムのパスワード検証の脆弱性

脆弱性の説明:

多くの Web サイトはパスワードをデータベースに置き、ログイン検証で次の SQL を使用します (ASP を例にします)

sql="select * from user where username =”&username&”and pass=”& pass &”

現時点では、SQL に基づいて特別なユーザー名とパスワードを作成するだけです。たとえば、ben や 1=1

あなたが作成したページに入ることができます。上のステートメントを見てください:

sql="select * from user where username="&username&"and pass="& pass&"

or は、2 つの条件を判断するために使用される論理演算子です。それらの 1 つとして、条件が満たされる場合、方程式が成り立ちます。言語では、1は真(確立)を表します。次に、このステートメント行では、元のステートメントの「and」検証は続行されませんが、「1=1」と「or」によりステートメントは true 値を返すようになります。

さらに、次のユーザー名を作成することもできます:

username=aa または username<>aa

pass=aa または pass<>aa

それに応じて、ブラウザ上のユーザー名ボックスに次のように入力します: aa またはusername<>aa パスワード ボックスに「aa」または「pass<>aa」と入力します。これら 2 つの文字列には終わりがないことに注意してください。このようにして、システムをうまく騙して侵入することができます。

後者の方法の理論は正しいですが、実践するのは非常に困難であり、次の 2 つの条件が満たされなければなりません。

(1) まず、システムがユーザー名とパスワードをテーブルに保存するためにどのフィールドを使用するかを正確に把握する必要があります。この方法でのみ、この攻撃的な文字列を正確に作成できます。実際、これを推測するのは非常に困難です。

(2) システムは入力された文字列の有効性をチェックしません。

問題の解決策と提案: 入力内容を確認し、「」記号を処理します。

6. IIS4 または IIS5 にインストールされているインデックス サーバー サービスは、ASP ソース プログラムを公開します。

問題の説明:

IIS4 または IIS5 のインデックス サーバーを実行すると、次のように入力すると、ASP ソース プログラムまたは他のページ プログラムが表示されます。特殊文字フォーマット。この問題は、ソース コード参照用に最近パッチが適用されたシステム、または .htw ファイルを持たないシステムにも存在します。 ASP プログラムのソース コード、さらには global.asp ファイルを入手することは、間違いなくシステムにとって非常に重大なセキュリティ リスクとなります。これらのコードには、ユーザーのパスワードや ID、ソース パスやデータベース名などが含まれることがよくあります。これは、攻撃者がシステム情報を収集し、さらなる侵入を行うために非常に重要です。

次の特別なプログラムをビルドすることで、プログラムのソース コードを参照できます:

http://202.116.26.38/null.htwCiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full

これは、HTML 形式のファイル コードをいくつか返すだけですが、次のように CiWebHitsFile のパラメーターの末尾に %20 を追加すると、

http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=完全

これにより、プログラムのソース コードが取得されます。 (注: /default.asp は Web のルートから計算されます。たとえば、特定のサイトの http://XXXXXX/welcome.asp)

対応するものは次のとおりです:

http://someurl/null .htw CiWebHitsFile=/XXXXXX /welcome.asp%20& CiRestriction=none&CiHiliteType=Full)

Null.htw ファイルは実際のシステム マッピング ファイルではないため、システム メモリに保存されている単なる仮想ファイルです。実際の .htw ファイルをすべてシステムから削除した場合でも、Null.htw ファイルに対する要求はデフォルトで Webhits.dll によって処理されます。したがって、IIS は依然としてこの脆弱性の脅威にさらされています。

問題の解決策または提案:

このWebhitsが提供する機能がシステムに必要な場合は、対応するパッチをダウンロードしてください。必要がなければ、IIS の MMC 管理ツールを使用して、「.htw」イメージ ファイルを単純に削除してください。

7.NT Index Server には上位ディレクトリに戻る脆弱性があります

問題の説明:

Index Sserver2.0 は WinNT4.0 Option Pack に含まれるソフトウェア ツールであり、その機能は、Indexing Services で使用されています。 WinNT/2000を搭載。 IIS と組み合わせて使用​​すると、初期環境で Index Server および Indexing Services を使用して Web 検索の結果を参照でき、検索後に返されたページのコンテンツへの短い参照を含む HTML ファイルが生成されます。返されたページ (つまり、クエリの内容と一致するページ) はハイパーリンクです。これを行うには、Webhits.dll-ISAPI プログラムによって処理される .htw ファイル タイプをサポートする必要があります。この DLL を使用すると、テンプレート内で「../」を上位ディレクトリに戻る文字列として使用できます。このようにして、サーバーのファイル構造を理解した攻撃者は、マシン上の任意のファイルをリモートから読み取ることができます。

脆弱性の悪用:

(1) システム内に .htw ファイルがあります

Index Server によって提供されるこのハイパーリンクにより、Web ユーザーは検索結果に関する戻りページを取得できます。このページの名前は次のとおりです。 CiWebHits ファイル .htw ファイルを通じて渡される変数とともに、ISAPI プログラム Webhits.dll がリクエストを処理し、リクエストにハイパーリンクを付けて、ページを返します。したがって、ユーザーは .htw ファイル内の CiWebHits 変数を制御して、必要な情報を要求できます。もう 1 つの問題は、ASP または他のスクリプト ファイルのソース コードもこの方法を使用して取得できることです。

Webhits.dll に「../」を追加すると、Web 仮想ディレクトリの外にあるファイルにアクセスできると述べました。例を見てみましょう:

http://somerul/issasamples/issamples/oop/qfullhit .dll。 ?CiWebHits File=/../../ winnt/system32/logfiles/w3svc1/ex000121.log&CiRestriction=none&CiHiliteType=Full

サーバー ファイル上の指定された日付の Web ログを取得するには、ブラウザにこのアドレスを入力します。システム内の一般的な .htw サンプル ファイルは次のとおりです:

/issasamples/issamples/oop/qfullhit.htw

/issasamples/issamples/oop/qsumrhit.htw

/issasamples/exair/search/qfullhit.htw

/issasamples /exair/search/qsumrhit.hw

/iishelp/iis/misc/iirturnh.htw [このファイルは通常、ループバック制限の対象です]

(2) .htw ファイルがシステムに存在しません

電話してくださいWebhits.dll ISAPI プログラムは、.htw ファイルを介して完了する必要があります。.htw ファイルがシステムに存在しない場合、存在しない .htw ファイルの要求は失敗しますが、システムには依然として脆弱性が存在します。搾取された。秘訣は、Inetinfo.exe を使用して Webhits.dll を呼び出すことです。これにより、Web 仮想ディレクトリの外部のファイルにもアクセスできるようになります。ただし、特別な URL を作成して完了する必要があります。このファイルは、「.htm」、「.html」、「.txt」、「.gif」、「.jpg」などの静的ファイルである必要があります。これらのファイルは、Webhits.dll によって開かれるテンプレートとして使用されます。次に、Webhits.dll を悪用するために Inetinfo.exe を取得する必要があります。これを行う唯一の方法は、.htw ファイルを要求することです:

http://url/default.htm.htw CiWebHitsFile=/../../ winnt/system32/logfiles/w3svc1/ex000121.log &CiRestriction=none&CiHiliteType=Full

明らかに、ファイルがシステム上に存在しないため、このリクエストは間違いなく失敗します。ただし、ここでは Webhits.dll を呼び出していることに注意してください。必要なのは、既存のファイル リソースの後ろ (つまり、.htw の前)、[例では " 「default.htm」の後にスペースを表す特別な数字が続きます]。これにより、目的を達成するために Web サーバーを欺くことができます。[%20s 記号により] バッファー部分の .htw ファイル名部分が削除されるため、 , 要求が Webhits.dll に送信されると、ファイルは正常に開いてクライアントに返されます。このプロセスでは、.htw ファイルが実際にシステムに存在する必要はありません。

問題の解決策と提案:

Microsoft はこの問題に対するパッチをリリースしました:

Index Server 2.0:

Intel: http://www.microsoft.com/downloads/release.asp ReleaseID=17727

アルファ: http://www.microsoft.com/downloads/release.asp?ReleaseID=17728

Windows 2000 インデックス サービス:インテル: http://www.microsoft.com/downloads/release.asp?ReleaseID=17726

8. 検証をバイパスして、ASP ページに直接アクセスします



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。