0

悪意のあるスクリプトが、私の Web ページを保持しているサーバーに侵入したようです。私はいくつかのアカウントを持っていますが、それらはすべて「感染」しています (これが正しい言葉かどうかはわかりません)。

ともかく。すべての index.php ファイルには、次のコードが先頭に追加されています。

<marquee style="position: absolute; width: 0px;">
<a href="http://istanbulescort-ilan.com/" title="escort bayan">escort bayan</a>
<a href="http://istanbulescort-ilan.com/" title="bayan escort">bayan escort</a>
<a href="http://ankaraescortlari.org/" title="ankara escort">ankara escort</a>
<a href="http://ankaraescortlari.org/" title="ankara escort bayan">ankara escort bayan</a>
<a href="http://ankaraescortlari.org/" title="escort ankara">escort ankara</a>
...
<a href="http://hurhaberci.com" title="son haberler">son haberler</a>
</marquee>

このコードはヘッダーを台無しにし、Web ページはうまく表示されません。言うまでもなく、すべてのウェブページにエスコート サービスのリンクがあります。

このスクリプトを見つけましたが、サーバー上の各アカウントのすべての index.php ファイルから上記のコードをすべて削除するように正しく変更する方法がわかりません。私はそれを実行したくありませんが、hudge バックアップを復元する必要があることがわかりました。

for i in /directory/*.java
do
   # echo 'Working on $i file'
   copy $i tempfil.txt
   sed   -e '/\} catch/,/^\}/d' tempfil.txt > $i
done

[編集]

わかりました、それで私はこれを一緒にこすることができました。誰かがそれが機能することを確認したり、何を変更する必要があるかについて何か提案をしたりできますか?

read -d '' hacked <<"EOF"
<marquee style="position: absolute; width: 0px;">
<a href="http://istanbulescort-ilan.com/" title="escort bayan">escort bayan</a>
...
<a href="http://gidasayfasi.com" title="gida">gida</a></marquee>
EOF
find -name \*.php | xargs replace ${hacked} ""  --
4

1 に答える 1

1

先頭に追加されたテキストを削除するには (先頭に追加されたテキスト内に有用なものがないと仮定します):

sed '/<marquee/,/marquee>/ d' index.php

/EXP1/, /EXP2/ dsed は式 EXP1 と式 EXP2 の間の行を照合し、アクション「d」(「削除」) を適用することを意味します。

お役に立てれば。

---- 以下のコメントに従って編集 ------ ---- 悪意のあるコードの中に正しいコードが含まれている可能性があります ---- 削除するテキストの一部をテキスト ファイル名 'tobedeleted' にコピー/貼り付けすることを想像できます。TXT'。次に、次のスクリプト process.sh を記述します (ここで、$1 はクリーンアップするファイルです)。

#/bin/bash
diff --suppress-common-lines $1 tobedeleted.txt | grep -e '^<' | sed 's/^< //'

上記の diff コマンドは、参照する悪意のあるコードとファイル $1 の内容の違いのみを表示します。差は行ごとに計算され、行の前にマークアップ文字「<」が表示されます (「 」を参照man diff)。最初にこのコマンドを試してください。

スクリプトを呼び出して (chmod u+x process.sh最初に を実行して実行可能にする)、結果を別のスクリプトにリダイレクトできます。次に例を示します。

process.sh index.php > new_index.php

したがって、多数のファイルを修正するには、次のようなスクリプトを実行します。

#/bin/bash
find . -name "*.php" | while read pathfile
do
   file=${pathfile##*/} # remove the path from the fullpath to the file
   pathonly=${pathfile%/*} # keep only the path
   cp $pathfile ${pathonly}/${file}.org # copy original file to save it, in case of...
   process.sh  ${pathonly}/${file}.org > ${pathfile} # apply correction
done
于 2012-09-28T20:51:59.220 に答える