记一次挖掘公益SRC通过laravel配置不当进数据库
字数 1146 2025-08-12 11:34:11

Laravel框架配置不当导致敏感数据泄露漏洞分析与利用

漏洞概述

Laravel框架因配置不当会泄露MySQL、Redis、Elastic、Mongodb、neo4j、postgresql、SQLServer、Oracle、Firebird、sqlite等数据库账号密码以及APP_KEY等敏感信息。该漏洞在调试模式(Debug模式)开启时,通过触发错误可以暴露这些敏感数据。

漏洞发现过程

  1. 初始渗透尝试

    • 通过弱口令进入后台
    • 尝试文件上传漏洞,发现白名单限制
    • 尝试绕过方法(文件头伪造、解析漏洞等)未果
  2. 漏洞发现

    • 访问需要登录的URL时未登录,触发报错
    • 报错页面泄露了Laravel框架的敏感信息
    • 确认存在Laravel框架配置不当漏洞

漏洞检测方法

  1. 识别目标使用Laravel框架
  2. 在任意页面(如登录页面)抓包
  3. 修改HTTP方法(如将GET改为PUT/POST等非常规方法)
  4. 观察是否触发debug模式并返回敏感信息

漏洞利用步骤

  1. 触发debug模式

    http://target.com/admin/upload_img/article_cover
    

    使用非常规HTTP方法(PUT/DELETE等)访问

  2. 获取泄露信息

    • 数据库连接信息(MySQL/Redis等)
    • APP_KEY等敏感配置
  3. 数据库连接利用

    • 使用泄露的MySQL账号密码连接数据库
    • 检查secure_file_priv设置:
      SHOW VARIABLES LIKE 'secure_file_priv';
      
    • 尝试写Webshell:
      • secure_file_priv为NULL或特定目录,尝试写入
      • 使用日志文件写入方法(需找到合适文件追加)
  4. 进一步利用

    • 若3306端口开放且IP可访问,直接连接
    • 若连接地址不出网,考虑其他利用方式

文件上传绕过技术(补充)

虽然与Laravel漏洞无关,但原文中提到的文件上传绕过技术值得记录:

  1. 白名单绕过方法

    • 配合Web容器解析漏洞
    • %00截断上传绕过
    • 文件头内容检测绕过
  2. 文件头特征值

    • .jpg: FF D8 FF E0
    • .gif: 47 49 46 38 (GIF89a)
    • .png: 89 50 4E 47
    • .html: 68 74 6D 6C 3E 10
    • .xml: 3C 3F 78 6D 6C
  3. 解析漏洞利用

    • 如Nginx 1.16.1可能存在解析漏洞
    • 尝试在文件名后添加.php使其以PHP解析

漏洞修复建议

  1. 生产环境务必关闭Debug模式
  2. 设置APP_DEBUG=false在.env文件中
  3. 限制错误信息的显示
  4. 使用Laravel官方推荐的安全配置
  5. 定期检查框架配置和敏感信息泄露

总结

该漏洞危害严重,可导致多种数据库凭证泄露。在实际测试中发现大量Laravel框架网站存在此问题。通过泄露的信息可能进一步获取服务器权限,特别是在结合其他漏洞(如文件上传、数据库写权限等)的情况下。

Laravel框架配置不当导致敏感数据泄露漏洞分析与利用 漏洞概述 Laravel框架因配置不当会泄露MySQL、Redis、Elastic、Mongodb、neo4j、postgresql、SQLServer、Oracle、Firebird、sqlite等数据库账号密码以及APP_ KEY等敏感信息。该漏洞在调试模式(Debug模式)开启时,通过触发错误可以暴露这些敏感数据。 漏洞发现过程 初始渗透尝试 : 通过弱口令进入后台 尝试文件上传漏洞,发现白名单限制 尝试绕过方法(文件头伪造、解析漏洞等)未果 漏洞发现 : 访问需要登录的URL时未登录,触发报错 报错页面泄露了Laravel框架的敏感信息 确认存在Laravel框架配置不当漏洞 漏洞检测方法 识别目标使用Laravel框架 在任意页面(如登录页面)抓包 修改HTTP方法(如将GET改为PUT/POST等非常规方法) 观察是否触发debug模式并返回敏感信息 漏洞利用步骤 触发debug模式 : 使用非常规HTTP方法(PUT/DELETE等)访问 获取泄露信息 : 数据库连接信息(MySQL/Redis等) APP_ KEY等敏感配置 数据库连接利用 : 使用泄露的MySQL账号密码连接数据库 检查 secure_file_priv 设置: 尝试写Webshell: 若 secure_file_priv 为NULL或特定目录,尝试写入 使用日志文件写入方法(需找到合适文件追加) 进一步利用 : 若3306端口开放且IP可访问,直接连接 若连接地址不出网,考虑其他利用方式 文件上传绕过技术(补充) 虽然与Laravel漏洞无关,但原文中提到的文件上传绕过技术值得记录: 白名单绕过方法 : 配合Web容器解析漏洞 %00截断上传绕过 文件头内容检测绕过 文件头特征值 : .jpg: FF D8 FF E0 .gif: 47 49 46 38 (GIF89a) .png: 89 50 4E 47 .html: 68 74 6D 6C 3E 10 .xml: 3C 3F 78 6D 6C 解析漏洞利用 : 如Nginx 1.16.1可能存在解析漏洞 尝试在文件名后添加 .php 使其以PHP解析 漏洞修复建议 生产环境务必关闭Debug模式 设置 APP_DEBUG=false 在.env文件中 限制错误信息的显示 使用Laravel官方推荐的安全配置 定期检查框架配置和敏感信息泄露 总结 该漏洞危害严重,可导致多种数据库凭证泄露。在实际测试中发现大量Laravel框架网站存在此问题。通过泄露的信息可能进一步获取服务器权限,特别是在结合其他漏洞(如文件上传、数据库写权限等)的情况下。