Web 脆弱性の方法論
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 applications は通常何らかの intermediary proxies を利用しており、これらは脆弱性を悪用するために(悪)用される可能性があります。これらの脆弱性が成立するには脆弱な proxy が存在することが必要ですが、通常はバックエンド側の追加の脆弱性も必要になります。
- Abusing hop-by-hop headers
- Cache Poisoning/Cache Deception
- HTTP Connection Contamination
- HTTP Connection Request Smuggling
- HTTP Request Smuggling
- HTTP Response Smuggling / Desync
- H2C Smuggling
- Server Side Inclusion/Edge Side Inclusion
- Uncovering Cloudflare
- XSLT Server Side Injection
- Proxy / WAF Protections Bypass
ユーザー入力
Tip
ほとんどの web applications は後で処理されるデータの入力をユーザに許可します。サーバが期待するデータ構造によって、適用される脆弱性が変わる場合があります。
反映された値
入力したデータが何らかの形でレスポンスに反映される場合、そのページはいくつかの脆弱性の影響を受ける可能性があります。
- Client Side Path Traversal
- 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
上記の脆弱性の中には特別な条件が必要なものもあれば、単にコンテンツが反映されるだけで成立するものもあります。脆弱性を素早くテストするための興味深い polygloths は次で見つけられます:
Reflecting Techniques - PoCs and Polygloths CheatSheet
検索機能
その機能がバックエンド内のデータを検索するために使われる場合、任意のデータを検索するために(悪)用できる可能性があります。
- File Inclusion/Path Traversal
- NoSQL Injection
- LDAP Injection
- ReDoS
- SQL Injection
- ORM Injection
- RSQL Injection
- XPATH Injection
フォーム、WebSockets、PostMsgs
WebSocket がメッセージを送信したり、ユーザにアクションを実行させるフォームがあると脆弱性が発生することがあります。
- Cross Site Request Forgery
- Cross-site WebSocket hijacking (CSWSH)
- Phone Number Injections
- PostMessage Vulnerabilities
Cross-site WebSocket hijacking & localhost abuse
WebSocket のアップグレードはクッキーを自動的に転送し、ws://127.0.0.1 をブロックしないため、任意の web origin が Origin 検証をスキップするデスクトップ IPC エンドポイントを操作できる場合があります。ローカルエージェントを通じて JSON-RPC ライクな API を公開しているランチャーを見つけたら:
- 送出されるフレームを観察して、各メソッドに必要な
type/name/argsタプルを複製します。 - ブラウザから直接リッスンポートを総当たりし(Chromium は約16k の失敗したアップグレードを処理できます)、ループバックソケットがプロトコルバナーで応答するまで試行します — 同じ負荷では Firefox はすぐにクラッシュする傾向があります。
- create → privileged action のペアを連鎖させます。例:GUID を返す
create*メソッドを呼び出し、直ちに対応する*Launch*メソッドを攻撃者制御のペイロードで呼び出します。
任意の JVM フラグ(例えば AdditionalJavaArguments)を渡せる場合、-XX:MaxMetaspaceSize=<tiny> でエラーを強制し、-XX:OnOutOfMemoryError="<cmd>" を付けることでアプリケーションロジックに触れることなく OS コマンドを実行できます。手順は WebSocket attacks を参照してください。
HTTP ヘッダ
Web サーバが返す HTTP ヘッダによっては、いくつかの脆弱性が存在する場合があります。
- Clickjacking
- Iframe Traps / Click Isolation
- Content Security Policy bypass
- Cookies Hacking
- CORS - Misconfigurations & Bypass
バイパス
特定の機能では回避策が有用な場合があります。
- 2FA/OTP Bypass
- Bypass Payment Process
- Captcha Bypass
- Account Takeover Playbooks
- Login Bypass
- Race Condition
- Rate Limit Bypass
- Reset Forgotten Password Bypass
- Registration Vulnerabilities
構造化オブジェクト / 特定の機能
一部の機能は(言語のシリアライズオブジェクトや XML のように)データを非常に特定のフォーマットで構造化することを要求します。そのため、その種のデータを処理しているかどうかでアプリケーションが脆弱かどうかを判断しやすくなります。特定の機能は、入力が特定のフォーマットである場合にも脆弱になることがあります(例:Email Header Injections)。
- Deserialization
- Email Header Injection
- JWT Vulnerabilities
- JSON / XML / YAML Hacking
- XML External Entity
- GraphQL Attacks
- gRPC-Web Attacks
- SOAP/JAX-WS ThreadLocal Auth Bypass
ファイル
ファイルをアップロードできる機能は複数の問題に対して脆弱な可能性があります。ユーザ入力を含むファイルを生成する機能は、予期しないコードを実行することがあります。ユーザがユーザによってアップロードされた、またはユーザ入力を含む自動生成されたファイルを開くと、危害を受ける可能性があります。
外部アイデンティティ管理
その他の有用な脆弱性
これらの脆弱性は他の脆弱性を悪用するうえで役立つことがあります。
- Domain/Subdomain takeover
- IDOR
- Mass Assignment (CWE-915)
- Parameter Pollution
- Unicode Normalization vulnerability
Web サーバ & ミドルウェア
エッジスタックのミスコンフィグレーションは、アプリケーション層でより重大なバグの引き金になることがよくあります。
- Apache
- Nginx
- IIS
- Tomcat
- Spring Actuators
- PUT Method / WebDAV
- Special HTTP Headers
- WSGI Deployment
- Werkzeug Debug Exposure
アプリケーションフレームワーク & スタック
フレームワーク固有のプリミティブは、しばしばガジェット、危険なデフォルト設定、あるいはフレームワークが所有するエンドポイントを露出させます。
CMS、SaaS & マネージドプラットフォーム
攻撃対象面が大きい製品は、既知のエクスプロイト、脆弱なプラグイン、あるいは特権的な管理者エンドポイントを同梱していることがよくあります。
- WordPress
- Joomla
- Drupal
- Moodle
- Prestashop
- Atlassian Jira
- Grafana
- Rocket.Chat
- Zabbix
- Microsoft SharePoint
- Sitecore
API、バケット & 統合
サーバサイドのヘルパーやサードパーティ統合は、ファイル解析やストレージ層の弱点を露出させることがあります。
- Web API Pentesting
- Storage Buckets & Firebase
- Imagemagick Security
- Artifactory & Package Registries
- Code Review Tooling
サプライチェーン & 識別子の悪用
ビルドパイプラインや予測可能な識別子を狙う攻撃は、従来のバグを悪用する前の初期足がかりとなることがあります。
Web3、拡張機能 & ツール
現代のアプリケーションはブラウザ、ウォレット、オートメーションパイプラインに拡張されているため、これらのベクタも対象に含めてください。
参考文献
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を提出してハッキングトリックを共有してください。


