実験的解析攻撃、サブからのARP攻撃の反





ネットワークは、JSスクリプトは、HTMLの攻撃は強い以上でプレイするようスクリプト攻撃を使用してSQLインジェクションの脆弱性。他の多くのサイトの1つの後にこのような攻撃で、ホストの脆弱性のようにすぐに修復することはできませんでした悩まされている、ウェブからの攻撃ように予防またはもたらす修理我々の不便がたくさん。ウェブマスターが最もこの痛みを伴う。どのようにあなたのパスワードを攻撃者に強い、常に使用できますが、されているどのように実際のセキュリティを実現できますか?まず、パスワードはありません、あなたの人生をリンク、2番目、Supermasterのみを最もよく知って障害者第三、絶対に必要なWebサイトのプログラムを改善する。しかし、どのように改善することができます、それは、この資料の最終目標になります。

セキュリティは、どのようにセキュリティを行うには?したいの保護が必要な方法をお互いに攻撃を知っていることです。多くの記事は、特定のサイトをキャプチャし、実際には、が書かれている攻撃も、その手段は以下の通りです:

1。シンプルな攻撃をスクリプト

このような攻撃が必要トラブルそれは退屈だ。例****:警告()については、これは、フィルタのためにどのような攻撃のみではなく、彼は目的に破壊することができますに近いではありません。多くのサイトが現在の無料サービス、またはプログラム自分のサイトに厳密にろ過問題ではない。

2。危険スクリプト攻撃

このような攻撃が終わったスクリプトに管理者または程度に他のユーザー情報を盗むことができるされている。私たちは皆知っている例については、、クッキーを盗むローカルクライアントの詳細を書いて、スクリプトを使用します。

3。インジェクション攻撃は、SQL

これは、この攻撃がDongwangluntanとBBSXPから開始すると述べたことができます。 SQLの特殊文字を使用してフィルタリングタイト、クロスデータベースクエリの攻撃されていません。例:

http://127.0.0.1/forum/showuser.asp?id=999 1 = 1

http://127.0.0.1/forum/showuser.asp?id=999 1 = 2

http://127.0.0.1/forum/showuser.asp?id=999 0 (選択数(*)管理者から)

http://127.0.0.1/forum/showuser.asp?id=999 ''は、@ sysnameでありセットを宣言する@ 1 = '' xp_ '' +

'' Cmdshell''exec @ a''dir℃:''---&援助= 9

管理者のパスワードを入手して、全体の駅が制御されている手段は、しかし必ずしも権限のホストが、また、このステップの伏線の多くを行うことができます。 SQLインジェクションの方法に似て攻撃と異なる方法でクエリを閉じて撮影されていませんさまざまなファイルフィルタを意味します。だから手順は、次の努力されていません完全な文字のフィルタを作成することは不可能です。

4。リモートインジェクション攻撃

これだけ簡単なフォームページを送信フィルタと呼ばれるフィルタJSのサイトです。平均的なユーザーの場合は、防止する必要はありません。計画的攻撃、そのようなフィルタ効果がないよう懸念している。我々は多くの場合、POSTの攻撃が1つの例だという。リモートの攻撃によって、その目的を達成するために不正情報を投稿。

攻撃の方法上記の説明を通じて、我々は一般的に攻撃方法を理解し、以下の説明は我々が開始に着目し、どのように効果的にスクリプト攻撃を防ぐために!

だから我々は単純なものから開始:

スクリプト攻撃

JSのスクリプトとHTMLが攻撃の防止をスクリプトは非常に簡単です:でServer.HTMLEncode(STR)のbinに。もちろん、叫びをしないと、どのようにされるだろうか?あなたは駅に私がすべての疲れをフィルタリングするには?ためにフィルタリング、私たちは、HTMLスクリプトやJSスクリプトにいくつかのキーの文字を除外することができます必要が容易に追加好きではない私を許可する:プロシージャ本体は、(1)次のとおり:

'次のフィルタ関数である

'次のアプリケーションの例です。

ユーザー名=のChkは((("ユーザ名"),"''",""))要求を交換する

を含めるには、効率がいるので最高の公開ページを使って書かれた機能。

プロシージャの本体(1)

また、価値が我々の注意は、多くのサイトのユーザーは、登録したり、ユーザーの情報ページを変更もスクリプトフィルタリング、または1つのみでの不足フィルタは、情報をポストスクリプトinto still attackすることができますregistered変更されます。データはユーザーによって検出し、フィルタ提出、プログラム本体は(2)次の:

'次のフィルタ関数である

InStrは(要求(""),"=") を0またはユーザ名場合

InStrは(要求(""),"%") を0またはユーザ名

InStr関数(要求("ユーザ名")に、chr(32)) 0または

InStrは(要求(""),"?") を0またはユーザ名

InStrは(要求(""),"&") を0またはユーザ名

InStrは(要求(""),";") を0またはユーザ名

InStrは(要求(""),",") を0またはユーザ名

InStrは(要求(""),"''") を0またはユーザ名

InStrは(要求(""),"?") を0またはユーザ名

InStr関数(要求("ユーザ名")に、chr(34)) 0または

InStr関数(要求("ユーザ名")に、chr(9)) 0または

InStr関数(要求("ユーザ名")、"") 0または

InStrは(要求(""),"$") を0またはユーザ名

InStrは(要求("")," ") を0またはユーザ名

InStrは(要求("")," ") を0またはユーザ名

InStrは(要求("ユーザ名"),"""") 0し

Response.Writeメソッドで"友人が、あなたのユーザ名を送信する場合は戻る"感謝不正な文字を、変更、含まれています

Response.Endを

終了する場合

プロシージャの本体(2)

ために我々はさらに手続の内容をフィルタしようとする効率を提供するので、様々なパラメータのろ過効率が大きく増加する:プログラム本体(3)など

'メインプログラムに続いて

薄暗いBword(18)

Bword(0 )="?"

Bword(1 )=";"

Bword(2 )=" "

Bword(3 )=" "

Bword(4 )="-"

Bword(5 )="''"

Bwordは(6 )=""""

Bword(7 )="&"

Bword(8 )="%"

Bword(9 )="$"

Bword(10 )="''"

Bword(11 )=":"

Bword(12 )="|"

Bword(13 )="("

Bword(14 )=")"

Bword(15 )="--"

Bword(16)="chrです(9)"

Bword(17)="chrです(34)"

Bword(18)="chrです(32)"

errc = falseを

'次のいくつかのアプリケーションの例を示します。

私= 0(Bword)UBound関数に

場合InStr関数(FQYs、Bword(i))を 0し

errc = trueを

終了する場合

次の

次にerrc場合

""Response.Writeメソッド

Response.Endを

終了する場合

プロシージャの本体(3)

のいずれかが必要直接にフィルタ機能をフィルタリングするためのアプリケーションに配置することができます上記のフィルタ機能付。これは、復元に大幅に簡素化私たちに仕事をもたらします。

また、以上の私は再び忘れないようにしたい、UBBのアイコンを表現中にサイトの数が少ないことが隠されて以来、フィルタの変換の問題が、見つけることは容易ではないが表示されます:

のような:

我々は、テキストラベルを変更する

あなたが理解し、知らなかった前に単一引用符と手順左引用符、単一引用符が2番目の使用と右引用符を閉じ、としてので、出力プロセスを提供:

ARPの攻撃はウイルスではない - すべての無力のため、ほとんどすべてのウイルス対策ソフトウェアが、それがウイルスの価値 - それはダウンライトの通信を引き起こす可能性が低下するため、ネットワークの麻痺、体重は、情報漏えいが発生します。年間は、ARP攻撃は、常に存在してではなく、良い解決策を。多くのインターネットユーザーは、ネットワーク管理者は起動できない場合は、悲惨です苦しんでいます。本研究では、ARPのプロトコルと欺瞞の原則の分析は、本論文でどのように、どのように防ぐために、ARPの攻撃を解決するために苦しんでいるのARP攻撃を、どのようにARPの攻撃を決定するために実装するために導入されました。

1.ARP契約と欺瞞の理論

(1)イーサネット動作します。データパケットのイーサネットは、まず(最大グループパッケージ)に分割する、(ネットワーク層のソースIPアドレスとデータリンク層のターゲットIPアドレスを送信元MACアドレスを追加に追加するパッケージを持って送信されますバイナリビットストリームに次のホップのMACアドレス)は、プロセスは、図のI - 1に示す。パケットは、反対側を送信するプロセスの実施後目標を達成、フレーム、ソリューションパッケージ(MACの最初の目標のデータリンク層にバイナリビットの流れが同じローカルネットワークカードのMACアドレスまたはブロードキャストMACと、同じ比較される削除フレームのヘッダーは、[ネットワーク層のパケット、または破棄を渡す;ネットワーク層の宛先IPアドレスが同じマシンに比べて、同じことが対処するために、それ以外の廃棄)続行されます。送信者と受信が同じネットワークでは、次のホップはのMACは、送信者と受信などのMACの目標と同じネットワークではないにある場合は、次のホップはのMACは、ゲートウェイのMACです。このプロセスから難しい、十分ではないIPアドレスのイーサネットのデータ伝送速度唯一のゴールを見つけるために、また、その契約で別の顔の助けを必要と次のホップのMACアドレスを知る必要がない、のARP(アドレス解決プロトコル)。






図のI - 1データパックおよびアンパック

2)はARPが動作します。コンピュータの前に、IPアドレスをターゲットに比べて、データパッケージを送信するソースおよびターゲットを決定さではなく、同じセグメントを、同じネットワークセグメントは、パッケージのターゲットMACなど、同じネットワークセグメントいない場合は、パッケージのゲートウェイのMAC。パッケージは、存在しない場合、対応する次のホップです表示するマシンのARPキャッシュを参照してください前にIPアドレスとMACのマッピングエントリ場合は、直接カプセル化してからのARPクエリパケットを送信しない場合。のARPクエリは、フォーマットの応答パケット図のI - 2、0xffffffffffffブロードキャストアドレスの"イーサネット宛先アドレス"、"イーサネット送信元アドレス、"マシンベースのネットワークカードのMACアドレスクエリpackageを示すように、"フレームタイプ"です0x0806は0x0001からのARP応答または要求、"ハードウェアの種類"Ethernetアドレスは、"そのIPアドレス0x0800プロトコルの種類"は、"当該のOP"ARP要求または応答1、ARP要求パケットのOP値は、ARP応答をOPのパッケージには、2者は、"Ethernetアドレス送信者のIPアドレスとして、"送信者のMACアドレスは、"送信者のIP"、"0x000000000000の目的のEthernetアドレス"ここには、"の目的のIP" IPアドレスのMACアドレスを確認します。送信このパッケージは、ネットワークには、LAN内のすべてのコンピュータは、このパッケージを受けているIPアドレスの"目的のために、唯一のローカルIPアドレスを放送する"コンピュータがこのパケットに応答し、このパケットに応答します。初めは、後でこのARP応答パケットのチュウを送受信するときに、宛先IPのMACアドレスに対応するアクセスし、データパケットがカプセル化することができます。






図のI - 2のARPクエリと応答のパケットフォーマット

(3)のARPごまかしています。 TCPシーケンス番号とは別のフィールドを介して受信確認番号は、3ウェイハンドシェイクの実装は、データ伝送の信頼性を確保するため、ARPはステートレスなプロトコルは、その有無ARP要求を送信することなくマシンにARP応答限り送信されるという意味ですパッケージには、コンピュータが受信し、検証を追加されず、自分のARPキャッシュを更新します。 ARPは、特定のフィールドの図のI - 2充填の意図として、長いのARP攻撃の効果を得ることができる機能について:IPアドレスの競合は、ARPの欺瞞は、ARP攻撃をした後。

Pのアドレスと競合します。コンピュータのローカルIPアドレスかどうかをメソッドが、インターネットで使用される検出は、IPアドレスとしてマシンのIPアドレスの目的は、ARPのクエリパケットを送信すると、受信した応答は、それは、IPアドレスは、インターネット、ポップアップのIPアドレスで使用されるために使用されていることを示す場合ダイアログボックスで、マシンのIPアドレスを解放します。 ARPは、攻撃者がこの原則は、任意のMACアドレス(実際の攻撃者のMACアドレスされていないと)送信者のEthernetアドレス"に満ち送信IPアドレス"に満ちていた"フィールドを"フィールドを、攻撃者のIPアドレスを使用して活用する"フィールド"目的のEthernetアドレスを記入の攻撃者の実際のMACアドレスで、攻撃者のIPアドレスを使用して使用さ目的のIP"でいっぱいだった"フィールドに、OP"2"の値は、図のI - 3に示すように。攻撃者がこのARP応答を受信した後は、そのネットワーク上のマシンのIPアドレスは、ボックスのIPアドレスの競合]ダイアログを開くに使用されていると考えた。






ARP応答パケットの図のI - 3のIPアドレスの競合

ARPの不正行為:図のI - 4、PC1が、攻撃者の攻撃"とゲートウェイの通信PC2のを破るを目指しているように。" PC1がARP応答パケットを生成し、"送信者のIPは、"ゲートウェイのIPアドレスとして入力し、"送信者のEthernetアドレスが"(このアドレスは、ランダムに生成することができます)以外のゲートウェイのMACアドレスを入力し、"目的のIP"の記入PC2ののIPアドレスは、"目的のEthernetアドレスが"PC2ののMACアドレスを入力します。ホストPC2は、このゲートウェイを使用するARP応答パケットの後、最新の受信正しいMACアドレスのARPキャッシュテーブルを更新するために、このエラーの後PC2のMACアドレスをカプセル化した後、カプセル化後のパケットを引き起こしていない送信者が正しくゲートウェイに到達することはできません。PC1が似て再ゲートウェイへの不正なARP応答パケットを送信すると、"送信者のIPは、"PC2のにIPアドレスを入力し、"Ethernetアドレスは、"(この非PC2ののMACアドレスを記入アドレスはランダム)、"目的のIP"ゲートウェイのIPアドレスを入力生成することができます。ゲートウェイのARP応答が、間違ったキャッシュPC2のマップのエントリに保存されますこのような情報を受け取った。自分のARPテーブルの高齢化は、このようにコミュニケーションの目的を達するのを防ぐようにPC1とゲートウェイにPC2は、定期的に、このようなパケットを送信します。






図のI - 4のARP不正図

ARPを攻撃。としてmiddle攻撃は、(男性インthe - middle攻撃)、などのARP不正だけPC1と"送信者のEthernetアドレスを入力ARP要求を送信するには"ランダムに生成されませんが、交換PC1をマシンのMACアドレスは、ルーティング機能のPC1を開く - ()は、レジストリのオプションHKEY_LOCAL_マッハ伊根SYSTEMCurrentControlSetServicesTcpipParametersIPEnableRouter = 0x1を追加、変更、ソフトウェアPC1をインストール、PC2のをタップしながらゲートウェイパッケージの間のすべての通信を傍受。

2どのようにARPの攻撃を実装する

ここで2つのARPの攻撃ソフトウェアを、トポロジー図のI - 5に示す使用しています。






図I - 5をARPの攻撃

ソフトウェアは、主に最初の攻撃は、通常のネットワークトラフィックの中断のために、図I - 5を、2の仮想マシンの"ネットワーク奉行"をソフトウェア、および実際のマシン間の通常の通信実験の仮想マシンを1破壊をインストールすることが示さ使用されて手順は次のとおりです。

正しくコンピュータのIPアドレスを構成します。仮想マシン1カード型ブリッジは、IPアドレスが192.168.1.220、マスク255.255.255.0、ゲートウェイ192.168.1.1の場合、DNSは218.2.135.1です。仮想マシン2カードの種類ブリッジ、IPアドレスが192.168.1.210、マスク255.255.255.0、ゲートウェイ192.168.1.1の場合、DNSは218.2.135.1です。実際のマシンのIPアドレスが192.168.1.200、マスク255.255.255.0、ゲートウェイ192.168.1.1の場合、DNSは218.2.135.1です。

2は、仮想マシンでWinPcapをインストールします。 。Rarは、"ファイルの抽出"ネットワーク判事は、ダブルクリックして"WinPcap30.exeは"インストールWinPcapのを開始します。

2は、仮想マシンソフトウェアのネットワーク奉行にインストールされます。 exeは、"ファイルをダブルクリックして"ネットワーク奉行亀裂のバージョンが2.8のネットワーク奉行をインストールします。

ランネットワーク奉行。最初の実行判事は、示唆ダイアログボックス図のI - 6に示すように開くと監視パラメータ。






図のI - 6の制御パラメータ

1つのネットワークブロックは、"OK"ボタンを一番上のカードのチェックボックスをクリックして選択してからです。図のI - 7の制御範囲の選択]ダイアログボックスを開くには、"/追加、編集のすべての利用可能なIPアドレスのサブネット、グラフをクリック"とは、スコープをクリックして追加するカードに記載されて監視範囲を指定するに示すように"OK"をクリックします。






図のI - 7のコントロールの選択の範囲

攻撃テストの前に。 1は、仮想マシン上で、見つけることができるタイプのpingを192.168.1.200 - tを、継続的にping実際のマシンのIPアドレスDOSウィンドウを開いてからです。ウィンドウを閉じないでください。

開始は、攻撃する。奉行のソフトウェアは、同じサブネットにすべてのオンラインネットワーク管理インターフェイスの奉行、ショートカットメニューから右クリックし、実機、選択ホストするネットワークを監視することができます"手動で管理"は、図のI - 8に示します。






図のI - 8奉行の管理インターフェイス

図I - 9のダイアログボックスで、他のすべてのホストに対して3番目のオプション"を選択...",をクリックして示すように、"スタート"、仮想マシンが1と実機テストのpingの間に見つけることができます[スタート]のヒントに"Request"タイムアウト、通信が切断。実環境では、また、単に"禁止とキーのホスト接続..."を選択することができますし、をクリックして"キーマスター"を、ゲートウェイのアドレスを追加することがあまりに攻撃コンピュータとゲートウェイの接続、およびLANのコンピュータが中断されること間連続通信。






図I - 9の管理用コンピュータのマニュアル

ソフトウェアは、図のI - 5の仮想マシンで"カインとアベルをインストールすることが示さ"ソフトウェア、実機を損なう仮想マシン1と実験の手順の間の通常の通信を貴重な情報を盗むために使用される2番目の段落は次のとおりです。

仮想マシンにインストールされカイン&アベル。ダブルクリックして"ca_setup.exe"ファイルは、インストールを開始すると、インストールが終了間近に、WinPcap4.0をインストールするよう促されます、図のI - 10を選択"インストール"は、インストールWinPcap4.0を開始することが示されています。






図私は- 10はWinPcap4.0をインストールする

ランカイン&アベル。ダブルクリックしてデスクトップを、"カイン"のアイコンは、管理インターフェイス、"起動/停止スニファ"アイコンを、図のI - 11のパケットのキャプチャを開始することが示さ管理インターフェイスをクリックしてカインを&アベルの開きます。








図は、I - 11 Snifferを始めた

ハブのパスワードの下に。地図をクリックするのI - 11"スニファ"タブの上部にし、"パスワード"タブの下にクリックし、電子メールは、TelnetやFTPなどを含むパスワードを、機密情報は、キャプチャを開始します。仮想マシン2では、実際のマシンのtelnet 192.168.1.210で、Telnetサービスを開き、ユーザー名とパスワードを入力して、図のI - 12の左側のナビゲーションバーは、Telnetプロンプト情報をキャプチャすることが示さ。






図のI - 12モニター機密情報

をクリックして右側の列を右クリックしてエントリのキャプチャ"のTelnet"、リストの左側のナビゲーションバー、ショートカットメニューは、選択して"表示"とは、図のI - 13ノート紙から表示を開くユーザー名を表示するハードではない管理者は、パスワードはciscoです。 telnetはエコー1回のための単語管理者のそれぞれの文字の図は、2回表示されます。






図私は- 13は、パスワードファイルをキャプチャする

スイッチ環境のパスワード。仮想マシンの仮想マシン1と2、実際の機械は、実際のコンピュータのネットワークカードに接続されているためだけで非常にパスワードを取得しやすく、すべてのハブに接続と同等のは、実環境、より頻繁にスイッチ、2つのスイッチはしませんホストまたはホストとゲートウェイが攻撃者のホスト間のトラフィックを渡します。図のI - 12"ARP"をタブで、クリック示すように、その後のARP偽装をクリックして使用するように""ツールバーのアイコンを、図のI - 14に示すようにリストに追加する必要があります。






図私は14リストに不正のARP増加する

、IPアドレスを選択して左にARPエントリを、図のI - 15に示すように開き、右は、IPアドレスを選択し、ホスト2のIPアドレスはだまされる。






コンピュータを欺い図のI - 15を選択

をクリックして"OK"ボタンを返すにして、をクリックしてチャートのI - 11ツールバーの"スタート/ストップARP"をアイコンの右側には、図のI - 15を選択に示すようにARPの詐欺の実装を開始する"スタート/ストップスニファ"アイコンを示すように、コンピュータの仮想マシンから転送間の通信は、仮想マシン1つは自然に明示的にそれらの間の機密情報を入手することができます。見ると、この光スイッチのネットワークセキュリティリスクが存在します。

3どのように攻撃ARPを苦しんで判断する

ARPスプーフィング攻撃は、上記のネットワークの輻輳が発生しませんが、漏れは、ソリューションを導入することで続いて発生します。決定はあるかどうか最初にARPの攻撃方法はシンプル、次の手順に従います。

連続pingはIPアドレスをアクセスすることはできません。 DOSウィンドウの問題のコンピュータ(仮想マシン1)タイプ"のping 192.168.1.200 - t"を、では、ネットワーク接続をテストするために使用されます。192.168.1.200これは本物のマシンである通常の通信コンピュータ(ない)、実際のプロジェクトターゲットコンピュータのIPアドレスと同じセグメントにアクセスすることはできません置き換えられます。あなたがARP攻撃に苦しんでいる場合は、画面が要求時間"するよう求められますから"。

影響を受けるコンピュータ(仮想マシン1)前で、"arpコマンドは、- d"は、arpは、DOSコマンドは、対応するネットワークカードのMACアドレスのIPアドレスを解決するために別のDOSウィンドウを開くために- dをマシンのすべてのIPアドレスのキャッシュをクリアすると対応するMACアドレス。が見つかった場合は"返信から... ..."パッケージ、バックはとなっていること"からの応答... ..."と、ARP攻撃にさらされている、今正規化されている持続的にウィンドウの内容のステップ1;場合はそこにいた"要求タイムアウト"のパッケージをクリックし、コンピュータが連続のARP攻撃にさらされる。

4。どのように防止するために、攻撃のARP解決

のARP攻撃のソリューションは、変化は様々な制約があるため、ほとんど最終的には、実装を見つけることができないのもようを実装することができます。次の解決策が、どんなに実際のネットワークハードウェア機器、最適なソリューションを見つけることができるようになる完全ではありませんでした。

方法1:後に裁判官が発見した場合、ARP攻撃、攻撃が続く場合は、"arpコマンドは、- d"は、- 1"arpコマンド"の実装、の役割は、コンピュータ上のすべてのARPキャッシュが表示されますの被害者のコンピュータの実装。我々はいくつかのレコードを見つけることがどのから、1つのレコードは、ゲートウェイまたはターゲットホストにアクセスするため、1つの他のレコードは、いくつかの可能性があります。いくつかの"arpコマンドは、- d"は、"ARP"、まとめるの実装よりも、そこに本質的にレコードの最大の作品実際の攻撃のARPのIPアドレスです。

