Exp9 Webセキュリティインフラストラクチャ20164303キングセント

Exp9 Webセキュリティインフラストラクチャ

基本的な質問には答え:

  1. SQLインジェクション攻撃、どのように守るために?

    • SQLインジェクション攻撃は、WebフォームにSQLコマンドを介して挿入されて送信したり、ドメイン名のクエリ文字列またはページ要求を入力し、最終的には悪質なSQLコマンドを実行するための欺瞞サーバーの目的を達成します。

    • SQLインジェクション攻撃の防止のため、主に私たちは、コードから開始すべきだと思います。
      • 限り、それをのsetXXX値を使用する従来の方法として、SQLインジェクションを処理する能力を内蔵したPreparedStatementプリコンパイル文のセットを、使用します。それは、代わりにそのため、SQL文の準備を解析しての、データ処理として、(コンパイル)プロセスは、有害な影響を持っている、とのPreparedStatementの準備ができてSQLインジェクションSQL文にのみ準備動作しますが、実行段階の入力文字列SQLインジェクションの問題を回避。
      • 入ってくるのパラメータは、SQLインジェクションのフィルタリングが含まれているいくつかのキーワードをフィルタリングするために正規表現を使用します。
      • ストリングの濾過方法。
      • JSP SQLインジェクションからURLを防ぐために、無効な文字をチェックするために、この関数を呼び出します。
  2. 原理XSS攻撃、どのように守るために?

    • XSSは、Webページを表示するときに、他のユーザーが影響を受けるであろう、悪意のあるユーザーがページにコードを挿入することを可能にするコードインジェクションあり、かつ成功裏にブラウザを実装することができます。このような攻撃は、多くの場合、HTMLとユーザ側のスクリプト言語が含まれています。XSS攻撃の主な目的は、この情報を使用すると、任意の着陸地点でのインターネットパソコンを活用できるようにすることができ、seesionを持っているため、クッキーと同等の攻撃サイトのクッキーのターゲットを取得する方法を見つけることであり、他の人のアイデンティティでログインして、いくつかのダメージを与えます。
    • XSSの防衛は、次の二つの側面ことがあります
      • 前者の方法は、フォームの送信またはURLのパラメータ渡し、必要なフィルタパラメータです。
      • このような角ブラケット、引用符と出力のように、厳密なコントロールとして違法なコンテンツのユーザ入力、かどうかをチェック。

3.CSRF攻撃、どのように守るために?

  • 私たちは、XSSのクロスサイトスクリプティング攻撃、攻撃者のスクリプトがそのクッキーやその他の情報を取得するために、ユーザーのブラウザで実行されていることを知っています。CSRFは、要求が、いわゆる、ユーザの意図ではないため、Webサーバにリクエストを送信し、ユーザーのIDを借用し、「クロスサイトリクエストフォージェリ。」
  • CSRFの防御のためにも、次の側面から開始することができます:
    • リファラによって、ユーザによって提出されたトークンまたは認証コードが検出されます。
    • 最適な使用のポスト操作を変更または削除するユーザーのために、リンクのページにユーザーのプライバシー情報を公開しないようにしてください。
    • 一般的なCookieステーション全体、厳格なセットCookieドメインを避けてください。

 

実験手順:

、WebGoat設定

https://github.com/WebGoat/WebGoat/releases/tag/7.0.1ウェブサイトを入力します。

ダウンロードwebgoatコンテナ-7.0.1-戦争-exec.jar 

入力  webgoatコンテナ7.0.1-戦争-exec.jar - マウントされたjarパッケージのjava -jar

 

ブラウザのログイン情報を開くには、地図上の赤いボックスを見た後  // localhostを:8080 / WebGoatサイトのhttpを。


 

 二、SQLインジェクション攻撃(インジェクションの欠陥)

 

 1.噴射指令(コマンド・インジェクション)

    • インジェクションの欠陥を選択- > [コマンドインジェクション
      右ページボックス、ソースコードを変更する要素のレビューページ要素を検査選択し、最後に追加"& netstat -an"
    • 表示するにはクリックして、ネットワークポートの使用状況やIPアドレスを参照して、攻撃が成功します

 

 

2.ログ欺く(ログインスプーフィング)

    • 选择インジェクションの欠陥 - >ログインスプーフィング
    • ユーザー名JS入力します%0d%0aLogin Succeeded for username: admin使用0D%(入力)と%0A(改行)を二列に表示されるログイン
    • 任意のパスワードを入力し、[ログイン]をクリックした後、成功は、ログファイルにユーザー名を追加します。

 

 

3.SQL注入(LAB:SQLインジェクション)

ステージ1:文字列のSQLインジェクション

    • インジェクションの欠陥を選択 - >文字列SQLインジェクション、右ページパスワードパスワードボックス、ソースコードを変更する要素のレビューページ要素を検査選択し、最大の長さの上限が20に変更されました

 

 

    • ネビルのユーザログイン、パスワードSmith' or '1' = '1
    • 攻撃は、すべての関係者のリスト成功しています

 

 

 

4.ブラインドSQLインジェクション(ブラインド数値SQLインジェクション)

    • 情報サーバは、2つの方法でページを返します。有効なアカウントを、アカウントが有効ではないので、単純にPIN値のアカウントを照会することはできません。しかし、あなたは、クエリとバックグラウンドでシステムを使用することができSELECT * FROM user_data WHERE userid=accountNumber;
      、戻り情報アカウントであれば、ページがそうでない場合は、プロンプト無効、アカウントが有効でプロンプトが表示されます。
    • 入力101 AND 1=1 ページは、有効なアカウント番号を返します。

    • 入力し101 AND 1=2 第2の条件が満たされていない、ページが無効なアカウント番号を返します。

    • 入力101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );ページが無効な口座番号を返し、説明PIN <= 10000

 

 

    • 入力するいくつかの試みは、入力した2364正しいPIN値を

 

二、XSS攻撃

1.蓄積型XSS攻撃(ストアドXSS攻撃)

    • 任意の入力、メッセージボードの入力でタイトル文字で<script>alert("js4303");</script>

 

 

2.反射型XSS攻撃(XSS攻撃反射)

    • コード入力し<script>alert("js4303");</script>、それがフィードバックを与えると同時に、購入ページのクリックを

 

 

三、CSRF攻撃

1. CSRF(クロスサイトリクエストフォージェリ(CSRF))

    • それぞれのsrc値で321と900のページとメニューのパラメータの右側をチェック
    •  

    • タイトルに指定した任意のパラメータを入力し、入力メッセージボックス
<IMG SRC = "のhttp:// localhostを:?8080 / WebGoat /攻撃スクリーン= 321&メニュー= 900&transferFunds = 5000" />
    • 点击 Submit (其中语句中的&transferFunds=5000,即转走的受害人的金额;宽高设置成1像素的目的是隐藏该图片)
    •  


       

2.绕过 CSRF 确认( CSRF Prompt By‐Pass

 

    • 查看页面右侧Parameters中的src和menu值分别为279和900
    •  

    • 在title框中输入学号,message框中输入代码:
    •   

       

       

      点击链接,攻击成功

 


 实验感想:

这次实验难度不高,但项目比较多,因此也花费了不少时间。终于做完了最后一个实验,有点小开心,尽管说实话自己也觉得做得不怎么样,验收从没有去过,现场的确做不出来,一般要花费好几天才能搞定,因此从来没敢去验收。但将基础的东西完整地做完,我觉得自己的收获也不少。尽管过程很痛苦,但现在想起来还是挺好的。

 

おすすめ

転載: www.cnblogs.com/js0905/p/10927066.html
おすすめ