我們的一個Joomla網站遭到黑客入侵,攻擊者用他醜陋的頁面 - 「黑客」標題和一些紅色的阿拉伯語線條替換了我的模板的index.php。 顯然,攻擊者在用戶表(即超級用戶)中的第一個用戶的密碼(和電子郵件地址)重置了一些方法,並獲得了對管理面板的訪問權限。這個Joomla密碼重置如何利用工作?
做一個快速的恢復之後,我搜索網,以防止未來的黑客行爲,發現這篇文章:Security News-[20080801] - Core - Password Remind Functionality
我把代碼那篇文章來修補我的reset.php
但我仍然有疑惑。這篇文章並沒有說明這個漏洞的實際工作方式。 不過,我看到在互聯網上的一些地方,這是reset.php
執行SQL查詢的標記線的SQL注入漏洞:
$db->setQuery('SELECT id FROM #__users
WHERE block = 0
AND activation = '.$db->Quote($token));
使用JDatabase ::引用()方法。那麼如何做一些SQL注入成爲可能。是不是報價應該防止SQLi? Joomla版本的攻擊網站是1.5.18。
另一個疑問是在補丁檢查中只驗證字符串長度爲32.它如何防止漏洞利用。
我想知道如果一個SQLi真的可以傳遞Quote方法,那麼32個字符串的長度是否足以繞過該WHERE子句?
if(strlen($token) != 32) {
$this->setError(JText::_('INVALID_TOKEN'));
return false;
}
與此相關的,你真的應該更新到1.5.23 。由於你已經學會了艱難的道路,因此背後有5個安全版本是一個壞主意。 – 2011-05-23 03:37:45
對,我很快就會這樣做。 – rineez 2011-05-24 05:10:57