403Webshell
Server IP : 43.141.50.122  /  Your IP : 113.219.202.44
Web Server : Apache
System : Linux VM-8-5-opencloudos 6.6.34-9.oc9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 19 19:35:45 CST 2024 x86_64
User : www ( 1000)
PHP Version : 8.1.27
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/wwwroot/www.ucppt.com/wp-content/plugins/wpcom-member-pro/sdk/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/www.ucppt.com/wp-content/plugins/wpcom-member-pro/sdk/dysmsapi.php
<?php
class Dysmsapi {
    protected $config;
    protected $secret;
    function __construct(){
        $options = $GLOBALS['wpmx_options'];
        $key = trim(isset($options['aliyun_sms_keyid']) ? $options['aliyun_sms_keyid'] : '');
        $this->secret = trim(isset($options['aliyun_sms_secret']) ? $options['aliyun_sms_secret'] : '');
        $template = trim(isset($options['aliyun_sms_tcode']) ? $options['aliyun_sms_tcode'] : '');
        $sign = trim(isset($options['aliyun_sms_sign']) ? $options['aliyun_sms_sign'] : '');
        if($key && $this->secret && $template && $sign) {
            $this->config = array(
                'AccessKeyId' => $key,
                'Format' => 'JSON',
                'RegionId' => 'cn-hangzhou',
                'SignatureMethod' => 'HMAC-SHA256',
                'SignatureVersion' => '1.0',
                'Version' => '2017-05-25',
                'SignatureNonce' => md5(time() . rand(100000, 999999)),
                'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'),
                'SignName' => $sign,
                'TemplateCode' => $template
            );
        }
    }
    function send($phone, $code, $nationCode='86'){
        if(isset($this->config)){
            $this->config['Action'] = 'SendSms';
            $this->config['PhoneNumbers'] = !$nationCode || $nationCode=='86' ? $phone : $nationCode.$phone;
            $this->config['TemplateParam'] = '{"code":"' . $code . '"}';
            $signature = $this->get_signature();
            $parameters = $this->config;
            $url = 'https://dysmsapi.aliyuncs.com/?Signature=' . $signature . '&' . http_build_query($parameters);
            $result = wp_remote_get($url, ['timeout' => 10]);
            if(!is_wp_error($result)){
                $result = isset($result['body']) ? json_decode($result['body']) : '';
                if($result->Code==='OK'){
                    $result->result = 0;
                }else{
                    $result->result = -1;
                    $result->errmsg = $result->Message;
                }
            }else{
                $result = new stdClass();
                $result->result = -1;
                $result->errmsg = '发送失败';
            }
        }else{
            $result = new stdClass();
            $result->result = -1;
            $result->errmsg = '网站未配置短信接口';
        }
        return $result;
    }

    private function percent_encode($string){
        $result = urlencode($string);
        $result = str_replace(['+', '*'], ['%20', '%2A'], $result);
        $result = preg_replace('/%7E/', '~', $result);
        return $result;
    }

    private function rpc_string($method, $parameters){
        ksort($parameters);
        $canonicalized = '';
        foreach ($parameters as $key => $value) {
            $canonicalized .= '&' . $this->percent_encode($key) . '=' . $this->percent_encode($value);
        }
        return $method . '&%2F&' . $this->percent_encode(substr($canonicalized, 1));
    }
    function get_signature(){
        $string = $this->rpc_string('GET', $this->config);
        return urlencode(base64_encode(hash_hmac('sha256', $string, $this->secret . '&', true)));
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit