网站遭到入侵,并且在开始<?php
标记之前将代码放在每个php页面的顶行,我想使用sed通过一个命令将其从所有文件中删除。
以
开头<?php if(!isset($GLOBALS["\x61\156\x75\156\x61"]))
以
结束-1; ?><?php
我认为这是由旧版mailpoet(wysija)wordpress插件引起的。 http://blog.sucuri.net/2014/10/wordpress-websites-continue-to-get-hacked-via-mailpoet-plugin-vulnerability.html
我尝试了这两个问题的答案,但解决办法并没有为我删除这些内容。我很感激任何和所有的帮助,因为我不熟悉unix命令。
Mass removal of malicious line from php files
Removing a string in a PHP file with Start and End
/// EDIT
我使用的样本输入,应该从文件中删除该行,但文件保持不变,不会向终端打印任何内容
sed -i '1 s/^<\?php if(!isset($GLOBALS\[.*-1; \?>//' *.php
一旦我有这个命令工作,我想把它与find命令结合起来在整个服务器上运行
答案 0 :(得分:2)
你可以试试这个GNU sed命令,
sed -r '1s/^<\?php if\(!isset\(\$GLOBALS\[.*-1; \?>//' *.php
添加内联编辑选项i
以保存所做的更改。
sed -ri '1s/^<\?php if\(!isset\(\$GLOBALS\[.*-1; \?>//' *.php
答案 1 :(得分:1)
find . -name "*.php" -print0 | xargs -0 sed -ri '1s/^<\?php if\(!isset\(\$GLOBALS\[.*-1; \?>//' *.php