宝塔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中的密码。

posted @ 2020-08-25 02:29  Mirror王宇阳  阅读(399)  评论(0编辑  收藏