Emlog漏洞————敏感資訊洩露
Emlog簡介
Emlog是“Every Memory Log”的簡介,意即:點滴記憶。它是一款基於PHP語言哈MYSQL資料庫的開源、免費、功能強大的個人或多人聯合撰寫的部落格系統(Blog)。基於PHP和MYSQL的功能強大的部落格以及CMS建站系統。致力於提供快速、穩定,且在使用上又及其簡單、舒適的部落格服務。安裝和使用都非常方便。目前Emlog正在受到越來越多的廣大使用者的青睞。
漏洞分析
影響版本:Emlog<=5.3
利用條件:登入後臺
漏洞描述:
本次漏洞出現的位置位於:emlog\src\admin\index.php中的第92-95行
<?php
/**
* 管理中心
* @copyright (c) Emlog All Rights Reserved
*/
require_once 'globals.php';
if ($action == '') {
$avatar = empty($user_cache[UID]['avatar']) ? './views/images/avatar.jpg' : '../' . $user_cache[UID]['avatar'];
$name = $user_cache[UID]['name'];
$serverapp = $_SERVER['SERVER_SOFTWARE'];
$DB = Database::getInstance();
$mysql_ver = $DB->getMysqlVersion();
$php_ver = PHP_VERSION;
$uploadfile_maxsize = ini_get('upload_max_filesize');
$safe_mode = ini_get('safe_mode');
if (function_exists("imagecreate")) {
if (function_exists('gd_info')) {
$ver_info = gd_info();
$gd_ver = $ver_info['GD Version'];
} else{
$gd_ver = '支援';
}
} else{
$gd_ver = '不支援';
}
include View::getView('header');
require_once(View::getView('index'));
include View::getView('footer');
View::output();
}
if ($action == 'update' && ROLE == ROLE_ADMIN) {
$source = isset($_GET['source']) ? trim($_GET['source']) : '';
$upsql = isset($_GET['upsql']) ? trim($_GET['upsql']) : '';
if (empty($source)) {
exit('error');
}
$temp_file = emFecthFile(OFFICIAL_SERVICE_HOST . $source);
if (!$temp_file) {
exit('error_down');
}
$ret = emUnZip($temp_file, '../', 'update');
@unlink($temp_file);
switch ($ret) {
case 1:
case 2:
exit('error_dir');
break;
case 3:
exit('error_zip');
break;
}
//update db
if(!$upsql) {
exit('succ');
}
$DB = Database::getInstance();
$setchar = $DB->getMysqlVersion() > '4.1' ? "ALTER DATABASE `" . DB_NAME . "` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;" : '';
$temp_file = emFecthFile(OFFICIAL_SERVICE_HOST . $upsql);
if (!$temp_file) {
exit('error_down');
}
$sql = file($temp_file);
@unlink($temp_file);
array_unshift($sql,$setchar);
$query = '';
foreach ($sql as $value) {
if (!$value || $value[0]=='#') {
continue;
}
$value = str_replace("{db_prefix}", DB_PREFIX, trim($value));
if (preg_match("/\;$/i", $value)) {
$query .= $value;
$DB->query($query);
$query = '';
} else{
$query .= $value;
}
}
$CACHE->updateCache();
exit('succ');
}
//phpinfo()
if ($action == 'phpinfo') {
@phpinfo() OR emMsg("phpinfo函式被禁用!");
}
也就是上面程式碼的最後一部分:
//phpinfo()
if ($action == 'phpinfo') {
@phpinfo() OR emMsg("phpinfo函式被禁用!");
}
根據以上程式碼我們知曉只要我們以普通使用者或者管理員使用者的身份實現登入之後,即可在實現對該網站的phpinfo資訊的獲取。
漏洞復現
首先以一個普通使用者的身份實現登入
之後訪問下面的連結:
127.0.0.1/emlog/src/admin/index.php?action=phpinfo
可以看到輸出了該PHP網站中的主要配置資訊。
解決方法
1、限制許可權(僅僅允許管理員),修改程式碼如下
//phpinfo()
if ($action == 'phpinfo') {
if (ROLE == ROLE_ADMIN){
@phpinfo() OR emMsg("phpinfo函式被禁用!");
}
else{
emMsg('許可權不足!','./');
}
}
2、由於配置資訊是後臺所需的,所以我們可以直接刪除該函式。
相關文章
- JS敏感資訊洩露:不容忽視的WEB漏洞JSWeb
- 中移鐵通禹路由 ExportSettings 敏感資訊洩露漏洞路由Export
- 漏洞利用之資訊洩露
- CVE-2016-0059 IE資訊洩露漏洞分析
- 資訊洩露之web原始碼洩露Web原始碼
- 敏感資料洩露-基於Pikachu的學習
- 美國法警局遭遇重大安全事件,洩露執法敏感資訊事件
- 某學院存在資訊洩露及暴力破解漏洞
- 網站安全之使用者資訊洩露漏洞案例分享網站
- 遊戲巨頭動視暴雪疑似員工敏感資訊及遊戲資料洩露遊戲
- 松下承認嚴重資料洩露,涉技術檔案和客戶敏感資訊
- 涉密資訊的洩露方式
- Google+再曝漏洞!5250萬使用者資訊恐洩露Go
- 你玩的遊戲安全嗎?AMT Games百萬使用者敏感資訊被洩露遊戲GAM
- SaaS應用程式存安全隱患或洩露敏感資料
- Twitter漏洞,或造成使用者私密訊息洩露
- 深圳一AI公司人臉資料洩露,超256萬使用者敏感資訊在“裸奔”!AI
- 快訊 | 數以萬計 Django 應用程式因配置錯誤洩露密碼等敏感資訊Django密碼
- MongoDB 伺服器漏洞洩露加密貨幣 Bezop 使用者資訊MongoDB伺服器加密
- DNS域傳送資訊洩露DNS
- Emlog漏洞——————Emlog友情連結自助外掛存在SQL隱碼攻擊漏洞SQL
- 威脅情報:是誰洩露了敏感資訊?
- APP資料洩露漏洞該如何修復和加固APP
- 利用Exchange漏洞入侵安插後門,小心資料洩露
- 資訊洩露的後果很可怕
- Emlog漏洞————Emlog資料庫備份與匯入功能導致後臺getshell資料庫
- APISIX 是怎麼保護使用者的敏感資料不被洩露的?API
- “行業互助”成公民資訊洩露毒瘤行業
- 安全研究人員發現中國網貸App漏洞洩露大量個人資訊APP
- Emlog漏洞————Emlog相簿外掛前臺SQL隱碼攻擊+GetshellSQL
- 黑客攻擊來襲,多個日本政府部門的敏感資料洩露黑客
- Citrix NetScaler多重漏洞導致DoS攻擊和資料洩露
- 網站資料被惡意篡改洩露如何查詢漏洞網站
- 嫌百萬美元贖金太少,Lockbit憤而洩露財富五百強公司敏感資料
- 微軟配置錯誤導致大量敏感資料洩露,全球客戶受影響微軟
- 5G網路被曝存在嚴重漏洞 手機號碼等資訊容易洩露
- AWS 安全資訊洩露-----21天燒了27萬
- 今晚19:30,直播揭秘資訊洩露的“面紗”