jayin
发表于 2021-12-3 09:52:45
1. 时间
2021-12-02
2. 代码的截图
3. hash 值-1
虎牙哥
发表于 2021-12-15 04:09:48
zblog php程序 c_system_common.php 误报
zblogteam
发表于 2021-12-18 15:53:51
zblogphp程序
c_system_common.php 误报
config.php 误报
已提交误报;
宝塔用户_kvewpk
发表于 2022-1-29 11:20:27
本帖最后由 宝塔用户_kvewpk 于 2022-1-29 11:23 编辑
时间:
2022。1.28
截图:
hash值:
-1
function_core.php (n/a) - 71960bytes
MD5 cd12abc92945a5d2ad8d4459d20b2bcf
SHA1 b898a53a0997f6b93be913bc52b9f4b83254fb91
SHA256 e69e883c1b148a9e28b233f162c0e77006abaad39ff7105fbbb72681bfb56d7a
宝塔用户_qedbuy
发表于 2022-2-18 10:15:50
本帖最后由 宝塔用户_qedbuy 于 2022-3-21 16:21 编辑
1.时间:2022.2.21
2.代码截图:
https://www.bt.cn/bbs/forum.php?mod=image&aid=100449&size=300x300&key=9ca5b7f2e58782d2&nocache=yes&type=fixnone
3.hash:1c5f77010063674926ab1cc9320ad8fe56be70cd
宝塔用户_kvewpk
发表于 2022-3-14 20:46:35
本帖最后由 宝塔用户_kvewpk 于 2022-3-14 20:50 编辑
时间:2022.3.14
截图:
hash:8af6f61f0c5f9e868afb7d675385147a8a875b71
Ciffe
发表于 2022-3-18 16:36:12
fkenuiabcd
发表于 2022-3-19 15:22:53
2022.03.19扫描出来了好多个
这是第一个代码截图
复制的hash值发不了
阿杰888
发表于 2022-3-29 09:14:59
hash值在哪里发现?我也提交一个可能是误报的凡是这种程序开发的都报webshell,这个文件,没法删除,是在缓存文件里生成的,删除了又会自动生成,程序是thinkcmf
第三方在线查杀出也说这是后门,到底是不是呢,代码文件压缩包上传很久一直在打转
文件路径后门代码后门描述
common_runtime.php$class = str_replace(array('.'$name = str_replace(array('.'$parse($file)$a($b)动态函数后门
<?php namespace {function C($name=null, $value=null,$default=null) { static $_config = array(); if (empty($name)) { return $_config; } if (is_string($name)) { if (!strpos($name, '.')) { $name = strtoupper($name); if (is_null($value)) return isset($_config[$name]) ? $_config[$name] : $default; $_config[$name] = $value; return null; } $name = explode('.', $name); $name = strtoupper($name); if (is_null($value)) return isset($_config[$name][$name]) ? $_config[$name][$name] : $default; $_config[$name][$name] = $value; return null; } if (is_array($name)){ $_config = array_merge($_config, array_change_key_case($name,CASE_UPPER)); return null; } return null; } function load_config($file,$parse=CONF_PARSE){ $ext = pathinfo($file,PATHINFO_EXTENSION); switch($ext){ case 'php': return include $file; case 'ini': return parse_ini_file($file); case 'yaml': return yaml_parse_file($file); case 'xml': return (array)simplexml_load_file($file); case 'json': return json_decode(file_get_contents($file), true); default: if(function_exists($parse)){ return $parse($file); }else{ E(UPPORT_').':'.$ext); } } } if (!function_exists('yaml_parse_file')) { function yaml_parse_file($file) { vendor('spyc.Spyc'); 。。。。。。
凯迪来了
发表于 2022-4-3 03:44:12
【2022-04-03 03:33:45】 正在扫描网站 【www.****t.cn】
/www/wwwroot/www.******.cn/zb_system/function/c_system_common.php文件为木马hash:9a4cc45514a81f265f400455c5eb7c1b034f6cac
【2022-04-03 03:33:45】 扫描完毕!本次扫描耗时35秒,发现1个木马
这个是zblog php 1.7的官方文件,没有任何更改
<?php
/**
* 辅助通用函数.
*/
if (!defined('ZBP_PATH')) {
exit('Access denied');
}
/**
* 得到请求协议(考虑到不正确的配置反向代理等原因,未必准确)
* 如果想获取准确的值,请zbp->Load后使用$zbp->isHttps.
*
* @param array $array
*
* @return string
*/
function GetScheme($array)
{
$array = array_change_key_case($array, CASE_UPPER);
if (array_key_exists('REQUEST_SCHEME', $array) && (strtolower($array['REQUEST_SCHEME']) == 'https')) {
return 'https://';
} elseif (array_key_exists('HTTPS', $array) && (strtolower($array['HTTPS']) == 'on')) {
return 'https://';
} elseif (array_key_exists('SERVER_PORT', $array) && ($array['SERVER_PORT'] == 443)) {
return 'https://';
} elseif (array_key_exists('HTTP_X_FORWARDED_PORT', $array) && ($array['HTTP_X_FORWARDED_PORT'] == 443)) {
return 'https://';
} elseif (array_key_exists('HTTP_X_FORWARDED_PROTO', $array) && (strtolower($array['HTTP_X_FORWARDED_PROTO']) == 'https')) {
return 'https://';
} elseif (array_key_exists('HTTP_X_FORWARDED_PROTOCOL', $array) && (strtolower($array['HTTP_X_FORWARDED_PROTOCOL']) == 'https')) {
return 'https://';
} elseif (array_key_exists('HTTP_X_FORWARDED_SSL', $array) && (strtolower($array['HTTP_X_FORWARDED_SSL']) == 'on')) {
return 'https://';
} elseif (array_key_exists('HTTP_X_URL_SCHEME', $array) && (strtolower($array['HTTP_X_URL_SCHEME']) == 'https')) {
return 'https://';
} elseif (array_key_exists('HTTP_CF_VISITOR', $array) && (stripos($array['HTTP_CF_VISITOR'], 'https') !== false)) {
return 'https://';
} elseif (array_key_exists('HTTP_FROM_HTTPS', $array) && (strtolower($array['HTTP_FROM_HTTPS']) == 'on')) {
return 'https://';
} elseif (array_key_exists('HTTP_FRONT_END_HTTPS', $array) && (strtolower($array['HTTP_FRONT_END_HTTPS']) == 'on')) {
return 'https://';
} elseif (array_key_exists('SERVER_PORT_SECURE', $array) && ($array['SERVER_PORT_SECURE'] == 1)) {
return 'https://';
}
return 'http://';
}
/**
* 获取服务器.
*
* @return int
*/
function GetWebServer()
{
if (!isset($_SERVER['SERVER_SOFTWARE'])) {
return SERVER_UNKNOWN;
}
$webServer = strtolower($_SERVER['SERVER_SOFTWARE']);
if (strpos($webServer, 'apache') !== false) {
return SERVER_APACHE;
} elseif (strpos($webServer, 'microsoft-iis') !== false) {
return SERVER_IIS;
} elseif (strpos($webServer, 'nginx') !== false) {
return SERVER_NGINX;
} elseif (strpos($webServer, 'lighttpd') !== false) {
return SERVER_LIGHTTPD;
} elseif (strpos($webServer, 'kangle') !== false) {
return SERVER_KANGLE;
} elseif (strpos($webServer, 'caddy') !== false) {
return SERVER_CADDY;
} elseif (strpos($webServer, 'development server') !== false) {
return SERVER_BUILTIN;
} else {
return SERVER_UNKNOWN;
}
}
/**
* 获取操作系统
*
* @return int
*/
function GetSystem()
{
if (in_array(strtoupper(PHP_OS), array('WINNT', 'WIN32', 'WINDOWS'))) {
return SYSTEM_WINDOWS;
} elseif ((strtoupper(PHP_OS) === 'UNIX')) {
return SYSTEM_UNIX;
} elseif (strtoupper(PHP_OS) === 'LINUX') {
return SYSTEM_LINUX;
} elseif (strtoupper(PHP_OS) === 'DARWIN') {
return SYSTEM_DARWIN;
} elseif (strtoupper(substr(PHP_OS, 0, 6)) === 'CYGWIN') {
return SYSTEM_CYGWIN;
} elseif (in_array(strtoupper(PHP_OS), array('NETBSD', 'OPENBSD', 'FREEBSD'))) {
return SYSTEM_BSD;
} else {
return SYSTEM_UNKNOWN;
}
}
/**
* 获取PHP解析引擎.
*
* @return int
*/
function GetPHPEngine()
{
return ENGINE_PHP;
}
/**
* 获取PHP Version.
*
* @return string
*/
function GetPHPVersion()
{
$p = phpversion();
if (strpos($p, '-') !== false) {
$p = substr($p, 0, strpos($p, '-'));
}
return $p;
}
/**
* 自动加载类文件.
*
* @param string $className 类名
*
* @api Filter_Plugin_Autoload
* *
* @return mixed
*/
function AutoloadClass($className)
{
global $autoload_class_dirs;
foreach ($GLOBALS['hooks']['Filter_Plugin_Autoload'] as $fpname => &$fpsignal) {
$fpreturn = $fpname($className);
if ($fpsignal == PLUGIN_EXITSIGNAL_RETURN) {
$fpsignal = PLUGIN_EXITSIGNAL_NONE;
return $fpreturn;
}
}
$className = str_replace('__', '/', $className);
//$fileName = ZBP_PATH . 'zb_system/function/lib/' . strtolower($className) . '.php';
foreach ($autoload_class_dirs as $dir) {
$fileName = $dir . strtolower($className) . '.php';
if (is_readable($fileName)) {
include $fileName;
return true;
}
}
return false;
}
/**
* 管理自动加载类文件的目录.
*/
function AddAutoloadClassDir($dir, $prepend = false)
{
global $autoload_class_dirs;
$dir = trim($dir);
if (empty($dir)) {
return false;
}
$dir = str_replace('\\', '/', $dir);
$dir = rtrim($dir, '/') . '/';
if ($prepend == false) {
$autoload_class_dirs[] = $dir;
} else {
array_unshift($autoload_class_dirs, $dir);
}
return true;
}
/**
* 记录日志.
*
* @param string $logString
* @param string $level INFO|ERROR|WARNING|FATAL|DEBUG|TRACE
* @param string $source system or plugin ID
*
* @return bool
*/
function Logs($logString, $level = 'INFO', $source = 'system')
{
global $zbp;
$time = date('Y-m-d') . ' ' . date('H:i:s') . ' ' . substr(microtime(), 1, 9) . ' ' . date('P');
$isError = false;
if ($level === true) {
$level = 'ERROR';
} elseif ($level === false) {
$level = 'INFO';
}
$level = strtoupper($level);
if ($level == 'WARNING' || $level == 'ERROR' || $level == 'FATAL') {
$isError = true;
}
$ip = GetGuestIP();
$ua = GetGuestAgent();
foreach ($GLOBALS['hooks']['Filter_Plugin_Logs'] as $fpname => &$fpsignal) {
$fpreturn = $fpname($logString, $level, $source, $time, $ip, $ua);
if ($fpsignal == PLUGIN_EXITSIGNAL_RETURN) {
$fpsignal = PLUGIN_EXITSIGNAL_NONE;
return $fpreturn;
}
}
if ($zbp->guid) {
if ($isError) {
$f = $zbp->logsdir . '' . $zbp->guid . '-error' . date("Ymd") . '.txt';
} else {
$f = $zbp->logsdir . '' . $zbp->guid . '-log' . date("Ymd") . '.txt';
}
} else {
if ($isError) {
$f = $zbp->logsdir . '' . md5($zbp->path) . '-error.txt';
} else {
$f = $zbp->logsdir . '' . md5($zbp->path) . '.txt';
}
}
ZBlogException::SuspendErrorHook();
$handle = @fopen($f, 'a+');
if ($handle) {
$t = $time;
@fwrite($handle, '[' . $t . ']' . " " . $level . " " . $source . " " . $ip . "\r\n" . $logString . "\r\n");
@fclose($handle);
}
ZBlogException::ResumeErrorHook();
return true;
}
/**
* Logs指定的变量的值
*/
function Logs_Dump()
{
$a = func_get_args();
foreach ($a as $key => $value) {
$s = call_user_func('print_r', $value, true);
Logs($s);
}
}
/*
* 初始化统计信息
*/
function RunTime_Begin()
{
$_SERVER['_start_time'] = microtime(true); //RunTime
$_SERVER['_query_count'] = 0;
$_SERVER['_memory_usage'] = 0;
$_SERVER['_error_count'] = 0;
if (function_exists('memory_get_usage')) {
$_SERVER['_memory_usage'] = memory_get_usage();
}
}
/**
* 输出页面运行时长
*
* @param bool $isOutput 是否输出(考虑历史原因,默认输出)
*
* @return array
*/
function RunTime($isOutput = true)
{
global $zbp;
$rt = array();
$_end_time = microtime(true);
$rt['time'] = number_format((1000 * ($_end_time - $_SERVER['_start_time'])), 2);
$rt['query'] = $_SERVER['_query_count'];
$rt['memory'] = $_SERVER['_memory_usage'];
$rt['debug'] = $zbp->isdebug ? 1 : 0;
$rt['loggedin'] = $zbp->islogin ? 1 : 0;
$rt['error'] = $_SERVER['_error_count'];
$rt['error_detail'] = ZBlogException::$errors_msg;
if (function_exists('memory_get_peak_usage')) {
$rt['memory'] = (int) ((memory_get_peak_usage() - $_SERVER['_memory_usage']) / 1024);
}
$_SERVER['_runtime_result'] = $rt;
$_SERVER['_end_time'] = $_end_time;
if (isset($zbp->option['ZC_RUNINFO_DISPLAY']) && $zbp->option['ZC_RUNINFO_DISPLAY'] == false) {
return $rt;
}
if ($isOutput) {
echo '<!--' . $rt['time'] . ' ms , ';
echo $rt['query'] . ($rt['query'] > 1 ? ' queries' : ' query');
echo ' , ' . $rt['memory'] . 'kb memory';
echo ' , ' . $rt['error'] . ' error' . ($rt['error'] > 1 ? 's' : '');
//echo print_r($rt['error_detail'], true);
echo '-->';
}
return $rt;
}
/**
* 获得系统信息.
*
* @return string 系统信息
*
* @since 1.4
*/
function GetEnvironment($more = false)
{
global $zbp;
$ajax = Network::Create();
if ($ajax) {
$ajax = substr(get_class($ajax), 9);
}
if ($ajax == 'curl') {
if (ini_get("safe_mode")) {
$ajax .= '-s';
}
if (ini_get("open_basedir")) {
$ajax .= '-o';
}
$array = curl_version();
$ajax .= $array['version'];
}
if (function_exists('php_uname') == true) {
$uname = SplitAndGet(php_uname('r'), '-', 0);
} else {
$uname = '';
}
$system_environment = PHP_OS . $uname . '; ' .
GetValueInArray(
explode(
' ',
str_replace(array('Microsoft-', '/'), array('', ''), GetVars('SERVER_SOFTWARE', 'SERVER'))
),
0
) . '; PHP' . GetPHPVersion() . (IS_X64 ? 'x64' : '') . '; ';
if (isset($zbp->option) && isset($zbp->db)) {
$system_environment .= $zbp->option['ZC_DATABASE_TYPE'] . $zbp->db->version;
}
$system_environment .= '; ' . $ajax;
if (defined('OPENSSL_VERSION_TEXT')) {
$a = explode(' ', OPENSSL_VERSION_TEXT);
$system_environment .= '; ' . GetValueInArray($a, 0) . GetValueInArray($a, 1);
}
if ($more) {
if (method_exists($zbp, 'LoadApp')) {
$app = $zbp->LoadApp('plugin', 'AppCentre');
if (is_object($app) && $app->isloaded == true && $app->IsUsed()) {
$system_environment .= ';AppCentre' . $app->version;
}
}
$um = ini_get('upload_max_filesize');
$pm = ini_get('post_max_size');
$ml = ini_get('memory_limit');
$et = ini_get('max_execution_time');
$system_environment .= '; memory_limit:' . $ml . '; max_execution_time:' . $et;
$system_environment .= '; upload_max_filesize:' . $um . '; post_max_size:' . $pm;
}
return $system_environment;
}
/**
* 通过文件获取应用URL地址
*
* @param string $file 文件名
*
* @return string 返回URL地址
*/
function plugin_dir_url($file)
{
global $zbp;
$s1 = $zbp->path;
$s2 = str_replace('\\', '/', dirname($file) . '/');
$s = substr($s2, strspn($s1, $s2, 0));
if (strpos($s, 'zb_users/plugin/') !== false) {
$s = substr($s, strspn($s, $s3 = 'zb_users/plugin/', 0));
} else {
$s = substr($s, strspn($s, $s3 = 'zb_users/theme/', 0));
}
$a = explode('/', $s);
$s = $a;
$s = $zbp->host . $s3 . $s . '/';
return $s;
}
/**
* 通过文件获取应用目录路径.
*
* @param $file
*
* @return string
*/
function plugin_dir_path($file)
{
global $zbp;
$s1 = $zbp->path;
$s2 = str_replace('\\', '/', dirname($file) . '/');
$s = substr($s2, strspn($s1, $s2, 0));
if (strpos($s, 'zb_users/plugin/') !== false) {
$s = substr($s, strspn($s, $s3 = 'zb_users/plugin/', 0));
} else {
$s = substr($s, strspn($s, $s3 = 'zb_users/theme/', 0));
}
$a = explode('/', $s);
$s = $a;
$s = $zbp->path . $s3 . $s . '/';
return $s;
}
/**
* 通过Key从数组获取数据.
*
* @param array$array 数组名
* @param string $name下标key
*
* @return mixed
*/
function GetValueInArray($array, $name, $default = null)
{
if (is_array($array)) {
if (array_key_exists($name, $array)) {
return $array[$name];
}
return $default;
}
return $default;
}
/**
* 获取数组中的当前元素(还是数组)的数据.
*
* @param string $array 数组名
* @param string $name下标key
*
* @return mixed
*/
function GetValueInArrayByCurrent($array, $name, $default = null)
{
if (is_array($array)) {
$array = current($array);
return GetValueInArray($array, $name, $default);
}
}
/**
* 分割string并取某项数据.
*
* @param string $string
* @param string $delimiter
* @param int $n
*
* @return string
*/
function SplitAndGet($string, $delimiter = ';', $n = 0)
{
$a = explode($delimiter, $string);
if (!is_array($a)) {
$a = array();
}
if (isset($a[$n])) {
return (string) $a[$n];
}
return '';
}
/**
* 删除连续空格
*
* @param $s
*
* @return null|string|string[]
*/
function RemoveMoreSpaces($s)
{
return preg_replace("/\s(?=\s)/", "\\1", $s);
}
/**
* 获取Guid.
*
* @return string
*/
function GetGuid()
{
mt_srand();
$charid = strtolower(md5(uniqid(mt_rand(), true)));
return $charid;
}
/**
* 获取参数值
*
* @param string $name 数组key名
* @param string $type 默认为REQUEST
*
* @return mixed|null
*/
function GetVars($name, $type = 'REQUEST', $default = null)
{
if (empty($type)) {
$type = 'REQUEST';
}
$array = &$GLOBALS;
if (array_key_exists($name, $array)) {
return $array[$name];
} else {
return $default;
}
}
/**
* 获取参数值(可设置默认返回值).本函数在1.7已经废弃了,改用GetVars!
*
* @param string $name 数组key名
* @param string $type 默认为REQUEST
* @param string $default 默认为null
*
* @return mixed|null
*
* @since 1.3.140614
*/
function GetVarsByDefault($name, $type = 'REQUEST', $default = null)
{
return GetVars($name, $type, $default);
}
宝塔用户_fvwxzm
发表于 2023-3-30 16:30:35
https://img.4414.cn/forum/202303/30/162826us7b7mwwnbbymb7w.png
webshell查杀是不是window没办法用
baiyanghk
发表于 2023-7-17 09:04:29
1. 时间:2023-07-16 01:32:06
2. 代码的截图:
3. hash 值:e4b6e8f81a77bfc7eed334c86f63ace0
宝塔技术-小强
发表于 2023-7-18 11:25:16
baiyanghk 发表于 2023-7-17 09:04
1. 时间:2023-07-16 01:32:06
2. 代码的截图:
3. hash 值:e4b6e8f81a77bfc7eed334c86f63ace0
应该好了
ithoo
发表于 2023-12-20 11:39:12
一直提示扫描中,然后扫描进度条没有任何变化,应该是0
请问各位大神,这是是什么原因呢?