2018 - 2019から10に対する20165107ネットワーク技術Exp9のWebセキュリティインフラストラクチャ

ネットワーク技術Exp9 Webセキュリティインフラストラクチャに対する20165107

実験的な要件

この練習の目的は、一般的なネットワーク攻撃手法の基本原則を理解していない未満行うなど、7トピック、(CSRF、SQL、XSS)の下でWebgoat実用的な実験を。

財団は、ある質問しました

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

SQLインジェクション攻撃:、パラメータWebアプリケーションとして渡された特殊な入力を構築することであるSQL文を実行入力し、攻撃者が望んでいた操作を実行します。実際に表示用のログイン情報を決して実現スタイルを使用して、閉鎖、コメントセクションのSQL文を達成するために、#、およびその他の特殊文字、引用符 - このようなユーザー名、パスワード入力ボックスとして、登録番号」を入力します。

どのように防御:;変数は固定形式で決定することができない、特殊記号またはエスケープろ過は、変数のデータ型と形式を確認し、準備されたステートメントを使用して、変数をバインドします。

2、XSS攻撃の原則、どのように守るために

原理XSS攻撃:セキュリティの脆弱性は、Webアプリケーション攻撃の一種です。攻撃者は、ユーザーがページを閲覧した場合、悪意のあるHTMLタグやWebページにJavaScriptコードを挿入する、または特定の操作、いくつかの危険な操作を実行中に、または他のサイトにユーザーをだましするためのユーザー元のサイトへの信頼、またはブラウザの使用を実行します利用者から提出された個人情報。

どのように防御:フォームの送信またはフィルタリングする必要があるパラメータの前を通過URLパラメータ、違法な内容がある場合は、ユーザー入力を確認してください。

3、CSRF攻撃の原理は、どのように守るために

CSRF攻撃:クロスサイトは、ドメインリクエストフォージェリと呼ばれる現在の状況セッションはクッキーの存在下での主流であるため、コア本質は、ユーザーセッション、またはクッキーを盗むことです。ユーザのログイン後、セッションがいる限り、攻撃者がセッションを得ることができるように、サーバーに被害者を装っすることができ、ユーザー資格情報のみであるため、攻撃者は、被害者の特定のアカウントとパスワードを気にしません。

防衛方法:ユーザーが提出したリファラ、トークンまたは認証コードによって検出され、ステーションが共通のクッキーを避けるために、クッキーは厳密にドメインを提供します。

実験手順

、WebGoat準備

WebGoatは、セキュリティの脆弱性は、Webアプリケーションに存在し説明するために、Webアプリケーションの脆弱性を実験するためのプラットフォームを開発しOWASP組織です。これは、Java仮想マシンとプラットフォーム上で動作し、Webセキュリティは、攻撃にこれらの脆弱性を悪用し、ユーザーを導くために、学ぶためにチュートリアルのシリーズを提供します。

JARパッケージをダウンロード:WebGoat-コンテナ7.0.1-WAR-exec.jar

別のプロセスによって8080個のポートを使用することを終了します。

デフォルトのポート8080なぜならWebGoatので、netstatコマンド-tuplnで最初に開く前に|ポートが占有されているかどうかを確認するためにはgrep 8080は、占領した場合は、killプロセスIDを持つプロセスを終了させるためにポート8080を占めていました。

通常のインストール、コマンドラインのjava -jar webgoatコンテナ-7.0.1-戦争-exec.jar

ローカルホスト:へのクロム8080 / WebGoat直接デフォルトのユーザー名にログインするゲストのパスワードを使用して、練習を開始。

 

二、SQLインジェクション攻撃

 

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

 

コンセプト:任意のパラメータ駆動サイトへのコマンドインジェクション攻撃、それは深刻な脅威です。技術の背後に攻撃技術のこの方法は、覚えやすく、システム妥協の広い範囲への損傷を引き起こす可能性があります。

 

目標:あなたがターゲットホスト上の任意のシステムコマンドを実行することができます。

 方法:「右クリックして、HTML形式で編集]を選択し、修正、追加列のボックスで、ソースコード、任意のコードを変更する要素のレビューページ要素を検査選択し、ページ上で右クリック&netstatの-an&IPCONFIG "

クリックしてview、あなたは攻撃が成功した、ネットワークポートの使用状況と命令実行のIPアドレスを見ることができます。

2.デジタルタイプのインプラントを(数値SQLインジェクション)

コンセプト:注射の数値データ(例:決して本当に式)注射の効果を達成します。

目標:SQLインジェクションの文字列を使用して、すべての気象データの例を参照します。

操作方法

選択し、ページ上で右クリックしてinspect Element選択した都市の値値に番号を追加し、ソースコードを変更するレビューページ要素をor 1=1

すべての気象条件は街の攻撃の成功を示して表示します。

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

コンセプト:ログファイルにスクリプトを挿入することにより達成欺きます。

目標:灰色の領域のWebサーバーのログに記録の内容を表して、私たちの目的は、ユーザー名を使用することですが、「管理者」のユーザーログに表示ログインに成功しています。

操作方法

