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をサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
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 されることがあります。これらの脆弱性は脆弱なプロキシの存在を前提としますが、通常バックエンド側の追加の脆弱性も必要です。
- Abusing hop-by-hop headers
- Cache Poisoning/Cache Deception
- HTTP Request Smuggling
- H2C Smuggling
- Server Side Inclusion/Edge Side Inclusion
- Uncovering Cloudflare
- XSLT Server Side Injection
- Proxy / WAF Protections Bypass
ユーザー入力
tip
ほとんどの web アプリケーションは 後で処理されるデータの入力をユーザーに許可します。
サーバーが期待するデータ構造によって、適用される脆弱性が変わる場合があります。
反映される値
入力されたデータが何らかの形でレスポンスに反映される場合、ページはいくつかの問題に対して脆弱である可能性があります。
- Client Side Template Injection
- Command Injection
- CRLF
- Dangling Markup
- File Inclusion/Path Traversal
- Open Redirect
- Prototype Pollution to XSS
- Server Side Inclusion/Edge Side Inclusion
- Server Side Request Forgery
- Server Side Template Injection
- Reverse Tab Nabbing
- XSLT Server Side Injection
- XSS
- XSSI
- XS-Search
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 ヘッダによっては、いくつかの脆弱性が存在する可能性があります。
バイパス
いくつかの特定の機能には、それらをバイパスするための回避策が有用な場合があります
- 2FA/OTP Bypass
- Bypass Payment Process
- Captcha Bypass
- Login Bypass
- Race Condition
- Rate Limit Bypass
- Reset Forgotten Password Bypass
- Registration Vulnerabilities
構造化オブジェクト / 特定の機能
一部の機能は、データが非常に特定のフォーマットで構造化されていること(言語のシリアライズされたオブジェクトや XML のような)を要求します。そのため、アプリケーションがその種のデータを処理しているかどうかを確認すれば脆弱性の有無を判断しやすくなります。
一部の特定の機能は、入力が特定のフォーマットである場合(like Email Header Injections)のように脆弱になることもあります。
- Deserialization
- Email Header Injection
- JWT Vulnerabilities
- XML External Entity
- GraphQL Attacks
- gRPC-Web Attacks
ファイル
ファイルのアップロードを許可する機能は、いくつかの問題に対して脆弱である可能性があります。
ユーザー入力を含むファイルを生成する機能は、予期しないコードを実行する可能性があります。
ユーザーが、他のユーザーによってアップロードされたファイルや自動生成されたユーザー入力を含むファイルを開くと、危険にさらされる可能性があります。
External Identity Management
その他の役立つ脆弱性
これらの脆弱性は、他の脆弱性を悪用するのに役立つ場合があります。
- Domain/Subdomain takeover
- IDOR
- Mass Assignment (CWE-915)
- Parameter Pollution
- Unicode Normalization vulnerability
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をサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
HackTricks