2016-08-24 36 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

正如我上面所說,這是調查查詢,提取有關您的數據庫結構的信息。所以我會告訴你沒有什麼有害的。但它可能不是第一次攻擊。 –