左クリックしてくださいInjection Flaws- > Log Spoofingユーザー、我々はWebGoatが前にテーブルの上に表示さ開きますwebgoat攻撃。User Name充填webgoat%0d%0aLogin Succeeded for username: admin、すなわち、トランスポートを使用する%0Dとスペースは%0A、ログ内の2つの行を可能にしました。その後、我々はパスワードを入力し、クリックLogin、あなたが見ることができるディスプレイにその行を、次の行は、私たち自身で追加文を示します。webgoatLogin Fail

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

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

方法:、ページ上で右クリックを選択inspect Element18パスワードパスワードボックスにソースコードを変更するレビューページ要素を、最大の長さの制限。

ステージ2:ユーザーネビル(認める)ログイン、パスワードhello' or '1' = '1、すべての従業員のリストは、攻撃が成功しました。

注射の文字列(文字列のSQLインジェクション)

コンセプト:注入することにより、文字列のバイパス認証

目標:次の表は、ユーザーが自分のクレジットカード番号を表示することができます。すべてのクレジットカード情報によるSQLインジェクションの試みが表示されます。ユーザー名が「スミス」で試してみてください。

操作:ユーザー名の入力クエリスミス「または1 = 1 -すべてのユーザーを与えるために、(スミスと1 = 1の条件は、テーブル内のすべてのデータを照会することが可能で、クエリ、身元1 = 1となっています)クレジットカード番号は、攻撃が成功しました。

6.バックドアデータベース(データベースのバックドア)

最初の文、ユーザーのID入力検証:101;更新従業員のセットの給料= 5000を、更新されたデータを見ることができます。

注入101; CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='[email protected]'WHEREuserid = NEW.userid およびバックドアを作成します。

7、ブラインドインジェクション文字列(ブラインド文字列SQLインジェクション)

目標:ピンフィールド値4321432143214321フィールド記録のテーブルcc_numberピンの値を見つけます。ピンフィールドタイプVARCHAR。値を検索し、このタイトルを達成提出します。

操作:文字列に注入されたデジタル・コンバータことを除いて、同様の数値のブラインドを注入します。

たとえば、次のように入力し101 AND (SUBSTRING((SELECT name FROM pins WHERE cc_number='4321432143214321'), 1, 1) < 'M' )、ピンフィールド値の最初の文字を取得し、それが文字「M」よりも小さいか否かを判定する

SUBSTRINGの構文 SUBSTRING(STRING,START,LENGTH)

二分法のテストを使用して、最後にピンフィールドを取得します。

三、XSS攻撃(クロスサイトスクリプティング)

1.XSS钓鱼(XSSとフィッシング)

目標:必要なユーザー名とパスワードを記入し、フォームを作成します。データはに提出されますhttp://localhost/WebGoat/catche r?PROPERTY=yes&user=catchedUserName&password=catchedPasswordNam

操作方法

XSS要素が二つの部分であって、既存のページを使用して添加してもよいです。

被害者は、フォームを記入し、攻撃者に収集したの形でスクリプトを読み取るための情報サーバーを送信します。

その情報をキャプチャWebGoatに情報を送信、フォームに入力された攻撃者によってユーザー名とパスワードの情報を読み取り、スクリプトを書きます。

ユーザー名とパスワードの入力ボックスで表を書きます

<form name="20165107lyl"> <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>

Search框中输入该代码,则在下面出现输入用户名和密码的表单。

接下来,我们编写一段脚本文件,一旦受害者在表单中输入用户名和密码,则信息会传给捕获这些信息的WebGoat。

在Search框中输入该代码,则出现表单。

输入用户名和密码后,我们可以看到服务器返回登录名和密码。

2.存储型XSS攻击(Stored XSS Attacks)

目标:写入非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容

操作方法:在title中任意输入字符,留言板中输入<script>alert("I am 20165107lyl. You've been attacked!!!");</script>。

3. 反射型XSS攻击(Reflected XSS Attacks)

原理:攻击者利用一个脚本创建一个URL,受害者一旦点击它就会受到攻击。

Enter your three digit access code:栏中输入脚本<script>alert("Hey! You've been attacked!");</script>,点击Purchase,成功显示警告框,内容就是我们在脚本中注入的内容。

四、CRSF攻击

1、跨站请求伪造(CSRF)

写一个URL放进Message框,使其他用户不可见,设置成一个隐藏图片,用户一旦点击就会触发一个CSRF事件;

在Message里输入<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=5000" width="1" height="1" />;

点击该消息,页面就会下载这个消息并显示,就会执行转走用户的存款。

2、绕过 CSRF 确认(CSRF Prompt By-Pass)

message框中输入:

<iframe src="attack?Screen=[scr]menu=[menu]&transferFunds=5000"> </iframe>

<iframe src="attack?Screen=[scr]&menu=[menu]&transferFunds=CONFIRM"> </iframe>

查看消息,看到转账消息。

实验体会

本次实验基于Webgoat完成,实践过程中我对SQL注入、XSS和CSRF有了全新认识和理解。此次实验环节较多,所以我们一定理清实验思路,知道自己目前在做什么操作,每一步的目的是什么,下一步要做什么,最终达到什么样的实验效果,这样才能更好地理解整个攻击过程,从而更好地完成实验任务。

 

おすすめ

転載: www.cnblogs.com/3523108059lyl/p/10927140.html