

新闻资讯
技术学院MySQL被入侵的典型迹象包括网站异常、访问变慢、数据消失或出现陌生账号;排查需按日志、账号、权限、网络行为四层逐项验证,重点查异常登录、高危账号、恶意SQL及公网暴露。
发现网站异常、访问变慢、数据莫名消失或出现陌生账号,MySQL很可能已被入侵。排查不是靠猜,而是按线索逐层验证——重点看日志、账号、权限和网络行为。
攻击者常反复尝试登录或建立大量空连接。先确认通用日志是否开启:
SHOW VARIABLES LIKE 'general_log%';,若值为 OFF,说明默认不记所有操作;可临时开启:SET GLOBAL general_log = 'ON';
SELECT * FROM mysql.general_log WHERE argument LIKE '%Access denied%' OR command_type = 'Connect' ORDER BY event_time DESC LIMIT 50;,重点关注短时间高频失败、陌生 IP 或非常规时段的连接/var/log/auth.log 或 /var/log/secure,搜索 mysql、3306 或大量 Failed password 记录很多入侵从弱口令或冗余账号开始。直接进库查最真实:
SELECT User, Host FROM mysql.user;,重点识别 test、''@'%'(空用户名)、root@'%' 这类高危组合SHOW GRANTS FOR 'username'@'host';,特别警惕含 FILE、SHUTDOWN、GRANT OPTION 或 ALL PRIVILEGES 的授权admin_123、backdoor)、Host 为 % 却无业务需求的条目黑客常通过注入或提权写入恶意语句、清空表、导出敏感字段。需结合多类日志交叉比对:
slow-query.log,过滤执行时间极短却频繁出现的 SELECT ... FROM mysql.user、UNION SELECT、LOAD_FILE 等语句SHOW VARIABLES LIKE 'log_error'; 找到错误日志路径,打开后搜索 DROP TABLE、TRUNCATE、CREATE FUNCTION、SELECT @@version 等典型操作SELECT * FROM mysql.func; 和 SELECT * FROM information_schema.TRIGGERS;,确认是否存在非运维添加的函数或触发逻辑不少入侵根本不需要密码——只因 MySQL 被直接暴露在公网:
/etc/mysql/mysql.conf.d/mysqld.cnf),检查 [mysqld] 段中是否有 bind-address = 127.0.0.1 或 skip-networking;若为 0.0.0.0 或缺失,则服务对外可见ss -tlnp | grep :3306 或 netstat -tuln | grep :3306,观察 Local Address 是否包含非 127.0.0.1 的地址ufw status(Ubun
tu)或 firewall-cmd --list-ports(CentOS),确认 3306 是否被意外放行给全网