利点:これは、シンプルに適した任意のサポートソフトウェア、ほぼすべてのネットワーク環境のことなく、しているネットワーク管理の知識を必要としない非常にプロフェッショナルで、あなたは、そのネットワークを分離するため、攻撃者が攻撃者を識別することができます。攻撃者が制御のためにのみ破壊されない場合欠点は、""のない信頼性の高い記録を参照してくださいarpの。

方法2:ターゲットデバイスと被害者のコンピュータのIPアドレスとMACそれぞれ静的アドレスが結合します。たとえば、コンピュータの実装:

"アルプは、"192.168.1.1 00 -単3 - 00 - 62 -のC6 - 09だ

ルーティングや(ここで例は、Cisco機器)を実行する機器を切り替えるには:

の"Cisco - 6509(設定)#arpを192.168.1.2 0009.6be2.3ca3アルパ"

必要ターゲットデバイスのIPアドレスを保護するとMACバインディングは穴のない不法入国のARP攻撃の対処。すべてのユーザは、ゲートウェイのIPアドレスとMACバインディングアドレスを使用するが、自分のデバイスに権利を有する顧客が自分のコンピュータ少なくともゲートウェイのIPアドレスとMACにバインドするアドレスを行うことができます最もよいたびにバッチファイルを作成したコンピュータの起動、ファイルのすべての実装では、効果的に2番目の漏れの攻撃を避けることができる、このメソッドを使用します。

このメソッドは、ネットワークの規模が比較的小さなアプリケーションの利点があります。欠点は、実装の難易度が大きいほど、より多くのインターネットホストは、ホスト頻繁に変更する場合、このグループの大学などの各年の大学院生報告する、新しいまだ大きいワークロードが困難にバインド実装することです。すぎるタイ機器の項目が実行速度が影響を与え、効率が低下する。さえのARP攻撃が、インターネットに影響を与えるだろうARPパケットの数が多い、送信されるか、有用な多くの帯域幅を取ること。必要な機器を静的バインディング機能をサポートする。

方法は3:ダイナミックARP弁護士技術を使用して、DHCPを、IPアドレスとMACの機能と組み合わせて自動バインディングを実現します。法と、方法2に似ていますがバインディングが自動的に行われ、アクセスレイヤスイッチで展開することができます、違法ARPパケットスイッチは、技術文書関連機器を見つけるために興味をお友達に破棄されます。

利点は、最良の方法のARP攻撃を解決するために、不正なARPパケットがネットワークにアクセスすることはできません管理の援助を必要としないことです。そこも害も、ネットワークのパフォーマンスには影響されます。欠点は、管理者がより良い技術を持って要求することです。ネットワーク機器の支援を要請、シスコのデバイスは、この機能をアクセスレイヤ3デバイスを使用して、少なくとも3つ以上(いくつかの国内企業)をサポートし、機器の多くのメーカーまだサポートされていません。

方法は4:管理スイッチ、分とする攻撃者が見つけることができます。 1前の溶液中では、MACの場合IPアドレスは、このノートの本当のMAC、MACアドレス、"0050.bae3.2305"ではない、管理対象スイッチ(対象のMACアドレスを見つけることができる場所は、Cisco機器例では、)を実行する:

"シスコ2950は、ARP |を見る#0050.bae3.2305を含む

インターネット10.168.168.9 239 0050.bae3.2305

アルパFastEthernet1/17"

最初の行は順序の実装では、単純な"見るarpコマンド"のすべてのスイッチは、MACアドレスを学習表示されますが、のMACの攻撃は非常に見つけるのは難しいが、"|"は0050.bae3.2305を含むフィルタリング機能を果たすだけ対応する行を表示。 2行目は、結果の実装の場合は、Fa1/17ポートからMACアドレスを見つける。しかし、ホストはソースを攻撃に対応する発見されるポートは、ポートがコンピュータに接続されていない場合して下さい別のスイッチには、繰り返しのメソッドを使用する究極のコンピュータを見つけるまで。

利点は、メソッドのほとんどより迅速に実装するために可能である、すべての管理対象スイッチは、強くお勧めしますこの機能をサポートします。欠点は、多くのユニットがまだアンマネージスイッチまたはハブを使用してです。

方法は、5:アンマネージスイッチやケースのハブには、攻撃者を見つけるために時間の10分を使用できます。攻撃者のコンピュータ(仮想マシン1)の2つのDOSはウィンドウの実装のウィンドウを開くために"192.168.1.200 - t"を、別のDOSウィンドウ断続的"の実装に対してpingを実行します。arp - d"は、もし台湾とアフリカネットワークの数チューブタイプのスイッチは、ハブ、ときにそれが2番目のDOSウィンドウになった彼らの力を、カットオフ"からの応答... ..."、それはこのARP攻撃元のネットワークデバイスから締結することができます持続。トックは、デバイスの電源を復元するために、ケーブルルートを、"返信から... ..."、それは、ネットワークケーブルが機器を接続していると結論できる持続的な2番目のDOSウィンドウを見つけるプルダウンのARPです攻撃元。この検索メソッドが遅い場合は、バイナリ検索を、プルラインの半分は、何を攻撃元を見つけることが一般的には10分以上は測定さを使用できます。

利点は、メソッドのほぼすべてのネットワーク環境に適しています。欠点は、実装を少しハード、スイッチの最高のタイプまたはネットワークが置き換えられます。

方法6:一般的なユーザーの自力更生。ネットワークの修復に、普通のインターネットユーザーが時間内に、問題のARP攻撃を解くことができるコンピュータを実行するバッチファイルを書いて解決することができないように。としてバッチファイルは、次の::

アルプに- d

1.1.1.1 - nを1に- wに対してpingを実行100

後藤

