phpmyadmin漏洞
2016年,漏洞一个叫“phpMyAdmin”的漏洞数据库管理工具被爆出CVE-2016-5734漏洞。攻击者不用登录,漏洞构造一个特制请求就能在服务器上执行任意代码。漏洞当时大量中小型网站的漏洞管理后台都挂着它,补丁还没铺开,漏洞扫描器已经满互联网在找了。漏洞这事让我印象很深——一个天天被吐槽“界面丑、漏洞功能杂”的漏洞开源工具,真出事的漏洞时候,杀伤力一点不含糊。漏洞 phpMyAdmin本质是漏洞个PHP写的Web前端,用来管MySQL或MariaDB。漏洞装完往服务器一扔,漏洞浏览器打开就能建库、漏洞改表、导数据。方便是真方便,危险也是真危险。它直接暴露在公网,手握数据库最高权限,一旦被绕过认证或触发文件包含,等于把整个数据层的钥匙递出去。很多运维图省事,装完不改配置,默认路径、默认端口、弱口令,三件套齐活。攻击者拿工具跑一遍字典,十分钟内就能拿到shell。 漏洞类型翻来覆去就那几样,但每次都能得手。XSS算轻的,弹个窗、偷个cookie,危害有限。真正要命的是SQL注入和文件包含。phpMyAdmin自己就是操作SQL的,如果某个参数没过滤干净,攻击者能借它的查询接口去读系统表、写文件、甚至调 我见过一个真实案例。某电商后台的phpMyAdmin版本停在4.6.2,运维说“内网用的,没事”。结果前端有个上传接口没做鉴权,攻击者先传了个php文件,再通过phpMyAdmin的LFI漏洞去包含它,整条链走通。数据库里二十多万条用户订单,连带手机号、地址,全被打包拖走。事后查日志,攻击者从扫描到拿数据,总共花了不到四十分钟。那个运维后来跟我说,他以为内网就安全,可攻击者偏偏是从公网那个上传接口进来的。 防御这事,说复杂也复杂,说简单也简单。第一,别把phpMyAdmin放公网。真要远程管理,套VPN或者SSH隧道,别图那点方便。第二,版本及时更新。phpMyAdmin的补丁发布算快的,但很多人装完就不管了,后台挂着旧版本跑几年。第三,改默认路径、加HTTP认证、限制IP访问,这三条能挡掉九成以上的自动化扫描。第四,数据库账号别用root,给phpMyAdmin单独建个账号,权限按需分配。第五,看日志。phpMyAdmin的访问日志里, 还有一点容易被忽略:phpMyAdmin的配置文件 说到底,phpMyAdmin本身不是坏东西。它开源、免费、功能全,帮了无数中小团队。问题出在“装完就不管”的习惯上。安全圈有句话:没有危险的工具,只有危险的使用方式。这话听着像甩锅,但放在phpMyAdmin身上,确实贴切。你把它当临时工具用完就关,它就是个好帮手;你把它当永久后台挂在公网还懒得更新,它就是颗定时炸弹。什么时候炸,只看有没有人路过。INTO OUTFILE导出webshell。文件包含更直接,?target=../../../../etc/passwd这种老套路,配置不当的版本一打一个准。2018年还有个CVE-2018-12613,本地文件包含加参数注入,组合起来能RCE,CVSS评分8.8。当时PoC公开不到一周,Shodan上还能搜到几万台未修复的实例。SELECT、INTO OUTFILE、LOAD_FILE这些关键字频繁出现,基本就是有人在试。config.inc.php里如果写了数据库密码,一旦服务器被上传webshell,攻击者直接读这个文件就能拿到明文凭据。所以要么用auth_type cookie让用户自己登录,要么把配置文件权限锁死。别嫌麻烦,真出事的时候,省下的那点配置时间不够你写事故报告的。
-
上一篇
-
下一篇