owasptop10の研究ノート

この記事ではowasptop10研究ノートです。ドット記録紙の下で感情。記録シーケンスは、文書の読み順に基づいています。

実際の作業は、このような問題が発生します、と私はグレーディングする方法を知らないので、関心の最初のポイントは、提案されたリスク評価のテキストです。私はそれは、リスク評価の観点とテキスト与えられた方法で説明することができると思います

;例:脆弱性の普遍性、容易な平均と困難:ビジネスシステムはxxxxxxxxxxx(アプリケーションの説明)(攻撃ベクトルである広範な、一般的で希少な、脆弱性の検出性:簡単に、平均値と困難;技術的効果:中等度、厳しいです小)リスクレベルを総合的に評価が高く、中、低リスクである:リスクXXXXXXXXX(事業の事業内容)

しかし、テキストで指定されたメソッドのリンク(https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology)をランク付けOWASPリスクは、複数の基準によって評価細かいのいくつかのために複雑です。(全文を閲覧するには、Googleの翻訳は、より洗練されたリスク評価指標や方法を持っていることが判明した。本論文では、したがって、もはや下に到達しないここではない焦点を当てています。)

 

その後、TOP10の上、TOP1は有名な注射です。しかし、私は非常に多くのポイントが通常のみSQLIを知っている自分自身を注入していた期待していませんでした。注射のための文書定義を見てください:

 コマンドまたはクエリの一部としてパーサ信頼できないデータに送られたとき、貧しい学生が注入されます。SQLインジェクション、NoSQLの注射、注入および注入欠陥OS LDAPインジェクション。悪意のある攻撃者が意図しないパーサが許可なくコマンドやアクセスデータを実行誘導することができます。

不慣れな注入、それに検索についてのトーク:OSの注入は、それだけでは非常によく知られて見つけることが、通常、彼は検索後に実行されるコマンドに戻ります。私は、注射でこの計画を期待していませんでした。

ネットワークを説明:OSの命令の実行は、ネットワークインタフェースを介してOSのWebサーバーでコマンドを実行するための技術です。外部入力文字列または文字列のアプリケーションがアセンブリ外部コマンドの影響を受けている場合は、適切なフィルタリングなしで、OSコマンドインジェクション攻撃をもたらすことができます。

インターネットは2つのカテゴリに分類されて入力します。

1.アプリケーションは、ユーザの入力パラメータを介してコマンドを実行する固定プログラムそれらの制御を実行します。この場合、delimiterパラメータによって、コマンドインジェクションのパラメータは、攻撃者は実行したいコマンドを実行します。

2.アプリケーション全体の文字列入力コマンドとして、単にトランジットアプリケーションであると、オペレーティングシステムは、例えば、EXECコマンドによって実行することが、その後、コマンドセパレータからのコマンドを注入することができるためにコマンドを実行します。

最初のLinuxのコマンドのように感じている|や&インジェクションのこのタイプのコネクタ。突然、バッファオーバーフローカウント注入を考えました。違いがありますが、定義が届く意図しないコマンドやデータへのアクセスの面でパーサの注入を指します。バッファオーバーフローが直接操作バイナリのタイプです。これは、注入されたと考えることはできません。

第二は、PHP、システム()、もしくはshell_exec()、パススルー()のヒントを提供理解、例えば、3つの外部実行コマンド機能を容易にすることである:直接バッククォートがある・IPCONFIG・コマンドも実現することができます。幹部が、必要オーダーパラメータに増加することができ、出力が新しいパラメータに渡されます。例えば<PHP $ CMD = $ _ GET [ 'CMD'];?Execの($ cmdを、$ LS);のvar_dump($ LS);?>

LDAPインジェクション:LDAP(ライトウェイトディレクトリアクセスプロトコル):ライトウェイトディレクトリアクセスプロトコルは、オンラインディレクトリアクセスプロトコルです。LDAPは、主に検索し、クエリディレクトリリソースのために使用されています。キーを使用してインジェクション技術は、ディレクトリ検索サービスのためのLDAPフィルタを制御することです。一般的なLDAPには、Microsoft ADAM(Active Directoryのアプリケーションモード)とOpenLDAPのを持っています。問題に対する態度の研究のためにこの側面を見て好きですが、考慮に彼らの現在のレベルを取って、そして、そのような攻撃はほとんど使用されていません。これは、最初に記録されています。従事する機会を持っています。

XPathインジェクション:2つの注入上記に加えて、私はOWASP言及されていない別のタイプの注入を述べたときに私をバックグーグル。実際には、それは非常に異なった感じに加えて、パーサと構文SQLインジェクションに注入されます。PHPパーサと簡単なテストそれを探しているが来店中です。

 

 

TOP2:認証失敗

 

 一般的なアプリケーションの認証の脆弱性は、以下の側面ことがあります

1.攻撃者が有効なユーザー名とパスワードのリストを取得することを可能にする、資格情報を記入することを許可します。(クーポンの充填:資格情報がユーザーへのゲインアクセスへの/パスワード違反して自動的に注入ユーザー名を埋めるためには、不正を占めている。これは、暴力的な攻撃カテゴリのサブセットです:大規模流出の資格情報が自動的にウェブサイトに入力され、彼らは既存のアカウントと一致することができるまで、その後、攻撃者は、自分の目的のために乗っ取ることができます。

2.ブルートフォースや他の自動化された攻撃を許可します。

3.許可するには、デフォルト、弱いまたはウェルなど「Password1という」または「管理者/管理者」として、パスワードを知られています。

4.な安全でない「知識に基づいて回答」、弱いまたは失敗した認証証明書、パスワードを忘れた場合の手順を使用します。

5.平文、暗号化されたハッシュされたパスワードまたは弱いです

6.不足または多要素認証の失敗。

7.露光セッションID(例えば、URL書き換え)URL。

8.ログイン成功後にセッションIDを更新しません。

9.誤ったセッションIDが失敗しました。ユーザがアクティブでない場合、ユーザセッションまたは認証トークン(特にシングルサインオン(SSO)トークン)が適切にログオフまたは失敗されていない場合。

実際には、それは、上記の弱点のためにブースターを防ぐ方法です。私はそれらを繰り返すことはしません。本文中で言及した次の特別なポイントを記録します。

1.確認、登録、資格情報とアカウントの列挙攻撃を撃退するために、すべての出力に同じメッセージを使用して、パスAPIを再開する。

2.制限または失敗したログインの試みが徐々に遅れ。充填資格証明書、または他のブルートフォース攻撃が検出されたときに、すべての情報と警告管理者を記録するために失敗しました。

3.ログイン後、組み込みのセッションマネージャサーバー側のセキュリティ、非常に複雑なランダムなセッションIDの新世代を使用します。それが失敗した後、URLにセッションIDを安全かつアイドルから、絶対タイムアウトを格納することはできません。

 

TOP3:機密情報の開示

最も一般的な作業に接触するような抜け穴。以下の文書は、脆弱性のいくつかの可能なポイントを提案して表示します。

1.あなたは、データ転送プロセスにクリアテキストを使用しましたか?これと関連するようなトランスポートプロトコル:HTTP、SMTP、およびFTP。外部のネットワークトラフィックが非常に危険です。介してすべての内部ていることを確認し、ロードバランサとの間の通信、Webサーバーまたはバックエンドシステム:のような、チャネル。

2.データは長期保存、それらが暗号化されているかどうか、保存されているに関係なくある場合は、パッケージのバックアップデータを含みましたか?

3.かどうか、デフォルトの状態やソースコード、任意の古いや脆弱なプラスを使用している場合、暗号化アルゴリズムを?

4.デフォルトの暗号化キーの生成や再利用、弱い暗号化キー、または使用するかどうか、適切な鍵管理やキーローテーションの欠如を?

5.例えば、暗号化された機密データを強制するかどうか(例えば:ブラウザ)ユーザエージェントを指示し、伝送プロトコルは暗号化されていますか?

6.ユーザエージェント(のような:アプリケーション、電子メールクライアント)サーバー証明書を検証しない場合は、本の妥当性を?

 

TOP4:XML外部エンティティ(XXE)

攻撃者は、XMLドキュメントをアップロードしたり、脆弱なコード、依存関係や統合を通じて、XML文書内の悪質なコンテンツを追加することができます場合は、XMLプロセッサが欠陥を含んで攻撃することができるようになります。

XXE欠陥がデータを抽出するために使用することができる、要求、内部走査システム上のリモートサーバは、サービス攻撃やその他の攻撃の拒否を行います。ビジネスへの影響は、影響を受けるすべてのアプリケーションとデータ保護のニーズによって異なります。

 

 

TOP5:壊れたアクセス制御

アクセス制御の使用は、コア技術の浸透テスターです。アクセス制御の欠如を検出することができますが、その機能を検証しませんDAST SASTとツール。アクセス制御は、特定の自動検出枠削除制御アクセスに、手動で検出し、又はされてもよいです。

そのため、自動テストとアプリケーション開発者の不足の効果的な機能テストの欠如、したがって、アクセス制御の不備は共通しています。アクセス制御は、通常、静的または動的テストの自動検出には適していません。HTTPメソッド(例:GETやPUT)、コントローラ、直接オブジェクト参照などを手動テストがあって、存在しないか、または無効なアクセス制御を検出するための最善の方法です。

テクノロジーは、ユーザーを偽装管理者または特権ユーザ、または作成、アクセス、更新またはすべてのレコードを削除することができ、攻撃者が影響を与えています。ビジネスへの影響は、アプリケーションとデータの保護ニーズによって異なります。

 

 

 

TOP6:セキュリティの構成エラー

一般的に、攻撃者はシステムの不正アクセスや知識を得るために、もはやなどの使用、保護されていないファイルやディレクトリ、内のページ、デフォルトのアカウントにアクセスし、修理の脆弱性にできません。セキュリティの構成エラーは、ネットワークサービス、プラットフォーム、Webサーバー、アプリケーションサーバー、データベース、フレームワーク、およびカスタムコードのプリインストールされた仮想マシン、コンテナおよびストレージを含む、アプリケーション・スタックの任意のレベルで発生する可能性があります。セキュリティの設定自動スキャナがエラーを検出、またはデフォルト設定のアカウント、不要なサービス、レガシーのオプションを使用するために使用することができます。これらの脆弱性は、いくつかの頻繁にシステムの機能やデータへの攻撃者が不正にアクセスされる可能性があります。時には、これらの脆弱性は、完全なブレーキシステムにつながります。

 

TOP7:クロスサイトスクリプティング(XSS)

ロードし、悪意のある製作することで、Webアプリケーション攻撃を実行するために、ユーザーを有効にするために巧妙な方法による命令のページに悪意のあるコードを注入することにより、Webの脆弱性を使用して開発されたときにXSS攻撃は通常、左を指します。これらのプログラムは通常、悪質なWebページはJavaScriptですが、実際にはまた、Java、VBScriptの、ActiveXの、フラッシュ、あるいはプレーンなHTMLを含めることができます。攻撃が成功した後、攻撃者は含め得ることができますが、プライベートなWebページコンテンツ、セッションとクッキーや他のコンテンツ(例えば、いくつかの操作の実装など)は、より高い権威に限定されません

XSSの3種類がユーザーのブラウザのために、あります。通常は、次のとおりです。未検証およびエスケープユーザ入力アプリケーションAPIのない、またはHTML出力の一部として:反射XSSを。攻撃が成功すると、攻撃者は被害者のブラウザに任意のHTMLとJavaScriptを実行する可能性があります。一般的に、ユーザーは、悪意のあるWebサイトの脆弱性、広告や同様のコンテンツとして、対話にリンクしているページの制御を取るために、いくつかの悪意のある攻撃者にポイントにする必要があります。ストアドXSS:ダウン、生のユーザー入力を保存し、他のユーザーやページの管理者の後の段階でそれを表示するために、アプリケーションやAPI。蓄積型XSSは、一般的に高リスクまたは重大なリスクとみなされています。DOMベースのXSS:動的に攻撃者が制御コンテンツのJavaScriptフレームワークページに参​​加する、単一ページプログラムまたはAPIのこのタイプの抜け穴があります。理想的には、安全でないJavaScriptのAPIに攻撃者が制御されたデータを送信することは避けてください。攻撃、および他のユーザ側:典型的なXSS攻撃がセッションを盗むために導くことができ、MFA、DIVの交換、ユーザーのブラウザへの攻撃(悪意のあるソフトウェアのダウンロード、キーロガー例えば)をバイパスして、占めています。

 XSSオンライン学習は、有名なXSSフィルタテーブルを参照することができます(https://www.freebuf.com/articles/web/153055.html

 

TOP8:安全でない、デシリアライゼーション

 

 

 

直列化復元は、XSS PHPの栗を行っ与えるには:

<?PHPの
クラスのテスト
{
公共$名= '名前';
関数__wakeup()
{
エコーの$ this - >名前;
}
}

$テスト=新しいテスト();
エコーにserialize($テスト);
アンシリアライズ($ _ GET [ 'C']);
?>

実行するブラウザ:HTTP://127.0.0.1/1.php C = O:4: "テスト":1:{S:4: "名前"; S:?25:「<SCRIPT>警告(0)< / SCRIPT>「;}

ポップ達成:

 

 

 

TOP9:使用するコンポーネントは、既知の脆弱性が含まれています

一般的な用途は、次のようなウェブミドルウェア、次のとおりです。

(A)IIS

1、PUTの脆弱性

2、ソリューション短いファイル名を推測

図3に示すように、リモートでコードが実行されます

4、解析の脆弱性

(二)アパッチ

1、解析の脆弱性

2、ディレクトリトラバーサル

(C)nginxの

1、文書解析

2、ディレクトリトラバーサル

3、CRLFインジェクション

4、ディレクトリトラバーサル

(D)のTomcat

図1に示すように、リモートでコードが実行されます

2、戦争バックドアファイルの展開

(五)JBOSS

1、逆シリアル化の脆弱性

2、戦争バックドアファイルの展開

(VI)のWebLogic

1、逆シリアル化の脆弱性

2、SSRF

3、任意のファイルのアップロード

4、戦争のバックドアファイルの展開

(g)その他の関連する脆弱性ミドルウェア

1、任意のコマンドの実行にFastCGIの不正アクセス

2、PHPCGIリモートでコードが実行されます

 

TOP10:ログの欠如と監視

ロギングとほぼすべての主要なセキュリティインシデントの不十分な監視温床を使用します。攻撃者は知られることなく、自分の目標を達成するには不十分と不時の応答監視に依存しています。

あなたは戦略の適切な監視を行っているかどうかを判断するには、侵入テストの後にログをチェックすることです。テスターの活動を完全に記録されるべきで、どのようなインパクトのその原因を反映しています。

 

おすすめ

転載: www.cnblogs.com/tai2/p/10419960.html