このエントリは 2 つの部分に分かれています。 最初に「EY GDSポーランドサイバーセキュリティチャレンジ」の一環として特定できた脆弱性の説明を掲載しました。 第二に、その「挑戦」が行われたフォームと、なぜそうしているのかについての私の予約について説明します。
パート 1 – セキュリティ エラーが検出されました
1. 反映されたクロスサイト スクリプティング
CVSV3 スコア: 8.0
CVSS v3 ベクトル: AV:N/AC:L/PR:L/UI:R/S:U/C/I/H/H/H 重大
度: 重大
検出:
テスト中に、サイト間スクリプティングの脆弱性が見つかりました。 アプリケーション コンテキストで JavaScript コードを挿入して実行できます。 JavaScript コードは、アプリケーションにコードを永続的に格納するストアードクロスサイトスクリプティングとは異なる、サーバーによってのみ反映されます。 この脆弱性は、認証されたユーザーセッションをハイジャックするために、主に悪用されます。 また、悪意のあるWebサイトにユーザーをリダイレクトしたり、アプリケーションユーザーのキーストークを盗むために使用することができます.
証明:
要求:
GET /index.php?ログイン=testhqw60%22%3e%3cscript%3ealert(1)%3c%2fscript%3ek9nju&psw=テスト&ページ=ログインHTTP/1.1
ホスト: 192.168.140.129
アップグレード -セキュリティで保護されていない要求: 1
ユーザーエージェント: モジラ/5.0 (Windows NT 10.0;Win64;x64) アップルウェブキット/537.36 (KHTML, ヤモリのような) クロム/89.0.4356.6 サファリ/537.36
受け入れる: テキスト/html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,画像/avif,画像/画像/apng,/;q=0.8,アプリケーション/署名入り交換;v=b3;q=0.9
審判: http://192.168.140.129/index.php?page=login
受け入れエンコーディング: gzip, デフレート
受け入れ言語: en-US,en;q=0.9,en-US;q=0.8,en;q=0.7
クッキー: PHPSESSID=0f9k9rgvg5lqfpvuhem70eo73
接続: 閉じる
応答:
HTTP/1.1 200 OK
日時: 火, 05 Jan 2021 17:04:34 GMT
サーバー: アパッチ/2.4.6 (セントOS) PHP/5.4.16
Xパワードバイ: PHP/5.4.16
有効期限: 木, 1981 11月 19:52:00 GMT
キャッシュ制御: ノーストア、キャッシュなし、必ず再検証、後チェック=0、事前チェック=0
プラグマ: キャッシュなし
コンテンツの長さ: 1248
接続: 閉じる
コンテンツタイプ: テキスト/html;文字セット=UTF-8<html>
<head>
<title>内部チャットシステム</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div style="width:600px; margin: 0 auto; text-align: center">
<a href="/">
<img src="ey-logo.png" height="72" alt="EY">
</a>
<div style="margin-top:50px;">
<nav>
<a href="/index.php?page=messages">自分のメッセージ</a>メッセージ<a href="/index.php?logout">のログアウトを</a><a href="/index.php?page=new_message">送信</a>
</nav>
</div>
<div style="margin-top:20px;">
<div class='message_error'>ログイン失敗</div>
<form target="_self">
<div class="container">
<label for="login"><b>ログイン</b></label>
<input type="text" placeholder="Enter login" name="login" id="login"
value="testhqw60"><script>alert(1)</script>k9nju"が必要です>
<label for="psw"><b>パスワード</b></label></div></form></div></div></body></html>
推奨事項:
この問題は、適切な入力検証の欠如と適切な出力エンコードの欠如が生じます。 厳密な入力サニタイズルールと出力エンコーディングの両方を組み込むことを強くお勧めします。 ' ' のような HTML 特殊文字<' and="" '="">は、<' and="" '="">ユーザー入力、データベース、およびファイルから読み取られるすべてのデータで</'>HTML エンコード (それぞれ ' ' ' に置き換えられます) にする必要があります。</'> 同じ意味は、 " ( " で置き換える必要があります ) や ' (円記号でエスケープする必要があります) などの文字に関係します。 さらに、厳密な入力サニタイズは、入力検証に対する異なるアプローチを意味します。 たとえば、変数が数値を保持するものである場合、変数が実際に数値であるかどうかを確認する方が良いです (^d+$ 正規表現に一致するか、整数キャストを使用した場合など) 、除外する可能性のある不正な文字をすべて見つけ出す代わりに、数値を指定することをお勧めします。 サーバー側で行われる入力検証は必須ですが、クライアント側(HTML/JavaScript、ユーザーが制御するWebブラウザ)での検証は、使いやすさを目的として、また、いわゆるDOMベースのクロスサイトスクリプティングを防ぐために存在する必要があります。 ユーザーが指定した変数が、事前にサニタイズせずにデータベース/ファイル/HTMLドキュメントに書き込まれ、その後他のユーザーに表示される場合、そのような脆弱性は保存されたXSSとなり、認証されたユーザーに対して何も操作を行うことなく使用できるため、はるかに危険です。 また、通常、格納された XSS 攻撃の規模は、複数のユーザーが影響を受ける可能性があるため、反映された攻撃の場合よりも広くなります。
参考文献:
CWE-79
http://cwe.mitre.org/data/definitions/79.html
OWASP
http://www.owasp.org/index.php/Cross_Site_Scripting https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.md
2. SQL インジェクション
CVSV3 スコア: 8.8
CVSS v3 ベクトル: AV:N/AC:L/PR:L/UI:N/S:U/C/I/H/H/H 重大
度: 重大
検出:
アプリケーション内で SQL インジェクションの欠陥が見つかりました。 この脆弱性により、攻撃者は基になるデータベースに対して直接 SQL クエリを実行する可能性があります。 攻撃者は、たとえば、現在のデータベース ユーザーがアクセスできるデータベースからすべての情報を取得できます。 また、Webサイトの改ざん、データベースデータの操作によるXSSの実行、システムコマンドの実行も可能です。
証明:
アプリケーションがパラメータ化を使用しないという事実のために、アプリケーションのパラメータのほとんど全体が SQL インジェクションの脆弱性です。
依頼:
GET /index.php?ログイン=管理者または'&psw=xyz&ページ=ログイン HTTP/1.1
ホスト: 192.168.140.129
アップグレード -セキュリティで保護されていない要求: 1
ユーザーエージェント: モジラ/5.0 (Windows NT 10.0;Win64;x64) アップルウェブキット/537.36 (KHTML, ヤモリのような) クロム/89.0.4356.6 サファリ/537.36
受け入れる: テキスト/html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,画像/avif,画像/画像/apng,/;q=0.8,アプリケーション/署名入り交換;v=b3;q=0.9
審判: http://192.168.140.129/index.php?page=login
受け入れエンコーディング: gzip, デフレート
受け入れ言語: en-US,en;q=0.9,en-US;q=0.8,en;q=0.7
クッキー: PHPSESSID=0f9k9rgvg5lqfpvuhem70eo73
接続: 閉じる
応答:
HTTP/1.1 302 が見つかりました
日時: 火, 05 Jan 2021 17:15:25 GMT
サーバー: アパッチ/2.4.6 (セントOS) PHP/5.4.16
Xパワードバイ: PHP/5.4.16
有効期限: 木, 1981 11月 19:52:00 GMT
キャッシュ制御: ノーストア、キャッシュなし、必ず再検証、後チェック=0、事前チェック=0
プラグマ: キャッシュなし
場所: /index.php?ログイン
コンテンツの長さ: 666
接続: 閉じる
コンテンツタイプ: テキスト/html;文字セット=UTF-8<html>
<head>
<title>内部チャットシステム</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div style="width:600px; margin: 0 auto; text-align: center">
<a href="/">
<img src="ey-logo.png" height="72" alt="EY">
</a>
<div style="margin-top:50px;">
<nav>
<a href="/index.php?page=messages">自分のメッセージ</a>メッセージ<a href="/index.php?logout">のログアウトを</a><a href="/index.php?page=new_message">送信</a>
</nav>
</div>
<div style="margin-top:20px;">
<div class='message_success'>ユーザーがログインしました</div></div></div></body></html>
推奨事項:
SQL インジェクションの脆弱性を防ぐために、ユーザー入力データのすべての特殊文字をサーバー側でフィルターまたはサニタイズする必要があります。 整数値は文字列値と同じように扱われるべきではなく、整数として解析してから処理を行う必要があります。 データベース クエリが存在するすべての場合に、準備済み (パラメーター化された) ステートメントを使用することをお勧めします。
参考文献:
CWE-89
http://cwe.mitre.org/data/definitions/89.html
OWASP
https://www.owasp.org/index.php/SQL_Injection
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.md
3. 格納されたクロスサイト スクリプティング
CVSV3 スコア: 8.0
CVSS v3 ベクトル: AV:N/AC:L/PR:L/UI:R/S:U/C/I/H/H/H 重大
度: 重大
検索:
テスト中に、格納されたクロスサイト スクリプティングの脆弱性が見つかりました。 これは、主に認証されたユーザーセッションをハイジャックするために悪用されます. この問題は、適切な入力検証の欠如と適切な出力エンコーディングの欠如が起因します。 格納された XSS は、ユーザーが指定した脆弱な変数がデータベース/ファイルに書き込まれ、他のユーザーに表示されるときに実行されます。 したがって、保存されたXSSは、フィッシングのように自分の側で何も取らなくても他のユーザーに対して使用することができるので、はるかに危険です。 これは、攻撃されたアプリケーションの信頼を乱用し、Webブラウザの悪用を使用してユーザーに感染させるのに非常に有用である可能性があります。
証明:
要求:
GET /インデックス.php?ログイン=testy7sfo%3cscript%3ealert(1)%3c%2fscript%3ejil46&psw=テスト&psw-repeat=テスト&ページ=ページ=HTTP/1.1.1
ホスト: 192.168.140.129
アップグレード -セキュリティで保護されていない要求: 1
ユーザーエージェント: モジラ/5.0 (Windows NT 10.0;Win64;x64) アップルウェブキット/537.36 (KHTML, ヤモリのような) クロム/89.0.4356.6 サファリ/537.36
受け入れる: テキスト/html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,画像/avif,画像/webp,画像/apng,*/*;q=0.8,アプリケーション/署名入り交換;v=b3;q=0.9
審判: http://192.168.140.129/index.php?page=register
受け入れエンコーディング: gzip, デフレート
受け入れ言語: en-US,en;q=0.9,en-US;q=0.8,en;q=0.7
クッキー: PHPSESSID=0f9k9rgvg5lqfpvuhem70eo73
接続: 閉じる
実行ポイントを持つ応答:
HTTP/1.1 200 OK
日時: 火, 05 Jan 2021 17:25:52 GMT
サーバー: アパッチ/2.4.6 (セントOS) PHP/5.4.16
Xパワードバイ: PHP/5.4.16
有効期限: 木, 1981 11月 19:52:00 GMT
キャッシュ制御: ノーストア、キャッシュなし、必ず再検証、後チェック=0、事前チェック=0
プラグマ: キャッシュなし
接続: 閉じる
コンテンツタイプ: テキスト/html;文字セット=UTF-8
コンテンツの長さ: 15252<html>
<head>
<title>内部チャットシステム</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div style="width:600px; margin: 0 auto; text-align: center">
<a href="/">
<img src="ey-logo.png" height="72" alt="EY">
</a>
<div style="margin-top:50px;">
<nav>
<a href="/index.php?page=messages">自分のメッセージ</a>メッセージ<a href="/index.php?logout">のログアウトを</a><a class="active" href="/index.php?page=new_message">送信</a>
</nav>
</div>
<div style="margin-top:20px;">
<div class='message_success'>送信されたメッセージ</div>
<form target="_self">
<div class="container">
<h1>新しいメッセージを送信する</h1>
<p>ユーザーを選択してメッセージ テキストを入力してください</p>
<hr>
<label for="login"><b>利用者</b></label>
<select type="text" name="login" id="login" required="">
<option value="1">管理者
<option value="2">利用者
<option value="4">prrrsihv
<option value="5">0
<option value="6">0
<option value="7">0
<option value="8">0
<option value="9">テスト"
<option value="10">ykq1o3wmfv
[...]
値="14">testgl11i"> <script>alert(1)</script> y9e06
<option
[…]</select></div></form></div></div></body></html>
推奨事項:
厳密な入力サニタイズ規則と出力エンコードの両方を組み込むことを強くお勧めします。 ' ' のような HTML 特殊文字<' and="" '="">は、<' and="" '="">ユーザー入力、データベース、およびファイルから読み取られるすべてのデータで</'>HTML エンコード (それぞれ ' ' ' に置き換えられます) にする必要があります。</'> 同じ意味は、 " ( " で置き換える必要があります ) や ' (円記号でエスケープする必要があります) などの文字に関係します。 さらに、厳密な入力サニタイズは、入力検証に対して異なるアプローチを意味します。 たとえば、変数が数値を保持するものである場合、変数が実際に数値であるかどうかを確認する方が良いです (^d+$ 正規表現に一致するか、整数キャストを使用した場合など) 、除外する可能性のある不正な文字をすべて見つけ出す代わりに、数値を指定することをお勧めします。 サーバー側とクライアント側の両方で行われる入力検証は必須です。 クライアント側での検証 (HTML/JavaScript、ユーザーが制御する Web ブラウザー) は DOM ベースのクロスサイトスクリプティングが発生しないようにします。 サーバー サイトでの検証では、標準 (非 DOM) クロスサイト スクリプティングを防止します。 セキュリティがクライアント側の検証のみに依存している場合、攻撃者は、このようなメカニズムをうまくバイパスして、代替インターフェイスを作成し、悪意を持って作成されたデータをサーバーに送信することは難しいものではありません。 サーバー側とクライアント側の両方に対して、厳密な入力検証を実装する必要があります。 ユーザーが指定した変数がデータベース/ファイルに書き込まれて、他のユーザーに表示される場合、そのような脆弱性は格納された XSS となり、認証されたユーザーに対して何も操作を行わずに使用できるため、はるかに危険です。 また、通常、格納された XSS 攻撃の規模は、反映された攻撃の場合よりも広くなります。
参考文献:
CWE-79
http://cwe.mitre.org/data/definitions/79.html
OWASP
http://www.owasp.org/index.php/Cross_Site_Scripting https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.md
4. 承認バイパス
CVSV3 スコア: 8.8
CVSS v3 ベクトル: AV:N/AC:L/PR:L/UI:N/S:U/C/I:H/H/H 重大
度: 高
検出:
アプリケーションの承認の実装が不十分である事が明らかになった。 リソースへの直接パスまたは特定の関数を呼び出す URL を知っているユーザーは、適切なロール付与を受けずにアクセスできます。 承認バイパスを使用すると、許可を与えることなく特定のアクションを実行できます。 たとえば、権限のないユーザーは、別のユーザー管理者を追加するなど、管理機能を実行できます。
証明:
メッセージにダイレクト URL を使用すると、ベルド URL のメッセージ ID を変更するだけで、誰もが自分に属さないメッセージを読むことができます: http://192.168.140.129/index.php?page=messages&message=1
推奨事項:
リソースまたは関数に対するすべての要求は、このアクションを呼び出したユーザーに適切なアクセス許可があるかどうかを適切に検査する必要があります。 URL/モジュール/機能ごとのエントリを持つACL(アクセス制御リスト)およびデフォルトのDENYポリシーのようなメカニズムの実装は強く推奨されます。
参考文献:
CWE-285
http://cwe.mitre.org/data/definitions/285.html
OWASP
https://www.owasp.org/index.php/Broken_Access_Control
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Access_Control_Cheat_Sheet.md
5. 既定または簡単に推測できるユーザー資格情報
CVSV3 スコア: 8.6
CVSS v3 ベクトル: AV:N/AC:L/PR:N/UI:N/S:U/C/I:L/L
重大度: 高
検索:
既定のユーザー資格情報または推測しやすいユーザー資格情報は、アプリケーションのセキュリティにとって非常に危険です。 あまりの努力を必要としない攻撃者は、アプリケーションのプライベート セクションにアクセスできます。 推測/クラックされたパスワードは、アプリケーションのプライベートセクションにログインし、承認されたユーザーへのピボット攻撃に使用することができます。 攻撃者は、アプリケーションを悪用するための領域を広くしています。
証明:
ペンスターは、アプリケーションで弱いパスワードを発見しました。 さらに、アプリケーションは弱い md5 ハッシュ方式を使用します。
ログイン ハッシュ パス
管理者 d8578edf8458ce06fbc5bb76a58c5ca4 qwerty
ユーザー 7815696ecbf1c96e6894b779456d330e asd
推奨事項:
アプリケーション内のすべてのデフォルト・パスワードを変更する必要があります。 アプリケーションでは、強力なパスワード ポリシーも採用する必要があります。
参考資料:
OWASP
https://www.owasp.org/index.php/Insecure_Configuration_Management
6. 暗号化されていないチャネルで送信される機密データ
CVSV3 スコア: 7.5
CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C/I:H/H/H 重大
度: 高
検索:
この脆弱性は、データの暗号化を実装しない HTTP プロトコルを介して機密データが送信された場合に発生します。 このチャネルを介して送信されるデータは、スニッフィングや改ざんの影響を受けやすくなります。
証明:
パスワードは、危険な方法を使用して暗号化されていないチャネルを使用して送信されます – 要求の種類を取得します。
http 経由で送信されたユーザーの登録に使用される要求:
GET /インデックス.php?ログイン =aaaa&psw=aaaa&psw-repeat=aa&ページ=レジスター HTTP/1.1
ホスト: 192.168.140.129
アップグレード -セキュリティで保護されていない要求: 1
ユーザーエージェント: モジラ/5.0 (Windows NT 10.0;Win64;x64) アップルウェブキット/537.36 (KHTML, ヤモリのような) クロム/89.0.4356.6 サファリ/537.36
受け入れる: テキスト/html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,画像/avif,画像/画像/apng,/;q=0.8,アプリケーション/署名入り交換;v=b3;q=0.9
審判: http://192.168.140.129/index.php?page=register
受け入れエンコーディング: gzip, デフレート
受け入れ言語: en-US,en;q=0.9,en-US;q=0.8,en;q=0.7
クッキー: adminer_version=4.7.8;PHPSESSID=142f35v6q1077q5krpj1ma23ki1
接続: 閉じる
http 経由で送信されたユーザーのログインに使用される要求:
GET /インデックス.php?ログイン =テスト&psw=テスト&ページ=ログイン HTTP/1.1
ホスト: 192.168.140.129
アップグレード -セキュリティで保護されていない要求: 1
ユーザーエージェント: モジラ/5.0 (Windows NT 10.0;Win64;x64) アップルウェブキット/537.36 (KHTML, ヤモリのような) クロム/89.0.4356.6 サファリ/537.36
受け入れる: テキスト/html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,画像/avif,画像/画像/apng,/;q=0.8,アプリケーション/署名入り交換;v=b3;q=0.9
審判: http://192.168.140.129/index.php?page=login
受け入れエンコーディング: gzip, デフレート
受け入れ言語: en-US,en;q=0.9,en-US;q=0.8,en;q=0.7
クッキー: adminer_version=4.7.8;PHPSESSID=142f35v6q1077q5krpj1ma23ki1
接続: 閉じる
推奨事項:
機密データを保護するには、HTTPS プロトコルを実装する必要があります。 また、HTTPSプロトコルが実装される場合、クッキーはセキュアフラグで保護されるべきであることに注意してください。 これにより、HTTP 経由でクッキーが送信されなくなります。
参考文献:
CWE-319
http://cwe.mitre.org/data/definitions/319.html
オワスプ
https://www.owasp.org/index.php/Testing_for_Credentials_Transported_over_an_Encrypted_Channel_(OWASP-AT-001)https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.md
7. 詳細なエラー メッセージ
CVSV3 スコア: 6.5
CVSS v3 ベクトル: AV:N/AC:L/PR:N/UI:N/S:U/C/I:N/A:N
重大度: 中
検索:
テスト中に、いくつかの要求の場合、サーバーがエラー例外をスローすることが明らかになっている。 例外メッセージには、ファイル名、絶対パス、ライブラリ、クラス、メソッドなど、多くの詳細な技術情報が含まれている場合があります。 この情報は、他の重要な攻撃(任意のファイル読み取り、コード実行、プラットフォーム固有の攻撃など)を実行する上で重要な場合があります。 このような詳細情報は、アプリケーション開発者とシステム管理者のみが利用でき、エンド ユーザーには公開しないでください。
証明:
要求:
GET /インデックス.php?ログイン=admin'%20または%20'1'&psw=xyz&ページ=ログインHTTP/1.1
ホスト: 192.168.140.129
アップグレード -セキュリティで保護されていない要求: 1
ユーザーエージェント: モジラ/5.0 (Windows NT 10.0;Win64;x64) アップルウェブキット/537.36 (KHTML, ヤモリのような) クロム/89.0.4356.6 サファリ/537.36
受け入れる: テキスト/html,アプリケーション/xhtml+xml,アプリケーション/xml;q=0.9,画像/avif,画像/画像/apng,/;q=0.8,アプリケーション/署名入り交換;v=b3;q=0.9
審判: http://192.168.140.129/index.php?page=login
受け入れエンコーディング: gzip, デフレート
受け入れ言語: en-US,en;q=0.9,en-US;q=0.8,en;q=0.7
クッキー: PHPSESSID=0f9k9rgvg5lqfpvuhem70eo73
接続: 閉じる
応答:
HTTP/1.1 200 OK
日時: 火, 05 Jan 2021 17:13:52 GMT
サーバー: アパッチ/2.4.6 (セントOS) PHP/5.4.16
Xパワードバイ: PHP/5.4.16
有効期限: 木, 1981 11月 19:52:00 GMT
キャッシュ制御: ノーストア、キャッシュなし、必ず再検証、後チェック=0、事前チェック=0
プラグマ: キャッシュなし
コンテンツの長さ: 753
接続: 閉じる
コンテンツタイプ: テキスト/html;文字セット=UTF-8<html>
<head>
<title>内部チャットシステム</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div style="width:600px; margin: 0 auto; text-align: center">
<a href="/">
<img src="ey-logo.png" height="72" alt="EY">
</a>
<div style="margin-top:50px;">
<nav>
<a href="/index.php?page=messages">自分のメッセージ</a>メッセージ<a href="/index.php?logout">のログアウトを</a><a href="/index.php?page=new_message">送信</a>
</nav>
</div>
<div style="margin-top:20px;">
<br />
<b>致命的なエラー</b>: <b>/var/www/html/login</b> の非オブジェクトに対するメンバー関数 fetch() の呼び出し.php オンライン <b>7</b><br /></div></div></body></html>
推奨事項:
詳細エラーはエンド・ユーザーに提供しないでください。 代わりに、わかりやすい静的エラー ページを指定する必要があります。 エラーの原因は、コード内で調査する必要があります。
参考文献:
OWASP
https://www.owasp.org/index.php/Information_Leakage
CWE-209
http://cwe.mitre.org/data/definitions/209.html
CWE-200: 情報暴露 http://cwe.mitre.org/data/definitions/200.html
王国: 環境
http://www.hpenterprisesecurity.com/vulncat/en/vulncat/intro.html https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Error_Handling_Cheat_Sheet.md
8. 情報開示
CVSV3 スコア: 5.3
CVSS v3 ベクトル: AV:N/AC:L/PR:N/UI:N/S:U/C/I:N/A:N
重大度: 低
検索:
機密情報がアプリケーションによって何らかの形で漏洩した場合に、情報漏えいの脆弱性が発生します。 たとえば、サーバーまたはアプリケーションの構成が公開されます。 この問題の重大度は、漏洩した情報によって異なります。
証明:
以下のようなファイルは一般にアクセスできません:
http://192.168.140.129/info.php http://192.168.140.129/adminer.php
ヘッダー内のサーバーとバージョンの開示:サーバー: Apache/2.4.6 (CentOS) PHP/5.4.16
クッキーで使用されるソフトウェアとバージョンの開示: クッキー: PHPSESSID=0f9k9rgvg5lqfpvuhem70eo73; adminer_version =4.7.8
推奨事項:
追加情報は漏洩しないでください。 ユーザーが必要とする情報のみを使用/提供する必要があります。
参考文献:
CWE-200
http://cwe.mitre.org/data/definitions/200.html
OWASP
https://www.owasp.org/index.php/Information_Leakage https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure
パート2 – 「チャレンジロケットによるEY GDS英国サイバーセキュリティチャレンジ」への異議申し立て
時には、私の知識とスキルの一部として、私はあらゆる種類のコース、トレーニング、セキュリティの課題に参加しています。 その一つが 、https://challengerocket.com/ey-cybersecurity-challenge/ で開催された「EY GDSポーランドサイバーセキュリティチャレンジ」です。 説明によると、それはセキュリティ監査を行うことで構成されました – 「Linuxとウェブポータル」の主催者を引用。 次に、レポートは結果に基づいて作成されます。 このファイルには、システムのセキュリティを脅かす脆弱性の説明と、セキュリティの全体的なレベルを上げる方法に関する推奨事項が含まれていました。 通知は短く簡潔で、脆弱性の簡単な説明と存在の証拠を含める必要があります。 すなわち、貫入試験を行う標準的な手順に従って、すべてが行われると言える。
競争の実像や、それに関連する疑問を明らかにするという問題に対する主催者の姿勢は、少し前向きな方法で私を驚かせました。 私のレポートは、何よりも「スキャナの結果はペンテストレポートではありません」と審査員を引用して、0ポイントと評価されました。
これは私にとって傷つく評価であり、私はこの問題をより正確に(予約のポイント6の考えられる原因)明確にしようとしましたが、要するに、毎週のメール(ほぼ1ヶ月間)に加えて、「いつかそこに答えるかもしれません」など、説明は得られませんでした。
したがって、このエントリは、私は「thendjaの頭」とその組織とその実施形態に関する私の予約とレポートを共有しています。 いくつかの欠点がありました。
それにもかかわらず、私は私の悪い経験は「一連の不幸な出来事」の結果であり、のれんの欠如ではないと信じています。 私はリストの形で予約を閉じ、彼らがウィリアム・エドワーズ・デミングのサイクルで役立つことを願っています:
- すべての楽しみは時々限られていました – 2h。 私の意見では、これは2つの浸透テストを実行し、完全なレポートに基づいて準備するにはあまりにも少ない時間です。
- 2番目の頭の中に参加するには、2つのVMのイメージをダウンロードしてマウントすることでした(利用可能な時間2hを使用)。 これは、予言的な技術的な理由から常に可能であるとは限りません。 私の意見では、VPNaを介してマシンへのアクセスが可能で、参加者が側でそれらを設定する必要がない場合、関係者にとっては簡単です。
- 2時間の制限は不当に省略される可能性があります – 偽のデータのアカウントを作成することによってタスクにアクセスします。 これに対する保護の唯一のポイントは、規制の規定でした: "4. 各参加者はコンペティションに登録し、コンペティションタスクを 1 回だけ受け付けることができます。 テストを開始した後、参加者は指定された制限時間内にそれを完了する必要があります。 テストが完了すると、再受験できなくなります。 複数のアカウントからコンペティションに登録し、複数回テストを受けようとする参加者は失格となります。 プラットフォームは、このようなアクションから保護しません。 ハッキングは違法であるため、安全なアプリを作成する必要はないと言っているようなものです。
- アクセスパスワードが動作しなかった/マシンの1つに誤りがあった。 これを報告した後、私はこの答えを得ました :「マシンへのアクセスに関しては、不適切な方法で間違ったデータを使用した可能性があります。 それは1台のマシンとは全く異なり、他のマシンよりもはるかに多くのアクセスです 。 私はこの意見の妥当性を言う立場にない。 私はマニュアルの手順に従って、それらに与えられたパスワードを使用しようとしました。 他の参加者から「クレイブ」もうまくいかなかったという情報を受け取りました。 マシンは、ftpサービスを介して別の方法でアクセスすることができます。 そうして初めて、なぜ誤解を招く指示?
- 「ウェブポータル」では、スクリプトが縫い付けられ、"ey-logger"という外部Webサーバにアクセスしました。 彼は「ウェブポータル」に登録時に電話をかけ、使用されたログインとパスワードを彼に送っていたので、これは奇妙な状況でした。 また、その際に、ゲームに参加している人々のIPアドレスにアクセスしました。 誰もがアプリケーション内の悪意のあるキーロガーを縫った? 私は誤ってそこに発見されたテストの残骸としてこの問題を評価しました。 しかし、主催者は、スクリプトの観点からは、 テストスクリプトではなく、XSS-Persistance(検出されるセキュリティ上の脆弱性の1つ)を持つ意図的に「奇妙な」スクリプトであると述べました。 アドレスはEYサーバー用ではなく、Azuraの重要で機能しないカミソリのためのものです。
- 侵入テストを完了し、次に進むフィールドをクリックしてレポートを含めた後、これは書式なしでクリア テキストを受け入れるウィンドウでのみ行えることが判明しました。 したがって、最終報告は読みやすさとグラフィックスを添付する可能性を欠いていた。 私はこれが私のレポートが 「スキャナの結果」として誤解された可能性がある理由かもしれないと思います。 私が言ったように、私は1ヶ月間実質的な答えを受け取っていないので、私はこれを最後まで説明できませんでした。
- 主催者は定期的にチャレンジの結果を公表しませんでした。 通常の時間を過ぎて、結果が表示される時期を尋ねた後、彼は密かに契約条件の日付を変更しました:
8. 主催者は、これが規制では起こらないという事実にもかかわらず、参加者の名前を明らかにしました – "4. コンペティション参加者が得た結果は、参加者の名前と姓を公表することなく、コンペティション終了後に発表されます。 それはGDPRの違反ですか?