2012-04-13 17 views
3

私は明らかにSQLインジェクション攻撃のために、私のホスティング会社によってオフラインにされたいくつかの古いサイトを持っています。私は自分のデータベースを見て、はい、私はハックされました。 * oops *asp.net - SQLインジェクション攻撃後のクリーンアップ方法

私のデータベースはオリジナルのデータに追加されたスクリプトタグで埋め尽くされています。

私は古いコードを見ていて、いくつかの非初期化された入力場所を見てきました。明らかにこれを徹底的に調べて詳細を確認します。 また、ハッキングされたサイトをダウンロードして、何年か前にアップロードしたバージョン(ファイルチェッカープログラムを使用しています)と比較して、バックドアを追加しようとしたかどうかを確認できます。

私の質問は...

1です)は、彼らはすべてまったく同じですように私は私のデータベースからすべての追加スクリップタグを取り除くことができます方法はありますか?

2)私は注意すべき点や見落としている点が他にありますか?

これらの古いサイトには機密情報が格納されていないので、大したことではないことを指摘したいと思います。私はそれらをバックアップして再度実行したいと思います。

私は自分のセキュリティ知識を突き詰めて、すぐにホスト上のすべてのファイルを削除し、すべてのパスワードを変更し、改良された(ハッカーの少ない)サイトをアップロードします。

おかげで...

+1

7ハハ、不運をスキップすることができることを意味し、ハッキングページに保存されませんでした。攻撃されたデータの外観を教えてください。 –

+1

@JamesWiseman - ハッハッハ、シンコティーのおかげで、悲しいことに私の知っていることは、データベースに "" – Luckyl337

+0

@AshwiniVermaそれは近いと開始しかし非常に私は何を探しています – Luckyl337

答えて

2

具体的には、スクリプトタグの置き換えの問題に答えると、私は手動タスク以外の何かを見ることができません。

このようなものを出すべき私はあなたがこれを検討してきたと確信しているが、単純なフィールド上で声明を置き換える:

update MyTable 
set field = replace(field, 'unwanted', '') 
where field like '%unwanted%' 

多くのテーブルとフィールドがある場合、私はあなたの確信していますSQlデータ辞書を使用して何らかの自動化を行うことができます。以下のような何か:

DECLARE @ColName varchar(255), @TableName varchar(255), @sSQL varchar(1000) 
DECLARE colcur CURSOR for 
SELECT name, object_name(id) 
    FROM syscolumns 
    WHERE name = 'Moniker' 

    OPEN ColCur 
FETCH NEXT FROM ColCur 
    INTO @ColName, @TableName 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    Set @sSQL = 'update ' + @TableName + ' set ' + @ColName + ' = replace(' + @ColName + ', ''unwanted'', '''') where ' + @ColName + ' like ''%unwanted%''' 

    exec(@sSQL) 

    select @ColName, @TableName 
    FETCH NEXT FROM ColCur 
    INTO @ColName, @TableName 
END 

CLOSE ColCur 
DEALLOCATE ColCur 
+0

はいはるかに良いアイデア!ちょうど簡単な交換は不思議に作用するはずです。私はそれを考えていたはずですが、これが私たちが質問する理由です。いくつかのテーブルとコラムがありますが、病気はそれを簡単に保ち、少し仕事をします。ありがとう! – Luckyl337

0

最初Protect From SQL Injection

、その後、最新のバックアップからデータを復元します。

+0

ありがとうございました。しかし、ちょっとした日付ですが、マイクロソフトではそのページを維持していません。/または、むしろデータベースをダウンロードして、何らかのプログラムを使用して、すべての不良データを取り除き、可能であれば復元します。 – Luckyl337

1

持っていれば、あなたのデータが破損して正確にどのように知っていないので、これは、バックアップを使用するための理想的な時間です。あなたがバックアップを持っていない場合、これは将来的にバックアップを使用し、そのような攻撃から身を守るための教訓になるはずです。また、バックアップがない場合は、データをクリーンアップするアルゴリズムを作成する必要がありますが、これはジャンクが残っていないことを保証するものではありません。

+0

それは本当ですが、これらのサイトは、何らかの形で私の他のデータを酷使していない場合には、スクリプトを取り出すだけです。そして、私が知っているええええバックアップ: – Luckyl337

2

私は、これらの理想的なシナリオでは、いくつかの手順になります推測:

  1. サイトをオフラインにしてください。おそらく、404ではなく「技術的なメンテナンスに至るまで」というメッセージを表示したいでしょう。
  2. ハッキングされたデータベースのバックアップを作成して後で分析することがあります
  3. SQLインジェクションで脆弱なコードを修正してください。私はチームでこれをやって、より徹底的にすることをお勧めします。
  4. あなたはおそらく漏洩した顧客データを持っている可能性があるため、あなたの弁護士にお問い合わせください(たぶん)固定ホームページ
  5. をアップロードしてバックアップ
  6. からデータベースを復元します。
  7. 弁護士と一緒に次の法的措置について話し合うことになります。

あなたが言及したようは、何の感光材料は、おそらくあなたは、ステップ6と

+0

良いステップありがとう! – Luckyl337

関連する問題