Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Вопрос про сайт... :) (https://forum.antichat.xyz/showthread.php?t=23299)

Melchior 30.08.2006 09:59

Вопрос про сайт... :)
 
Товарищи! Посогите! :) Я нашел патенциально бажный сайт. После 5 минут бутербродов с кофе удалось получить страницу следующего содержания:

PHP код:

<?
   
global $s;
$MaxInt = -2147483647.00;
$TEST 1;
include(
"ConnectBD.php"); 

//--------------------------------------------

function Time_Ceil($t)
{
  
$result trim$t );
  
$result str_replace"  "" "$result );
  list( 
$aMonth$aDay$aYear$theRest ) = explode" "$result);
  
$result date"H:i",  strtotime("$theRest"));
  if(
$result == '23:59' $result '24:00';
  return 
$result;
}

//--------------------------------------------
function GetDateFromSybase$aDate $time)
{
  global 
$FormatDate;
     
   if(
$FormatDate) {
               if (
$time$result date"m.d.Y H:i:s"strtotime($aDate));
               else        
$result date"m.d.Y"strtotime($aDate));   
      }
     else  {
               if (
$time$result date"d.m.Y H:i:s"strtotime($aDate));
               else        
$result date"d.m.Y"strtotime($aDate));     
     }     
      
    if( 
$aDate == ''$result ='';
   return 
$result;
}
//--------------------------------------------
function db_connection()
{
   global 
$s;

   Global 
$precision_currency;   // точность 
   
Global $CurrencyID;
   Global 
$CurrencyName;
   Global 
$TrafficMeasureID;
   
      
ini_set("mssql.datetimeconvert","0");
   
 if (!
$Connect
    {
////////////////////////
                  
include("ConnectBD.php");   
/////////////////////////
    
}         
 if (!
$Connect
     {
           
$num_err=101;
         
$error="MSSQL: Unable to allocate connection";
         
ErrorLog($num_err$error);
     }
    else
     {
        
$sql=" exec CurrencyReportGet";  
            
        
// получим данные настройки 
          
$buf get_rows(db_query($sql,$Connect));
          
$precision_currency $buf[0][Prec];
          
$CurrencyID $buf[0][BaseCurrencyID];
          
$CurrencyName $buf[0][BaseCurrencyCode];
          
$TrafficMeasureID $buf[0][TrafficMeasureID];
     }  
 return 
$Connect;
}
//------------------------------------------------------------
function ErrorLog($num_err$error
  { 
       
$current=date('d M,Y G:i:s');
       
$file=fopen('../error.log','a');
       if (
$file
         {
          
fputs($file"$current - $num_err : $error\n");
          
fclose($file);
         }
  }

//---------------------------------------------
function db_query($string,$Connect)
{
//  выполнение запросов к базе
//  $string - SQL запрос
    
`echo $string >>/www/stat/include/.tmp`;
    
$result mssql_query($string$Connect);
    return (
$result);
}

function 
get_rows ($result)
{
// формирование списка значений, возвращаемых из базы после выполнения query
// возвращает массив строк

        
$row=array();
        
$row_b=array();
        
$row_name=array(); // имена полей из базы
        
$row_real=array(); // 1 если дробное число 0 - если нет 
        
        
$count_field = @mssql_num_fields($result); // количество полев в ответе

        
for($i=0;$i<$count_field;$i++)
         {
          
$obj mssql_fetch_field($result,$i);
          
$row_name[$i] = $obj->name;            // имена полей
          
if($obj->type == 'real' || $obj->type == 'money'$row_real[$i]=1
           else  
$row_real[$i]=0;
         }

        while(
$row_b = @mssql_fetch_array($result)) 
         {
          for(
$i=0;$i<$count_field;$i++) // округлим все цифровые поля
           
{
            if(
$row_real[$i]) 
              { 
              
                  
$row_b[$i] = str_replace(',','.',$row_b[$i]);
                
$row_b[$row_name[$i]] = round($row_b[$i],7);
                
settype($row_b[$row_name[$i]],"string");  
              }
           }
          
$row[]=$row_b;
         }
        @
mssql_free_result($result);

        return (
$row);
}

//---------------------------------------------------------------------------
function db_disconnect ($Connect)
{
 
// отменим выбранный язык 
    
$sql=" exec UnregisterLang";
    
db_query($sql,$Connect);

// disconnects from the database
   
return (mssql_close($Connect));
}

//--------------------------------------------------------------------------
function ClientIDGet()
{
   global 
$s;
  global 
$HTTP_POST_VARS;
  global 
$HTTP_SESSION_VARS;
  global 
$FIO

  if ( 
$HTTP_POST_VARS[login] != '' && $HTTP_POST_VARS[password] != ''
    {
     
$magicnumber substr(md5(UniqID(GetMyPid())), 020);
     
$l 1;
     
$sql "exec ClientIDGet
                           @Login       = '
$HTTP_POST_VARS[login]',
                           @Password    = '
$HTTP_POST_VARS[password]',
                           @MagicNumber = '
$magicnumber'
               "
;
     }
   else
      
$sql="exec ClientIDGet @MagicNumber = '$HTTP_SESSION_VARS[MagicNumber]' ";

  
$CC db_connection();
  
$bufget_rows(db_query($sql,$CC));
  
db_disconnect($CC);

  if (
$buf[0][ClientID] && $magicnumber 
    {
      
session_start();
      if (!
session_is_registered('MagicNumber'))
       {
        
session_register("MagicNumber");
        
$GLOBALS[MagicNumber] = $magicnumber;
        unset(
$HTTP_POST_VARS[login]);
        unset(
$HTTP_POST_VARS[password]);
       }
    }
  
$FIO $buf[0][FIO];
  return(
$buf[0][ClientID]);
}
//-----------------------------------------------------
function ShablonGet($name)
{
  
$fn "shablons/$name.html";
  
$fd fopen$fn"r" );
  
$cont fread$fdfilesize$fn ) );
  
fclose$fd );
  return(
$cont);
}

//---------------------------------------------------------


// set_time_limit(0);

//  if (!$SessionNO)   session_start();
//
//  $ClientID = ClientIDGet();
//  if((isset($mod) && ereg('#'.$mod.'#',$auth_list)) && !$ClientID ) $NoAnonimus=1; 
//    else $NoAnonimus=0;
//  if ($FIO == '') $FIO= "Анонимус :)";  


?>

Это файл вообще чем нибудь полезен? :) Я там чтото ничего не вижу толкового... Или просто не правильно мыслю? :)

Berlay 30.08.2006 10:05

Попробуй получить ConnectBD.php темже способом. Мож повезет.

Melchior 30.08.2006 10:16

Цитата:

Сообщение от Berlay
Попробуй получить ConnectBD.php темже способом. Мож повезет.

Не выходит... Я уже пробывал... :D

Berlay 30.08.2006 10:27

Попробуй поискать sql инекции
Цитата:

function db_query($string,$Connect) {
// выполнение запросов к базе
// $string - SQL запрос
`echo $string >>/www/stat/include/.tmp`;
$result = mssql_query($string, $Connect);
return ($result); }
Фильтрации никакой вроде как.

k1b0rg 30.08.2006 11:32

логин и пароль не фильтруються


Время: 23:17