Uname:Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64

Base Dir : /var/www/html

User : gavin


403WebShell
403Webshell
Server IP : 68.183.124.220  /  Your IP : 216.73.217.137
Web Server : Apache/2.4.18 (Ubuntu)
System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
User : gavin ( 1000)
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : 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,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/wp-content/plugins/ninja-forms/services/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wp-content/plugins/ninja-forms/services/oauth.php
<?php

namespace NinjaForms;

class OAuth
{
  protected static $instance;

  protected $base_url;

  protected $client_id,
            $client_secret;

  public static function getInstance() {
      if ( null == self::$instance ) {
          self::$instance = new static();
      }
      return self::$instance;
  }

  public static function set_base_url( $base_url ) {
    self::getInstance()->base_url = trailingslashit( $base_url );
  }

  protected function __construct() {

    $this->client_id = get_option( 'ninja_forms_oauth_client_id' );

    $this->client_secret = get_option( 'ninja_forms_oauth_client_secret' );
    if( ! $this->client_secret ){
      $this->client_secret = self::generate_secret();
      update_option( 'ninja_forms_oauth_client_secret', $this->client_secret );
    }
  }

  public function setup() {
    add_action( 'wp_ajax_nf_oauth', function(){
      wp_die( json_encode( [
        'data' => [
          'connected' => ( $this->client_id ),
          'connect_url' => self::connect_url(),
        ]
      ] ) );
    });

    add_action( 'wp_ajax_nf_oauth_connect', [ $this, 'connect' ] );
    add_action( 'wp_ajax_nf_oauth_disconnect', [ $this, 'disconnect' ] );
  }

  public static function is_connected() {
    return ( self::getInstance()->client_id );
  }

  public static function get_client_id() {
    return self::getInstance()->client_id;
  }

  public static function get_client_secret() {
    return self::getInstance()->client_secret;
  }

  public static function connect_url( $endpoint = 'connect' ) {

    $client_redirect = add_query_arg( [
      'action' => 'nf_oauth_connect',
      'nonce'  => wp_create_nonce( 'nf-oauth-connect' )
    ], admin_url( 'admin-ajax.php' ) );

    return add_query_arg([
        'client_secret' => self::get_client_secret(),
        'client_redirect' => urlencode( $client_redirect ),
        'client_site_url' => urlencode( site_url() ),
    ], self::getInstance()->base_url . $endpoint );
  }

  public function connect() {

    // wp_verify_nonce( $_REQUEST['nonce'], 'nf-oauth-connect' );

    if( ! isset( $_GET[ 'client_id' ] ) ) return;

    $client_id = sanitize_text_field( $_GET[ 'client_id' ] );
    update_option( 'ninja_forms_oauth_client_id', $client_id );

    if( isset( $_GET[ 'redirect' ] ) ){
      $redirect = sanitize_text_field( $_GET[ 'redirect' ] );
      $redirect = add_query_arg( 'client_id', $client_id, $redirect );
      wp_redirect( $redirect );
      exit;
    }

    wp_safe_redirect( admin_url( 'admin.php?page=ninja-forms#services' ) );
    exit;
  }

  public function disconnect() {

    do_action( 'ninja_forms_oauth_disconnect' );

    $url = trailingslashit( $this->base_url ) . 'disconnect';
    $args = [
      'blocking' => false,
      'method' => 'DELETE',
      'body' => [
        'client_id' => get_option( 'ninja_forms_oauth_client_id' ),
        'client_secret' => get_option( 'ninja_forms_oauth_client_secret' )
      ]
    ];
    $response = wp_remote_request( $url, $args );

    delete_option( 'ninja_forms_oauth_client_id' );
    delete_option( 'ninja_forms_oauth_client_secret' );
    wp_die( 1 );
  }

  public static function generate_secret( $length = 40 ) {

    if( 0 >= $length ) $length = 40; // Min key length.
    if( 255 <= $length ) $length = 255; // Max key length.

    $characters   = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $random_string = '';
    for ( $i = 0; $i < $length; $i ++ ) {
        $random_string .= $characters[ rand( 0, strlen( $characters ) - 1 ) ];
    }

    return $random_string;
  }
}

Youez - 2016 - github.com/yon3zu
LinuXploit