2016-08-24 105 views
1

当我执行执行时出现奇怪的查询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' 

那是什么? 这是正常的吗? 我如何在脚本中找到它?

回答

1

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

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

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

如果你正在使用PHP,请参考这个问题,以了解如何保护您的代码SQL注入:How can I prevent SQL injection in PHP?

+0

你说得对,SELECT * FROM用户只在一个页面上,我禁止它,它修复, –

+0

有没有办法看到攻击者做了什么? @Your Common Sense –

+1

正如我上面所说,这是调查查询,提取有关您的数据库结构的信息。所以我会告诉你没有什么有害的。但它可能不是第一次攻击。 –