执行 SHOW FULL PROCESSLIST 时的奇怪查询;

Strange query when execute SHOW FULL PROCESSLIST;

当我执行

SHOW FULL PROCESSLIST;

通过 mysql 管理员用户 我总是看到这一行:

select * from user where email='' AND (SELECT * FROM (SELECT(SLEEP(5-(IF(ORD(MID((SELECT IFNULL(CAST(email AS CHAR),0x20) FROM admin_new.`user` ORDER BY email LIMIT 105,1),5,1))>102,0,5)))))ylrK) AND 'ncED'='ncED'

每次都不一样

select * from user where email='' AND (SELECT * FROM (SELECT(SLEEP(5-(IF(ORD(MID((SELECT IFNULL(CAST(email AS CHAR),0x20) FROM admin_new.`user` ORDER BY email LIMIT 106,1),4,1))>96,0,5)))))rePG) AND 'xuFI'='xuFI'

那是什么? 正常吗? 我怎样才能在我的脚本中找到它?

这意味着您的网站容易受到 SQL 注入攻击,您正在看到一个漏洞。

基本上这个查询是在调查你的数据库结构,让攻击者获得关于 table 和列名的信息。学习之后,他们可以尝试提取他们需要的信息。

显然泄漏是在使用 select * from user where email= 的地方。

如果您使用 PHP,请参阅此问题以了解如何保护您的代码免受 SQL 注入:How can I prevent SQL injection in PHP?