目录
复现思路
在PHP文件包含漏洞中,当我们无法找到用于触发RCE的有效文件时,如果存在可以告诉我们临时文件随机生成的文件名及其位置的PHPINFO,我们可能可以包含临时文件进行攻击。
漏洞原因
PHP文件包含漏洞是PHP网站开发中常见的漏洞形式, 主要是由于对包含函数应用不当、代码书写习惯不当等造成的。
利用漏洞详细信息
当向PHP发送POST请求且该请求包含FILE块时,PHP会将发布的文件保存到临时文件中(通常为/tmp/php[6 random digits]
),文件名位于$文件
变量。请求结束后,此临时文件将被删除。
同时,PHPINFO页面打印上下文中的所有变量,包括$_FILES
因此,如果我们向PHPINFO页面发送POST请求,则可以在响应中找到临时文件的名称。
通过这种方式,LFI漏洞可以升级为RCE,而不需要存在可用的本地文件。
文件包含和PHPINFO通常位于不同的网页中。理论上,我们需要在检索到PHPINFO页面的文件上传请求响应中的文件后,将文件名发送到