a.batとしてテキストファイルには、をダブルクリックしてユーザーのコンピュータの実装では、プログラムがループは、ARP攻撃は問題を解決するためのウィンドウを閉じていないDOSウィンドウを開きます。 ARPの除去方法が遅すぎる場合は、100以上(0.1)の所望の値に変更することができます。

このメソッドは、一般的なユーザーのARP攻撃の問題が解決可能であるという利点を持って、ほぼすべてのネットワーク環境です。欠点は、頻繁に明確なARPキャッシュは、ARPは頻繁に送信するブロードキャストパケットを、彼女はコンピュータとネットワーク上の追加負担を与えるだろう。

画像が存在しない場合、タグはOnError実装スクリプトを有効になります。単一引用符については、サイトをフィルタリングされているここでは、二重引用符で完全に好きです。フィルタフィールド****は、唯一の()もすることができます警告します。だから我々は完全にフィルタリングすると、攻撃者に機会をトレースを残しを与えていないフィルタがあります。

防止SQLインジェクション攻撃

それがここに記事全体の焦点化します。SQLインジェクションの脆弱性と思われるもプログラムに我々の防衛を行うもう少し考えなければならなかったということができます。 SQLインジェクションの顔の強い"攻撃"は、フィルタの終わりに、私たちは?

いくつかのよく使用される文字のリスクがある

データベースfields''closed差別

- マークいくつかのデータベースのアノテーションの

#一部はデータベースのアノテーション標識

"エラーにつながる5

クロスディレクトリ

3221143836nicode文字エンコーディング機能

$は、変数ラベルに使用される可能性

/そして、同じ

治療のリスクにNULL注意"空"のエントリは、データベースまたはシステムエラーには、使用エラー構造のオーバーフローを引き起こすことがあります。

宇宙and''toは、sql injecitonを構築すると

=&2番目のパラメータはquerystrを書き換えることが場合があります。

ビューの(1)最も一般的なからSQLインジェクションの攻撃:ユーザ名とパスワードをフィルタリングの問題などで:

著者:ユーザー名:''や''''=''ユーザのパスワードは:''や''''=''

プロセスから始めて、我々は来ることができる、次のデータベース

SQLの="のSELECTバックアップのbin confの設定データeshow_sitemap.html generate.shは、WHEREユーザー名を=''''または''''=''''とパスワード=''''またはメイントsitemap.htmlのsvn tmpのからのLusersのログ''''=''''"

ASPスクリプトは、攻撃者がLusersのテーブル内の最初のレコードを入力すると間違えされる中、この方法では、これは、SQLサーバーが、できるようにすべてのレコードのLusersのテーブルを返します。ユーザのログイン名に攻撃ウェブサイト。注入このタイプのを防ぐために思えるかもしれないが非常に簡単です:

次の手順を使用して、プログラム本体(4)を達成することができます

gstrUserNameに=置換(Request.Formを("ユーザー名")、"''''", "''''''''")

strPassword =置換(Request.Formを("パスワード")、"''''", "''''''''")

プロシージャの本体(4)

(2)SQLインジェクション攻撃を防ぐために、最初のステップは、セキュリティの様々なを使用してはASP要求オブジェクト(Reques、場合、Request.QueryStringは、Request.Form、はRequest.Cookies、とでRequest.ServerVariables)ユーザーの入力からの制御を確保するためつまり、SQLコマンド信頼性。特定のセキュリティ対策は、DBMSに応じて異なります。

SQLインジェクション攻撃は環境に害をもたらす可能性がありますサイトのソフトウェアおよび構成によって異なります。 Webサーバーは、すべてのフォームを削除することも、SQLインジェクション攻撃を、使用して、データベースにアクセスするアイデンティティの演算子(dbo)にするときに作成した新しいフォームを、のように。サーバーのスーパーユーザー(寺)に、全体のSQLサーバーを制御することがSQLインジェクション攻撃を使用して、アイデンティティデータベースにアクセスする。いくつかの構成では、攻撃者はさらに、Windowsサーバーにある自分のユーザーアカウントを完全にデータベースを操作するために作成することができます。

のような:

http://127.0.0.1/forum/showuser.asp?id=999 ''は、@ sysnameでありセットを宣言する@ 1 = '' xp_ '' +

'' Cmdshell''exec @ a''dir℃:''--&援助= 9

http://127.0.0.1/forum/showuser.asp?id=999 ''は、@ @ 1 = ''のxp '' + sysnameでありセットを宣言する

'' _cm ''+'' Dshell''exec @ a''dir℃:''--&援助= 9

もfqy fqy /このコマンドを追加するように:ネットユーザーが実行できます。もちろん、この場合は、土、しなければならない現在の状態を実行するために必要とするかは仮想ホストを攻撃、私はあなたが停止するお勧めします。

いくつかのサイトのマシン80によってマシンのポートの管理権限を得るために直接攻撃を防ぐために使用されるためには、不可欠となっている。フィルタは、xp_cmdshellを上にプライマリ、多くのサイトが手続きはGETとPOSTまたはデータを、混合提出するGETを使用している、このために、我々は行動のGET:SQLインジェクションの手順を防ぐ方法は弾力性になるプログラム本体(5)など

fqys =がRequest.ServerVariablesは("")QUERY_STRINGの

薄暗いnothis(18)

nothis(0)="ネットユーザー"

nothis(1)="xp_cmdshellを"

nothis(2)="/追加"

nothis(3)="幹部%の20master.dbo.xp_cmdshell"

nothis(4)="からNET LOCALGROUP管理者"

nothis(5)="選択"

nothis(6)="カウント"

nothis(7)="昇順"

nothis(8)="文字"

nothis(9)="中"

nothis(10 )="''"

nothis(11 )=":"

