LFI2RCE via phpinfo()
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
この脆弱性を悪用するには、LFI脆弱性、phpinfo()が表示されるページ、"file_uploads = on"、およびサーバーが"/tmp"ディレクトリに書き込むことができる必要があります。
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
チュートリアル HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
エクスプロイトを修正する必要があります(**=>を=>**に変更)。そのためには、次のようにできます:
あなたは、エクスプロイトの最初にあるpayloadも変更する必要があります(例えば、php-rev-shell用)、REQ1(これはphpinfoページを指し、パディングが含まれている必要があります、すなわち:REQ1="""POST /install.php?mode=phpinfo&a="""+padding+""" HTTP/1.1)、およびLFIREQ(これはLFI脆弱性を指す必要があります、すなわち:LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r -- ヌル文字を悪用する際のダブル "%" に注意してください)
PHPでアップロードが許可されている場合、ファイルをアップロードしようとすると、このファイルはサーバーがリクエストの処理を完了するまで一時ディレクトリに保存され、その後この一時ファイルは削除されます。
次に、ウェブサーバーにLFI脆弱性が見つかった場合、一時ファイルの名前を推測し、そのファイルにアクセスして削除される前にRCEを悪用することができます。
Windowsでは、ファイルは通常C:\Windows\temp\phpに保存されます。
Linuxでは、ファイルの名前はランダムで、/tmpにあります。名前がランダムであるため、一時ファイルの名前をどこかから抽出する必要があり、削除される前にアクセスする必要があります。これは、関数"phpconfig()"の内容内で変数$_FILESの値を読み取ることで行うことができます。
phpinfo()
PHPは4096Bのバッファを使用し、満杯になると、クライアントに送信されます。次に、クライアントは大きなリクエストをたくさん送信(大きなヘッダーを使用)し、phpリバースシェルをアップロードし、phpinfo()の最初の部分が返されるのを待ち(一時ファイルの名前がある場所)、LFI脆弱性を悪用してphpサーバーがファイルを削除する前に一時ファイルにアクセスしようとします。
名前をブルートフォースするためのPythonスクリプト(長さ = 6の場合)
あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)