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;
)
十分ではない?
注入された文字列の完全な例を貼り付けます。
この助けを願って、乾杯