Skip to content

硬编码的默认管理员凭据 #620

@kai0sec

Description

@kai0sec

项目在 database/seeds/UsersSeeder.php 文件中包含硬编码的默认管理员凭据,可能导致未经授权的访问。

漏洞详情:

漏洞点:
database/seeds/UsersSeeder.php 文件中的 UsersSeeder 类。

漏洞描述:
database/seeds/UsersSeeder.php 文件包含硬编码的默认管理员凭据:emailadmin@qq.compassword123456。尽管密码使用了 bcrypt() 进行哈希处理,但密码本身非常弱且常见。如果在生产环境中运行此种子文件而未更改或删除这些凭据,将带来严重的安全风险。

漏洞影响:

  • 未授权访问: 任何知道这些默认用户名和密码的人都可以获得系统的管理员权限。
  • 账户接管: 如果 admin@qq.com 账户未被更改,攻击者可以轻易登录。
  • 数据泄露/系统入侵: 一旦登录,攻击者可以执行管理员权限的操作,可能导致数据篡改、数据窃取或进一步的系统入侵。

概念验证 (POC):

  1. 访问 card-system 应用程序的登录页面。
  2. 使用 admin@qq.com 作为用户名/电子邮件。
  3. 使用 123456 作为密码。
  4. 如果种子文件已被运行且凭据未更改,登录将成功,并授予管理员访问权限。

建议修复措施:

  1. 在生产环境中移除或修改默认种子: 开发人员应确保包含默认管理凭据的种子数据绝不部署到生产环境。
  2. 要求在初始设置时使用强而独特的密码: 对于新安装,系统应在初始设置过程中提示管理员设置一个强而独特的密码,而不是依赖硬编码的默认值。
  3. 实施密码重置机制: 确保管理员有安全的方式来重置密码(如果他们忘记了),并鼓励在安装后立即更改默认密码。
  4. 安全最佳实践: 对开发人员进行硬编码凭据风险的教育,并强调安全的初始设置程序。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions