Web 脆弱性の方法論

Reading time: 8 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

In every Web Pentest, there are several hidden and obvious places that might be vulnerable. This post is meant to be a checklist to confirm that you have searched for vulnerabilities in all the possible places.

プロキシ

tip

現在、Web アプリケーション は通常 何らかの 中間プロキシ を使用しており、これらは脆弱性を悪用するために (ab)used されることがあります。これらの脆弱性は脆弱なプロキシの存在を前提としますが、通常バックエンド側の追加の脆弱性も必要です。

ユーザー入力

tip

ほとんどの web アプリケーションは 後で処理されるデータの入力をユーザーに許可します。
サーバーが期待するデータ構造によって、適用される脆弱性が変わる場合があります。

反映される値

入力されたデータが何らかの形でレスポンスに反映される場合、ページはいくつかの問題に対して脆弱である可能性があります。

Some of the mentioned vulnerabilities require special conditions, others just require the content to be reflected. You can find some interesting polygloths to test quickly the vulnerabilities in:

Reflecting Techniques - PoCs and Polygloths CheatSheet

検索機能

機能がバックエンド内のデータを検索するために使われる場合、それを (ab)use して任意のデータを検索できる可能性があります。

Forms, WebSockets and PostMsgs

WebSocket がメッセージを送信したり、ユーザーがアクションを実行できるフォームがある場合、脆弱性が発生する可能性があります。

HTTP ヘッダ

ウェブサーバーが返す HTTP ヘッダによっては、いくつかの脆弱性が存在する可能性があります。

バイパス

いくつかの特定の機能には、それらをバイパスするための回避策が有用な場合があります

構造化オブジェクト / 特定の機能

一部の機能は、データが非常に特定のフォーマットで構造化されていること(言語のシリアライズされたオブジェクトや XML のような)を要求します。そのため、アプリケーションがその種のデータを処理しているかどうかを確認すれば脆弱性の有無を判断しやすくなります。
一部の特定の機能は、入力が特定のフォーマットである場合(like Email Header Injections)のように脆弱になることもあります。

ファイル

ファイルのアップロードを許可する機能は、いくつかの問題に対して脆弱である可能性があります。
ユーザー入力を含むファイルを生成する機能は、予期しないコードを実行する可能性があります。
ユーザーが、他のユーザーによってアップロードされたファイルや自動生成されたユーザー入力を含むファイルを開くと、危険にさらされる可能性があります。

External Identity Management

その他の役立つ脆弱性

これらの脆弱性は、他の脆弱性を悪用するのに役立つ場合があります。

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする