shell bypass 403

GrazzMean Shell

Uname: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
Software: Apache
PHP version: 5.6.40 [ PHP INFO ] PHP os: Linux
Server Ip: 217.160.0.194
Your Ip: 216.73.217.139
User: u72294154 (9179942) | Group: ftpusers (600)
Safe Mode: OFF
Disable Function:
NONE

name : functions.php
<?php

function splitSQL($sql)
{
    $tokens = explode(';', $sql);
    $output = array();
    $matches = array();
    $token_count = count($tokens);

    for ($i = 0; $i < $token_count; $i++) {
        if ($i != $token_count-1 || strlen($tokens[$i] > 0)) {

            $total_quotes = preg_match_all("/'/", $tokens[$i], $matches);
            $escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$i], $matches);
            $unescaped_quotes = $total_quotes - $escaped_quotes;

            if (($unescaped_quotes % 2) == 0) {

                $output[] = $tokens[$i];
                $tokens[$i] = '';

            } else {

                $temp = $tokens[$i] . ';';
                $tokens[$i] = '';
                $complete_stmt = false;

                for ($j = $i + 1; (!$complete_stmt && ($j < $token_count)); $j++) {

                    $total_quotes = preg_match_all("/'/", $tokens[$j], $matches);
                    $escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$j], $matches);
                    $unescaped_quotes = $total_quotes - $escaped_quotes;

                    if (($unescaped_quotes % 2) == 1) {

                        $output[] = $temp . $tokens[$j];
                        $tokens[$j] = '';
                        $temp = '';
                        $complete_stmt = true;
                        $i = $j;
                    } else {

                        $temp .= $tokens[$j] . ';';
                        $tokens[$j] = '';
                    }
                }
            }
        }
    }

    return $output;
}

function selectSQL($query)
{
    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $result = mysqli_query($link, $query, MYSQLI_STORE_RESULT);

    if (false === $result) {
        echo mysqli_error($link);
    }

    $row = mysqli_fetch_array($result, MYSQLI_BOTH);

    if (null === $row) {
        echo "[ERROR]: The query you have requested has no result.\n";
        exit(1);
    }

    mysqli_free_result($result);
    mysqli_close($link);

    return $row[0];
}

function importSQL($schema)
{
    $schema = trim($schema);
    $schema = removeRemarks($schema);
    $schema = removeComments($schema);
    $schema = splitSQL($schema);

    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    foreach ($schema as $query) {
        $query .= ';';
        $result = mysqli_query($link, $query, MYSQLI_STORE_RESULT);
        if (false === $result) {
            echo mysqli_error($link);
            exit(1);
        }
    }
}

function dropSQL(){

    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $db_prefix = DB_MAIN_PREFIX;
    $query = "SHOW TABLES LIKE '$db_prefix%'";
    $query_result = mysqli_query($link, $query);

    if (false === $query_result) {
        echo "\nQuery $query failed.\n";
        echo mysqli_error($link) . "\n";
        exit(1);
    }

    $tables = array();

    while ($row = mysqli_fetch_array($query_result, MYSQLI_BOTH)) {
        $tables[] = $row[0];
    }

    for ($i = 0; $i < count($tables); $i++) {
        $delete_query = "DROP TABLE ". $tables[$i] . ";";
        mysqli_query($link, $delete_query);
    }

    mysqli_close($link);
}

function dumpSQL()
{
    if (DB_MAIN_HOST == 'localhost'){
        $args = array(
            'host' => DB_MAIN_HOST,
            'socket' => DB_MAIN_SOCKET,
            'user' => DB_MAIN_LOGIN,
            'password' => DB_MAIN_PASSWORD,
        );
    } else {
        $args = array(
            'host' => DB_MAIN_HOST,
            'user' => DB_MAIN_LOGIN,
            'password' => DB_MAIN_PASSWORD,
        );
    }
    $mysql = 'mysqldump';
    foreach ($args as $argName => $argValue) {
        $mysql .= " --$argName='$argValue'";
    }

    $db_name = DB_MAIN_NAME;
    $mysql .= " '$db_name' > " . ROOT_DIR . "/dump.sql";

    return $mysql;
}

function renameSQL($oldTablePrefix, $newTablePrefix)
{
    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $db_prefix = $oldTablePrefix;
    $query = "SHOW TABLES LIKE '$db_prefix%'";
    $query_result = mysqli_query($link, $query);

    if (false === $query_result) {
        echo "\nQuery $query failed.\n";
        echo mysqli_error($link) . "\n";
        exit(1);
    }

    while ($row = mysqli_fetch_array($query_result, MYSQLI_BOTH)) {
        $old_table = $row[0];

        if (!empty($oldTablePrefix)) {
            $new_table = preg_replace('/^' . $oldTablePrefix.'/', $newTablePrefix, $old_table);
        } else {
            $new_table = $newTablePrefix . $old_table;
        }

        $rename_query = "RENAME TABLE `$old_table` TO `$new_table`;";
        mysqli_query($link, $rename_query);
    }

    mysqli_close($link);
}

