zoukankan      html  css  js  c++  java
  • 宝塔7.4.2-pma未授权访问漏洞风险

    起因

    宝塔官方表示,7.4.2(Linux)版本的宝塔面板存在未授权访问phpmyAdmin的漏洞,漏洞利用难度为“0”,通过访问ip:888/pma则可无需任何登录操作直接进入phpmyAdmin,所有使用宝塔的站点均可测试是否存在此漏洞(未修改默认端口,安装了phpmyAdmin的均存在可能);

    • 影响范围
      • 宝塔 linux 7.4.2(安装了 phpmyadmin)
      • 宝塔 Linux 7.5.13(安装了 phpmyadmin)
      • 宝塔 windows 6.8(安装了 phpmyadmin)

    应急

    1、关闭888端口对外访问和phpmyAdmin服务
    2、升级至官方紧急发布的7.4.3版本关于Linux面板7.4.2及Windows面板6.8紧急安全更新(官方)
    3、将pma移到其他目录/或删除

    官方

    在Linux面板7.4.2/Windows面板6.8.0 版本中加入了phpmyadmin安全访问模块,原理是通过面板进行访问phpmyadmin,而不是nginx/apache,但因在目录存放时存在一个致命逻辑漏洞,导致nginx/apache也可以访问到专门给面板使用的phpmyadmin目录,我们在做安全审计时将重心放在面板程序中,忽略了除面板外被访问的可能,从而导致了此事件的发生。

    分析

    (参考ph17h0n:宝塔面板phpMyAdmin未授权访问漏洞是个低级错误吗?
    下载安装被影响到的宝塔linux版本:LinuxPanel-7.4.2.zip

    7.4.2和7.4.3版本代码对比

    在更新版本中判断/www/server/phpmyadmin/pma是否存在并删除该目录,这个目录就是官方说的通过面板直接访问phpmyadmin所使用的,删除该目录后则就无法使用该模块;ph17h0n分析:

    传入了username和password的情况下,宝塔会改写phpmyadmin的配置文件config.inc.php,将认证方式改成config,并写死账号密码。

    ph17h0n大佬科普了一直知识点:phpmyadmin除了cookie认证登录以外还支持多种认证方式,而这里bt官方则是改用了config认证方式,phpmyadmin会使用配置文件中的username/password进行登录;之所以可以通过面板直接访问phpmyAdmin的原因也是这个,写死了用户名和密码(所谓的自动填充并登录),面板就可以不用手动输入密码访问phpmyadmin,而bt官方只考虑到了用户面板访问pma,但是忘记了任何情况下都可以通过pma访问,因为它直接识别config中的密码。

  • 相关阅读:
    Splay复习
    带权并查集复习-HDU3038
    罗素悖论-图灵停机问题
    数独解法c++实现
    状压DP NOI2001 炮兵阵地
    区间第k大数
    分块随笔T2
    分块感想
    webkit的高级属性
    设计模式
  • 原文地址:https://www.cnblogs.com/wangyuyang1016/p/13557544.html
Copyright © 2011-2022 走看看