LFI2RCE via PHP Filters

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)arrow-up-righthashtag

支持HackTricks的其他方式:

简介

这篇解说文arrow-up-right解释了您可以使用php过滤器生成任意内容作为输出。这基本上意味着您可以生成任意的php代码以供包含,而无需将其写入文件中。

脚本的目标基本上是在文件的开头生成一个Base64字符串,最终解码提供所需的有效负载,将由include解释

实现这一目标的基础是:

  • convert.iconv.UTF8.CSISO2022KR将始终在字符串前面添加\x1b$)C

  • convert.base64-decode非常宽容,它基本上只会忽略任何无效的base64字符。如果发现意外的"=",可能会出现一些问题,但可以使用convert.iconv.UTF8.UTF7过滤器将其移除。

生成任意内容的循环为:

  1. 如上所述,在我们的字符串前面添加\x1b$)C

  2. 应用一些iconv转换链,使我们的初始base64保持不变,并将我们刚刚添加的部分转换为一些字符串,其中唯一有效的base64字符是我们的base64编码的php代码的下一部分

  3. 对字符串进行base64解码和base64编码,这将删除中间的任何垃圾

  4. 如果要构造的base64尚未完成,则返回到步骤1

  5. base64解码以获取我们的php代码

circle-exclamation

如何还添加后缀到结果数据

这篇解说文解释了arrow-up-right您仍然可以滥用PHP过滤器向结果字符串添加后缀。

自动化工具

完整脚本

改进

先前的脚本仅限于该有效负载所需的base64字符。因此,我创建了自己的脚本来暴力破解所有的base64字符

以下是获取生成每个b64字母的编码的脚本

更多参考资料

chevron-right从零开始学习AWS黑客技术 htARTE (HackTricks AWS Red Team Expert)arrow-up-right!hashtag

支持HackTricks的其他方式:

最后更新于