PHP文件包含漏洞利用phpinfo写入webshell

带有PHPINFO的PHP本地文件包含RCE

by ADummy

0x00利用路线

​ 执行exp—>getshell

​ 适用于有本地文件包含漏洞,有phpinfo,怎么写入webshell的情况

0x01漏洞介绍

​ 在PHP文件包含漏洞中,当我们找不到要触发RCE的有效文件时,如果有PHPINFO可以告诉我们随机生成的临时文件名及其位置,则可能可以包含一个临时文件来利用它来利用它。

启动环境后,可访问http://your-ip:8080/phpinfo.php以获取PHPINFO页面并http://your-ip:8080/lfi.php?file=/etc/passwd显示存在LFI漏洞。

利用细节

​ 当向php发送POST请求并且该请求包含FILE块时,PHP会将发布的文件保存到一个临时文件中(通常为/tmp/php[6 random digits]),该文件名可以在$_FILES变量中找到。请求结束后,该临时文件将被删除。

​ 同时,PHPINFO页面显示上下文中的所有变量,包括$_FILES。因此,如果我们将POST请求发送到PHPINFO页面,则可以在响应中找到临时文件的名称。

这样,就可以将LFI漏洞升级为RCE,而无需存在可用的本地文件。

​ 文件包含和PHPINFO通常位于不同的网页中。从理论上讲,我们需要在文件上传请求到PHPINFO页面的响应中检索文件名之后,才将文件名发送到文件包含页面。但是,在第一个请求完成后,该文件将从磁盘中删除,因此我们需要赢得比赛。

脚步:

  1. 将文件上传请求发送到PHPINFO页面,其中HEADER和GET字段填充了大块垃圾数据。
  2. 响应内容将是巨大的,因为PHPINFO将打印出所有数据。
  3. PHP的默认输出缓冲区大小为4096字节。可以理解为PHP在套接字连接期间每次返回4096字节。
  4. 因此,我们使用原始套接字来实现我们的目标。每次我们读取4096个字节并将文件名发送到LFI页面时,就将其发送给LFI页面。
  5. 到我们获得文件名时,第一个套接字连接尚未结束,这意味着临时文件在那时仍然存在。
  6. 通过利用时间间隔,可以包含并执行临时文件

0x02漏洞复现

python脚本exp.py实现了上述过程。成功包含临时文件后,<?php file_put_contents('/tmp/g', '<?=eval($_REQUEST[1])?>')?>将执行以生成永久文件/tmp/g以供进一步使用。

在这里插入图片描述
在这里插入图片描述
文件写入成功,蚁剑连接
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP文件包含漏洞是一种常见的Web安全漏洞,攻击者可以利用该漏洞通过包含恶意文件来执行任意代码。其中,利用phpinfo函数可以获取服务器的详细信息,包括PHP版本、操作系统、配置文件路径等,攻击者可以利用这些信息来进一步攻击服务器。因此,对于PHP文件包含漏洞,我们需要及时修复漏洞并加强服务器的安全防护措施,以保障网站的安全性。 ### 回答2: php文件包含漏洞是一种常见的Web应用程序漏洞,它允许攻击者在没有正常访问权限的情况下获取Web应用程序的敏感数据和系统资源。利用phpinfo函数,攻击者可以获得关于Web服务器和PHP环境的详细信息,包括内存使用情况、PHP模块的版本、系统路径、配置文件名等等,这些信息可用于进一步攻击或收集有关系统的信息。 通常情况下,php文件包含漏洞产生的原因是由于Web应用程序没有正确的过滤和验证用户输入,并允许用户传递文件名或路径。如果攻击者可以在该位置输入恶意代码,他们就可以通过访问特定的URL,向web服务器请求文件或脚本来执行所需的操作。 对于php文件包含漏洞,攻击者可以利用phpinfo函数来获取大量有关Web服务器和PHP配置的信息。如果攻击者可以获取此信息,他们将更容易地了解Web服务器的配置和缺陷,从而定向和更容易地入侵目标系统。例如,攻击者可以使用所收集到的信息来寻找系统上的其他漏洞,或者在成功入侵后利用该信息来控制服务器,尝试使用系统权限执行任意代码或更改配置。 为了保护Web应用程序安全,我们可以采取以下措施来防止php文件包含漏洞的发生: 1. 使用安全的编程实践来避免不可信数据输入 2. 防止对敏感资源和服务器配置文件的读取 3. 激活PHP配置参数,如open_basedir,以限制PHP访问的目录 4. 限制Web服务器的目录访问权限 5. 定期检查服务器日志来检测异常行为和攻击行为 6. 采用安全的编程方法避免可能的错误,并保持对最新漏洞和安全威胁的关注 php文件包含漏洞可能会导致非常严重的安全问题,所以应采取有效的措施来保护Web应用程序和服务器的安全。通过实践良好的编程实践和安全性控制策略,可以帮助我们保护Web应用程序不受恶意攻击的影响,从而确保我们的数据和系统的安全性。 ### 回答3: PHP文件包含漏洞是一种常见的网络安全漏洞。它的存在导致黑客可以利用这个漏洞通过访问包含文件来执行任意代码并控制整个服务器。 PHP文件包含漏洞的根源在于PHP提供了一种方便的方式来包含另一个文件中的代码,这种方式是通过 include() 或 require() 函数实现的。这些函数接受一个文件名作为参数,然后将该文件中的代码“拷贝并粘贴”到当前的PHP文件中。这个机制的漏洞是黑客可以通过传递带有恶意代码的参数来包含任意文件,这可能是远程服务器上的PHP脚本,也可能是包含恶意代码的本地文件。 PHPInfo是一个php的系统信息函数,负责显示PHP配置和环境信息。这里,黑客可以利用PHPInfo来寻找服务器的弱点,并进一步利用php文件包含漏洞。通过读入php.ini一个配置文件,该函数可以泄漏服务器的所有信息,包括文件路径、数据库密码、服务器版本、PHP版本等等。 黑客可以通过以下步骤来利用php文件包含漏洞和phpinfo()函数进一步渗透服务器: 1. 使用phpinfo()函数来获取服务器的系统信息和配置信息 2. 解析得到的信息,寻找PHP文件包含漏洞的存在 3. 通过向include()或require()函数传递恶意文件来执行任意代码并控制服务器 为了避免这些漏洞,PHP开发者应该始终验证来自用户的输入。对于文件包含,应该限制包含文件的范围,禁止包含远程文件,并使用白名单来确定包含文件的位置。同时,应该禁用phpinfo()函数或者确保它只在受信任的环境中使用。 维护者还可以使用一些工具例如模糊测试技术、代码审计等来发现并修复这些漏洞。实施彻底的安全措施对于预防这些漏洞的产生非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值