mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
56 lines
5.7 KiB
Markdown
56 lines
5.7 KiB
Markdown
# Web API Pentesting
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## API Pentesting Methodology Summary
|
||
|
||
APIのペンテストは、脆弱性を発見するための体系的なアプローチを含みます。このガイドは、実用的な技術とツールを強調した包括的な方法論を要約しています。
|
||
|
||
### **Understanding API Types**
|
||
|
||
- **SOAP/XML Web Services**: ドキュメントのためにWSDL形式を利用し、通常は`?wsdl`パスで見つかります。**SOAPUI**や**WSDLer**(Burp Suite Extension)などのツールは、リクエストの解析と生成に役立ちます。例のドキュメントは[DNE Online](http://www.dneonline.com/calculator.asmx)でアクセス可能です。
|
||
- **REST APIs (JSON)**: ドキュメントはWADLファイルで提供されることが多いですが、[Swagger UI](https://swagger.io/tools/swagger-ui/)のようなツールは、インタラクションのためのよりユーザーフレンドリーなインターフェースを提供します。**Postman**は、例のリクエストを作成および管理するための貴重なツールです。
|
||
- **GraphQL**: APIのためのクエリ言語で、API内のデータの完全で理解可能な説明を提供します。
|
||
|
||
### **Practice Labs**
|
||
|
||
- [**VAmPI**](https://github.com/erev0s/VAmPI): OWASPトップ10 API脆弱性をカバーするための実践的な練習用に意図的に脆弱なAPIです。
|
||
|
||
### **Effective Tricks for API Pentesting**
|
||
|
||
- **SOAP/XML Vulnerabilities**: XXE脆弱性を探求しますが、DTD宣言はしばしば制限されています。XMLが有効なままであれば、CDATAタグはペイロードの挿入を許可する場合があります。
|
||
- **Privilege Escalation**: 権限レベルが異なるエンドポイントをテストして、不正アクセスの可能性を特定します。
|
||
- **CORS Misconfigurations**: 認証されたセッションからのCSRF攻撃を通じて、潜在的な悪用可能性のためにCORS設定を調査します。
|
||
- **Endpoint Discovery**: APIパターンを利用して隠れたエンドポイントを発見します。ファジングツールのようなツールは、このプロセスを自動化できます。
|
||
- **Parameter Tampering**: リクエスト内のパラメータを追加または置き換えて、不正なデータや機能にアクセスすることを試みます。
|
||
- **HTTP Method Testing**: リクエストメソッド(GET、POST、PUT、DELETE、PATCH)を変えて、予期しない動作や情報漏洩を発見します。
|
||
- **Content-Type Manipulation**: 異なるコンテンツタイプ(x-www-form-urlencoded、application/xml、application/json)を切り替えて、解析の問題や脆弱性をテストします。
|
||
- **Advanced Parameter Techniques**: JSONペイロード内で予期しないデータ型を使用してテストしたり、XXEインジェクションのためにXMLデータを操作したりします。また、パラメータ汚染やワイルドカード文字を試して、より広範なテストを行います。
|
||
- **Version Testing**: 古いAPIバージョンは攻撃に対してより脆弱である可能性があります。常に複数のAPIバージョンに対して確認し、テストを行います。
|
||
|
||
### **Tools and Resources for API Pentesting**
|
||
|
||
- [**kiterunner**](https://github.com/assetnote/kiterunner): APIエンドポイントを発見するのに優れています。ターゲットAPIに対してパスやパラメータをスキャンおよびブルートフォースするために使用します。
|
||
```bash
|
||
kr scan https://domain.com/api/ -w routes-large.kite -x 20
|
||
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
|
||
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
|
||
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
|
||
```
|
||
- [**https://github.com/BishopFox/sj**](https://github.com/BishopFox/sj): sjは、関連するAPIエンドポイントの弱い認証をチェックすることによって、**公開されたSwagger/OpenAPI定義ファイル**の監査を支援するために設計されたコマンドラインツールです。また、手動の脆弱性テストのためのコマンドテンプレートも提供します。
|
||
- **automatic-api-attack-tool**、**Astra**、および**restler-fuzzer**のような追加ツールは、攻撃シミュレーションからファジング、脆弱性スキャンに至るまで、APIセキュリティテストのための特化した機能を提供します。
|
||
- [**Cherrybomb**](https://github.com/blst-security/cherrybomb): OASファイルに基づいてAPIを監査するAPIセキュリティツールです(このツールはRustで書かれています)。
|
||
|
||
### **学習と実践リソース**
|
||
|
||
- **OWASP API Security Top 10**: 一般的なAPIの脆弱性を理解するための必読書です ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf))。
|
||
- **API Security Checklist**: APIを保護するための包括的なチェックリストです ([GitHub link](https://github.com/shieldfy/API-Security-Checklist))。
|
||
- **Logger++ Filters**: APIの脆弱性を探すために、Logger++は便利なフィルターを提供します ([GitHub link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters))。
|
||
- **API Endpoints List**: テスト目的のための潜在的なAPIエンドポイントのキュレーションリストです ([GitHub gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d))。
|
||
|
||
## 参考文献
|
||
|
||
- [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|