PHP漏洞在白盒审计中的技巧(4)——PHP伪协议利用

💡 原文中文,约6600字,阅读约需16分钟。
📝

内容提要

本文探讨了PHP伪协议的多种攻击方式,包括利用php://filter、php://input、data://、zip://和phar://协议进行代码执行和文件包含攻击。同时,文章提供了防御策略,如输入过滤、禁用危险配置和代码加固,以防止这些漏洞的利用。

🎯

关键要点

  • PHP伪协议攻击方式包括php://filter、php://input、data://、zip://和phar://协议。
  • php://filter可用于读取敏感文件源码,通过Base64编码绕过文件包含。
  • php://input可执行任意代码,通过POST请求注入PHP代码。
  • data://协议可直接执行Base64编码的PHP代码,若allow_url_include开启则直接执行。
  • zip://和phar://协议可利用上传恶意文件进行攻击,需注意文件内容校验。
  • 防御策略包括输入过滤、禁用危险配置和代码加固,避免动态包含用户输入。
  • 多层过滤器链可绕过关键字过滤,利用组合过滤器实现攻击。
  • glob://协议可遍历目录结构,帮助攻击者发现敏感文件。
  • 特殊场景下,ogg://协议可触发反序列化攻击,需禁用非常用扩展。
  • WAF可通过编码转换绕过,需注意UTF-16编码的攻击方式。
  • PHAR文件可通过远程URL包含触发,需确保allow_url_include开启。
➡️

继续阅读