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