devnull からの応答は受け入れられないので、これが私のものです
悪意のあるコードが 1 行しかない場合は、次のことを簡単に実行できます。
sed -i "/eval(base64_decode(/d" filename
これにより、すべての行が削除されます。
最初に気になるなら<?php
sed -i -e "/<?php/! {1 s/^/<?php /}" filename
<?php最初の行にタグが存在しない場合は、タグを追加します。それはどのように機能しますか?
/<?php/!その中にない行に一致<?phpします。
{1 s/^/<?php /}<?php最初の行で、先頭に追加します
もっと ?
コードが 2 行かかる場合:
<?php
exec(base64_decode() ... ?>
sed -i '/<?php/{N;/exec(base64_decode/d;}' filename
行が一致<?phpし、次の行が一致する場合はexec(base64_decode、両方の行を削除します。
N;現在のバッファに次の行をロードするためのものです。d;現在のバッファを削除します (= 両方の行)
コードが 3 行かかる場合:
<?php
exec(base64_decode() ...
?>
sed -i '/<?php/{N;/exec(base64_decode/{N;d;};}' filename
同上ですが、削除する前に 3 行目を読み込みます ( N;d;)
十分ではない?
注入された文字列の完全な例を貼り付けます。
この助けを願って、乾杯