HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/sparkle/wp-content/plugins/wp-all-export/wpae_api.php
<?php

// Let's bootstrap
function wpae_api() {

    if ( ! check_ajax_referer( 'wp_all_export_secure', 'security', false )){
        exit( json_encode(array('html' => __('Security check', 'wp_all_export_plugin'))) );
    }

    if ( ! current_user_can( \PMXE_Plugin::$capabilities ) ){
        exit( json_encode(array('html' => __('Security check', 'wp_all_export_plugin'))) );
    }

    $container = new \Wpae\Di\WpaeDi(array());

    $request = new \Wpae\Http\Request(file_get_contents('php://input'));

    $q = $_GET['q'];
    $routeParts = explode('/', $q);
    $controller = 'Wpae\\App\\Controller\\'.ucwords($routeParts[0]).'Controller';
    $action = ucwords($routeParts[1]).'Action';

    $controller = new $controller($container);
    $response = $controller->$action($request);

    if(!$response instanceof \Wpae\Http\Response) {
        throw new Exception('The controller must return an HttpResponse instance.');
    }

    $response->render();
}

add_action( 'wp_ajax_wpae_api', 'wpae_api' );