2016-08-24 9 views
1

私はMySQLの管理者ユーザ によってSHOW FULL PROCESSLISTを実行すると、不思議なクエリ。

SHOW FULL PROCESSLIST; 

を実行すると、私はいつもこの行を参照してください。

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インジェクションからあなたのコードを保護する方法については、この質問を参照してください:あなたは、選択*は、ユーザからの1ページだけで、私はそれを右に禁止しているHow can I prevent SQL injection in PHP?

+0

、それ固定、 –

+0

は、攻撃者が何をしたのかを確認する方法はありますか? @Your Common Sense –

+1

上記のように、これはデータベース構造に関する情報を抽出するクエリを調査しています。だから私はまだ何も有害ではないと言うでしょう。しかし、それは最初の攻撃ではないかもしれません。 –

関連する問題