web-dev-qa-db-ja.com

このハッカーは何をしようとしていますか?

次の検索を行う場合:

http://www.google.co.uk/search?q=0x57414954464F522044454C4159202730303A30303A313527&hl=en&start=30&sa=N

次のようなハッキングの例がたくさんあります。

1) declare @q varchar(8000) select @q = 0x57414954464F522044454C4159202730303A30303A313527 exec(@q) --

それは正確に何をしようとしているのですか?どのデータベースで作業しようとしていますか?これについて何かアドバイスを知っていますか?

65
JW.

彼はサーバーのSQLインジェクションをテストしています。具体的には、これは ブラインドSQLインジェクション の場合でも機能する堅牢なテストです。ブラインドSQLインジェクションは、攻撃者がSQLを実行できる場合ですが、表示可能な応答はありません。 httpリクエストに少なくとも15秒かかる場合、攻撃者はSQLを実行できること、および実行中のMS-SQLを認識します。この攻撃の後、彼はそれを xp_cmpdshell() でフォローアップしてサーバーに感染させます。

71
rook

http://bytes.com/topic/mysql/answers/888849-hacker-attempt によると、実行しようとしているようです。

WAITFOR DELAY '00:00:15 '

他の人が指摘しているように、これはDOS攻撃ではなく(最初に述べたように)、SQL Serverが脆弱かどうかを簡単に判断する方法であり、ホストのリストに追加して後でさらにハッキングすることができます。

22
Alistair

簡単に言えば、彼/彼女/それは非常に滑らかです。 「WAITFORDELAY ...」戦略を使用すると、サーバーが脆弱かどうかを確認できます何もログに記録せずに。接続文字列ユーザーがデータベースでどのようなアクセス権を持っているかを確認するためにチェックが行われています。そして@Rookが言ったように、これは侵入者にサーバーやネットワークへのアクセスを与える可能性のあるXP_CMDSHELL()につながるでしょう。

7
Saif Khan

それは16進文字列です。あなたがそれを翻訳するとき、それは次のように翻訳されます: "WAITFOR DELAY '00:00:15 '"

6
Icemanind

WAITFORは、時間ベースのSQLインジェクション攻撃に使用される可能性があります。

時間ベースのブラインドSQLインジェクション攻撃

データベースサーバーから情報を取得する他の方法がない場合、時間ベースの手法を使用してテストを実行することがよくあります。この種の攻撃は、特定のDBMS関数または時間遅延を生成する重いクエリを含むSQLセグメントを挿入します。サーバーの応答を取得するのにかかる時間によっては、一部の情報を差し引くことができます。ご想像のとおり、このタイプの推論アプローチは、ブラインドおよびディープブラインドSQLインジェクション攻撃に特に役立ちます。 。

時間ベースの攻撃の長所と短所

この手法の主な利点の1つは、特にエラーベースの攻撃と比較した場合、ログにほとんどまたはまったく影響を与えないことです。ただし、クエリが多い状況ではまたは、MySQLのBENCHMARK()などのCPUを集中的に使用する関数を使用する必要がある場合、システム管理者が何かが起こっていることに気付く可能性が高くなります。


幸い、この脆弱性は、SQL Server 2019/SQLAzureデータベースの新機能で軽減できます。

機能制限

SQL Server攻撃の一般的な原因の1つは、データベースにアクセスするWebアプリケーションを介したもので、さまざまな形式のSQLインジェクション攻撃を使用してデータベースに関する情報を収集します。理想的には、SQLインジェクションを許可しないようにアプリケーションコードが開発されます。ただし、レガシーコードと外部コードを含む大規模なコードベースでは、すべてのケースに対処したかどうかを確認することはできません。そのため、SQLインジェクションは私たちが保護しなければならない現実です。機能制限の目的は、SQLインジェクションが成功した場合でも、一部の形式のSQLインジェクションがデータベースに関する情報をリークしないようにすることです。

EXEC sp_add_feature_restriction <feature>, <object_class>, <object_name>

WAITFOR機能の制限

ブラインドSQLインジェクションとは、アプリケーションが攻撃者に挿入されたSQLの結果やエラーメッセージを提供しないが、攻撃者は2つの条件付きブランチが異なる量をとる条件付きクエリを作成することでデータベースから情報を推測できる場合です。実行する時間の。攻撃者は、応答時間を比較することで、どのブランチが実行されたかを知ることができ、それによってシステムに関する情報を知ることができます。この攻撃の最も単純な変形は、WAITFORステートメントを使用して遅延を導入することです。

EXEC sp_add_feature_restriction N'Waitfor', N'User', N'MyUserName'
1
Lukasz Szozda