nothis(12 )=""""

nothis(13)="挿入"

nothis(14)="削除"

nothisは(15)="ドロップ"

nothisは(16)=""切り捨てる

nothis(17)="から"

nothis(18 )="%"

errc = falseを

私= 0(nothis)UBound関数に

場合InStr関数(FQYs、nothis(i))を 0し

errc = trueを

終了する場合

次の

次にerrc場合

""Response.Writeメソッド

Response.Endを

終了する場合

プロシージャの本体(5)

私は文を指すようにしたいです:上記の手順は、データフィルタによって提出されたメソッドを、盲目的には適用されませんがGETです。

ASP要求(Reques、場合、Request.QueryStringは、Request.Form、はRequest.Cookies、とでRequest.ServerVariables)ユーザーの入力メソッドの攻撃方法は、主スクリプト変数に集中してから他のオブジェクトと同様に変数入力(IDの予想される数が)もちろん、私達はちょうど数変数などで見ることができない:

http://127.0.0.1/systembbs/showtopic.asp?tid=99&name=abc ''と(userpasswor左

dは、1)= ''

http://127.0.0.1/systembbs/addtopic.asp?tid=99&name=abc ''とuserpasswor

dは= ''または''''=''

また、どのように1つの注入は、このようなエラーを防ぐには?

http://127.0.0.1/systembbs/addtopic.asp?tid=99 '';削除forum_forum; - &ページ= 33

予防プログラム:プログラム本体(6)

...... Addtopic.asp?アクション= ......追加

...... Addtopic.aspはアクションが...... delect =?

アクションをは=(場合、Request.QueryStringトリム())

7アクションを左()場合は、"アクション="then''mustは、アクションに=クエリ文字列に制限さ

エラー(err01)''エラー処理



アクション=場合、Request.QueryString("アクション")''クエリ文字列の値を取得する

終了する場合

クエリ文字列の選択ケースaction''to契約

場合は""を追加

.....

ケース""を削除

......

ケースelse''ifはクエリ文字列をエラー処理のため、この値ではありません

エラー(err02)

終了を選択

プロシージャの本体(6)

このような攻撃なので、我々のウェブマスターが再び頭痛が、ここで私はあなたに最良の方法は、文字のユーザー名の長さ、数一般的に15文字、14文字主に超えることのない解決策を与えることが発生します。 。その後、我々は長さからフィルタに進みます:場合は、プログラム本体(7)

名前は=(名,"''","")を置き換える

16してlenは(名前)の場合

のResponse.write"あなたは何?"

Response.Endを

エンド場合

プログラム本体(7)

  为什么我们这里以及过滤了单引号,怎么还要再次取一个长度限制呢?不多说了,看看4ngel的文章先<<饶过''限制继续射入>> .别问我怎么转数字格式,我不会,嘿嘿...^_^!

  还继续回到我们的主题," 脚本期望的输入变量是数字变量 (ID)".怎样进行注入防范,天呐,方法太多了,最直接的就是判断是否是数字整型,还有一些比较个性的验证办法,我们一一介绍一下 如:程序体(8)

  一,判断数字是否是整型

  p_lngID = CLng(Request("ID"))

  二 取字长 这一点我相信一般的数据长度不会大于8位所以:

  If len(ID)>8 then

  response.write "bedpost"

  response end

  end if

  三 我认为这是一种比较冒险的办法,就是再进行一次数据库的查询,如果数据库表内没有相同的值与之相同那么返回错误.

  sql = "SELECT NAME FROM Category where ID="&ID

  set temp=conn.Execute(SQL)

  if temp.bof or temp.eof then

  response.Redirect("index.asp")



  cat_name=temp("name")

  end if

  set temp=nothing

  ‘上面的是数据ID 的检测,下面则是正式的查询

  sql = "SELECT ID T_ID, NAME FROM Category where ID="&ID&" ORDER BY xh asc"

  rs.open sql,conn,1,1

  四,我自己常用的数据过滤脚本,专利,呵~

  id=replace(id,"''","")

  If len( request("id"))>8 then ‘ 为什么取长度上面程序中已经说明

  response.write ""

  response.end



  If request("id")<>"" then ‘取不为空则是为了防止一些程序页中会出现空值情况,如果不在这里做判断,程序会校验出错.

  If IsNumeric(request("id"))=False then '' 风清扬修改 ID数据监控程式

  response.write ""

  response.end

  end if

  end if

  end if

  程序体(8)

  由于我个人的编程习惯,我喜欢将所有的数据检验程序全部保留到整站的公用程序中,比如:conn.asp啦,只需要写一次就可以修复全站的问题.

  说到这里,我提一点关于攻击的问题,就是跑用户密码或者是用户名,一般常用的就是

  ....../show.asp?id=1 and 0<>(select count(*) from admin where id=3 and left(username,1)=''a'')

  这样去一个一个尝试,当然我们不能在这里提什么Perl程序去跑密码,程序是别人写,要自己知道原理.这里我只是想给个比较方便的办法就是取ASC码范围.这个要比单独跑要快很多.不论是是字母,数字,汉字,特殊字符,他们总会有对应的ASC码,用以下办法:

  ....../show.asp?id=1 and 0<>(select count(*) from admin where id=3 and asc(right(left(username

  e,3),1)) between 1 and 10000) 剩下的就随你了,一般的从97到122就可以啦,字母嘛,很快D.呵呵,有人想用mid 函数当然也是不错 asc(mid(username,2,1)) between 1 and 10000 也成.

  如何更加有效的防止SQL注入攻击?我们将在下面的文章中具体提到!

  防范远程注入攻击

  这类攻击在以前应该是比较常见的攻击方式,比如POST攻击,攻击者可以随便的改变要提交的数据值已达到攻击目的.又如:COOKIES 的伪造,这一点更值得引起程序编写者或站长的注意,不要使用COOKIES来做为用户验证的方式,否则你和把钥匙留给贼是同一个道理.

  比如:

  If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd")

  ="fqy#e3i5.com" then

  ........more.........

  End if

  我想各位站长或者是喜好写程序的朋友千万别出这类错误,真的是不可饶恕.伪造COOKIES 都多少年了,你还用这样的就不能怪别人跑你的密码.涉及到用户密码或者是用户登陆时,你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一个信息,SessionID,它的随机值是64位的,要猜解它,不可能.例:

  if not (rs.BOF or rs.eof) then

  login="true"

  Session("username"&sessionID) = Username

  Session("password"& sessionID) = Password

  ‘Response.cookies("username")= Username

  ‘Response.cookies("Password")= Password

  下面我们来谈谈如何防范远程注入攻击,一般的攻击都是将单表提交文件拖到本地,将Form ACTION="chk.asp" 指向你服务器中处理数据的文件即可.如果你全部的数据过滤都在单表页上,那么恭喜你,你将已经被脚本攻击了.

  怎么才能制止这样的远程攻击?好办,请看代码如下: 程序体(9)

  ‘个人感觉上面的代码过滤不是很好,有一些外部提交竟然还能堂堂正正的进来,于是再写一个.

  ‘这个是过滤效果很好,建议使用.

  if instr(request.servervariables("http_referer"),"http://"&request.servervariables("host") )<1 then

  response.write "处理 URL 时服务器上出错。

  如果您是在用任何手段攻击服务器,那你应该庆幸,你的所有操作已经被服务器记录,我们会第一时间通知公安局与国家安全部门来调查你的IP. "

  response.end

  end if

  程序体(9)

  本以为这样就万事大吉了,在表格页上加一些限制,比如maxlength啦,等等..但天公就是那么不作美,你越怕什么他越来什么.你别忘了,攻击者可以突破sql注入攻击时输入框长度的限制.写一个SOCKET程序改变HTTP_REFERER?我不会。网上发表了这样一篇文章:

  ------------len.reg-----------------

Windowsレジストリエディタバージョン5.00

  [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt扩展(&E)]

  @="C:Documents and SettingsAdministrator桌面len.htm"

  "contexts"=dword:00000004

  -----------end----------------------

  -----------len.htm------------------

  ----------end-----------------------

  用法:先把len.reg导入注册表(注意文件路径)

  然后把len.htm拷到注册表中指定的地方.

  打开网页,光标放在要改变长度的输入框上点右键,看多了一个叫扩展的选项了吧

  单击搞定! 后记:同样的也就可以对付那些限制输入内容的脚本了.

  怎么办?我们的限制被饶过了,所有的努力都白费了?不,举起你de键盘,说不。让我们继续回到脚本字符的过滤吧,他们所进行的注入无非就是进行脚本攻击。我们把所有的精力全都用到ACTION以后的页面吧,在chk.asp页中,我们将非法的字符全部过滤掉,结果如何?我们只在前面虚晃一枪,叫他们去改注册表吧,当他们改完才会发现,他们所做的都是那么的徒劳。

  ASP木马

  已经讲到这里了,再提醒各位论坛站长一句,小心你们的文件上传:为什么论坛程序被攻破后主机也随之被攻击者占据。原因就在......对!ASP木马!一个绝对可恶的东西。病毒么?非也.把个文件随便放到你论坛的程序中,您老找去吧。不吐血才怪哦。如何才能防止ASP木马被上传到服务器呢?方法很简单,如果你的论坛支持文件上传,请设定好你要上传的文件格式,我不赞成使用可更改的文件格式,直接从程序上锁定,只有图象文件格式,和压缩文件就完全可以,多给自己留点方便也就多给攻击者留点方便。怎么判断格式,我这里收集了一个,也改出了一个,大家可以看一下: 程序体(10)

  ''判断文件类型是否合格

  Private Function CheckFileExt (fileEXT)

  dim Forumupload

  Forumupload="gif,jpg,bmp,jpeg"

  Forumupload=split(Forumupload,",")

  for i=0 to ubound(Forumupload)

  if lcase(fileEXT)=lcase(trim(Forumupload(i))) then

  CheckFileExt=true

  exit Function



  CheckFileExt=false

  end if

  next

  End Function

  ‘验证文件内容的合法性

  set MyFile = server.CreateObject ("Scripting.FileSystemObject")

  set MyText = MyFile.OpenTextFile (sFile, 1) '' 读取文本文件

  sTextAll = lcase(MyText.ReadAll): MyText.close

  ''判断用户文件中的危险操作

  sStr ="8|.getfolder|.createfolder|.deletefolder|.createdirectory|

  .deletedirectory"

  sStr = sStr &"|.saveas|wscript.shell|script.encode"

  sNoString = split(sStr,"|")

  for i = 1 to sNoString(0)

  if instr(sTextAll, sNoString(i)) <>0 then

  sFile = Upl.Path &sFileSave: fs.DeleteFile sFile

  Response.write "

  "& sFileSave &"文件中含有与操作目录等有关的命令"&_

  "

  "& mid(sNoString(i),2) &",为了安全原因,不能上传。"&_

  "

  "

  Response.end

  end if

  next

  程序体(10)

  把他们加到你的上传程序里做一次验证,那么你的上传程序安全性将会大大提高.

  什么?你还不放心?拿出杀手锏,请你的虚拟主机服务商来帮忙吧。登陆到服务器,将PROG ID 中的"shell.application"项和"shell.application.1"项改名或删除。再将"WSCRIPT.SHELL"项和"WSCRIPT.SHELL.1"这两项都要改名或删除。呵呵,我可大胆的说,国内可能近半以上的虚拟主机都没改过。只能庆幸你们的用户很合作,否则......我删,我删,我删删删......

  小结

  如何更好的达到防范SQL Injection的攻击?这里我个人给推荐几个办法,第一,免费程序不要真的就免费用,既然你可以共享原码,那么攻击者一样可以分析代码。如果有能力的站长最好还是更改一下数据库表名,字段名,只修改关键的admin, username, password就可以了,比如forum_upasswd 这样的字段名谁能猜到?如果你猜到了,最好赶快去买彩票吧,特等奖不是你还会有谁呢?另外,一般站点的关键就在于管理员的密码,很好的保护好你的管理员密码那是至关重要的,至少10位的数字字母组合。另外加上现在大多数站点程序都会使用MD5来加密用户密码,加上你密码的强壮性,那样你站点的安全性就大大的提高了。即使出现了SQL Injection漏洞,攻击者也不可能马上拿下你的站点。