function querySQL($query)
{
    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $result = mysqli_query($link, $query);

    if (false === $result) {
        echo "\nQuery $query failed.\n";
        echo mysqli_error($link) . "\n";
        exit(1);
    }
}

function removeRemarks($sql)
{
    $lines = explode("\n", $sql);
    $linecount = count($lines);
    $output = '';

    for ($i = 0; $i < $linecount; $i++) {
        if (($i != ($linecount - 1)) || (strlen($lines[$i]) > 0)) {
            if (isset($lines[$i][0]) && $lines[$i][0] != "#") {
                $output .= $lines[$i] . "\n";
            } else {
                $output .= "\n";
            }
            $lines[$i] = '';
        }
    }

    return $output;
}

function removeComments(&$output)
{
    $lines = explode("\n", $output);
    $output = '';
    $linecount = count($lines);
    $in_comment = false;

    for($i = 0; $i < $linecount; $i++) {

        if(preg_match("/^\/\*/", preg_quote($lines[$i]))) {
            $in_comment = true;
        }

        if(!$in_comment) {
            $output .= $lines[$i] . "\n";
        }

        if(preg_match("/\*\/$/", preg_quote($lines[$i]))) {
            $in_comment = false;
        }
    }

    unset($lines);

    return $output;
}

function checkEmptyFolder($target)
{
    if (!is_readable($target)) {
        echo "[ERROR]: $target no readable.\n";
        exit(1);
    }

    $handle = opendir($target);

    while (false !== ($entry = readdir($handle))) {
        if ($entry != '.' && $entry != '..') {
            return false;
        }
    }

    closedir($handle);

    return true;
}

function deleteFolder($target)
{
    if (true === checkEmptyFolder($target)) {
        rmdir($target);
    } else {
        if (is_dir($target)) {

            $objects = scandir($target);

            foreach ($objects as $object) {
                if ($object != '.' && $object != '..') {
                    if (filetype($target . '/' . $object) == 'dir') {
                        deleteFolder($target . '/' . $object);
                    } else {
                        unlink($target . '/' . $object);
                    }
                }
            }

            reset($objects);
            rmdir($target);
        }
    }
}

function copyContent ($source, $destination)
{
    if (!file_exists($source)) {
        echo "[ERROR]: Source $source does not exist.\n";
        exit(1);
    }

    if (file_exists($destination)) {
        if (is_file($destination)) {
            unlink($destination);
        } elseif (is_dir($destination)) {
            deleteFolder($destination);
        }
    }

    if (is_file($source)) {
        copy($source, $destination);
    } elseif (is_dir($source)) {

        $dir = opendir($source);
        mkdir($destination, 0777, true);

        while(false !== ($file = readdir($dir))) {
            if ($file != '.' && $file != '..') {
                copyContent($source . '/' . $file, $destination . '/' . $file);
            }
        }

        closedir($dir);
    }
}

function replace($search, $replace, $subject)
{
    if (!is_array($subject)) {
        $searches = is_array($search) ? array_values($search) : array($search);
        $replacements = is_array($replace) ? array_values($replace) : array($replace);
        $replacements = array_pad($replacements, count($searches), '');

        foreach ($searches as $key => $search) {
            $parts = mb_split(preg_quote($search), $subject);
            $subject = implode($replacements[$key], $parts);
        }
    } else {
        foreach ($subject as $key => $value) {
            $subject[$key] = replace($search, $replace, $value);
        }
    }

    return $subject;
}

function cURL($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    //curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    $data = curl_exec($ch);

    if (false === $data) {
        echo "[ERROR]: $url can't be processed\n";
    }

    curl_close($ch);
}

function timezone()
{
    switch (LOCALE) {
        case 'de_DE':
            $timezone = 'Europe/Berlin';
            break;
        case 'en_CA':
            $timezone = 'America/Vancouver';
            break;
        case 'en_GB':
            $timezone = 'Europe/London';
            break;
        case 'en_US':
            $timezone = 'US/Eastern';
            break;
        case 'es_ES':
            $timezone = 'Europe/Madrid';
            break;
        case 'es_MX':
            $timezone = 'America/Mexico_City';
            break;
        case 'fr_CA':
            $timezone = 'America/Toronto';
            break;
        case 'fr_FR':
            $timezone = 'Europe/Paris';
            break;
        case 'pl_PL':
            $timezone = 'Europe/Warsaw';
            break;
        case 'it_IT':
            $timezone = 'Europe/Rome';
            break;
        default:
            $timezone = 'Europe/London';
    }

    return $timezone;
}

function listSQL($query)
{
    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $result = mysqli_query($link, $query, MYSQLI_STORE_RESULT);

    if (false === $result) {
        echo mysqli_error($link);
    }

    $rows = array();

    while ($row = mysqli_fetch_row($result)) {
        $rows[] = $row[0];
    }

    mysqli_free_result($result);
    mysqli_close($link);

    return $rows;
}
© 2026 GrazzMean