LINUX.ORG.RU

Дырка в движке лора


0

0
Любой сайт, который вы посещаете, может с помощью вашего браузера запостить сообщение от вашего имени сообщение на лоре или произвести любую другую активность.

Проверка

Результат

Решение:

1) не допускать никакие изменения иначе как через POST;

2) при POST передавать ID сессии как скрытое поле и проверять его (даже для анонимных пользователей) либо проверять соответствие Referrer (но лучше все-таки скрытое поле, так как домены могут быть разные).


Ответ на: комментарий от adminchik
Можно модерам кидать ссылки типа "зацените прикол на сайте toozeg.narod.ru" на создание и подтверждение нецензурных новостей. :)
true
() автор топика
эээ... ммм.. а я сегодня вообще ничего на лор не писал, это все он, вот этот гаткий скрипт, да да, а я, а я спал, я нипричем!!! :)
adminchik
()
>но лучше все-таки скрытое поле, так как домены могут быть разные

Хотя вру. Можно просто проверять, чтобы Referrer начинался с "http://" (или "https://", если соединение через SSL) + SERVER_NAME + "/".

true
() автор топика
>1) не допускать никакие изменения иначе как через POST;

на javascript можно и POST делать ;)

>2) при POST передавать ID сессии как скрытое поле и проверять его (даже для анонимных пользователей)

ID уже есть в куках(их можно украсть) лучше какой-то другой ID(но это уже гемор)

>либо проверять соответствие Referrer (но лучше все-таки скрытое поле, так как домены могут быть разные).

Если очень захотеть можно и Referer нарисовать ;)

более-менее надежное спасение - HTTPS ;) "Более-менее" т.к. возможно MIM-атака(кто бы такое делал с лором?), ну и в SSL бывают баги(правда их нетривиально использовать)

AcidumIrae ★★★★★
()
Ответ на: комментарий от true
>Хотя вру. Можно просто проверять, чтобы Referrer начинался с "http://"(или "https://", если соединение через SSL) + SERVER_NAME + "/".

от тех, кто ходит под оффтопиком с експлорером(интересно такие бывают?) не спасет ;)

AcidumIrae ★★★★★
()
Ответ на: комментарий от AcidumIrae
>>1) не допускать никакие изменения иначе как через POST;

>на javascript можно и POST делать ;)

Что я и продемонстрировал.

>>2) при POST передавать ID сессии как скрытое поле и проверять его (даже для анонимных пользователей)

>ID уже есть в куках(их можно украсть) лучше какой-то другой ID(но это уже гемор)

Куки посылаются только на оригинальный сервер. Man-in-the-middle в данный момент не рассматриваем.

>>либо проверять соответствие Referrer (но лучше все-таки скрытое поле, так как домены могут быть разные).

>Если очень захотеть можно и Referer нарисовать ;)

Как ты в браузере клиента нарисуешь referrer другого сайта?

>более-менее надежное спасение - HTTPS ;) "Более-менее" т.к. возможно MIM-атака(кто бы такое делал с лором?), ну и в SSL бывают баги(правда их нетривиально использовать)

Man-in-the-middle при SSL не возможен при условии использования сертификата, выданного Thawte/Verisign/что-то в этом роде. Даже при SSL. От продемонстрированного метода SSL не спасает.

true
() автор топика
Ответ на: комментарий от JB
>странно, у меня не работает

Можно подробности (какой браузер, включен ли жабоскрипт, есть ли какие-то сообщения в консоли ошибок при посещении, нажимаешь ли на линк или копируешь и вставляешь в другом окне)? Мой скрипт смотрит ник в Referrer, соответственно по нему и делает POST.

true
() автор топика
Ответ на: комментарий от ansi
>Use NoScript it rocks!

Можно и без жабоскрипта сделать. Referrer смотреть на сервере, вбивать его в HTML, сделать поле ввода и кнопку типа Search. Нажимаешь ее, а форма постится на лор. :) Или с помощью GETа - делаем iframe или даже img, нажатие кнопки не требуется.

true
() автор топика
Ответ на: комментарий от true
> Можно подробности (какой браузер, включен ли жабоскрипт, есть ли какие-то сообщения в консоли ошибок при посещении, нажимаешь ли на линк или копируешь и вставляешь в другом окне)?

firefox 2.0.0.3, в настройках java script все галочки убраны, ошибок никаких нет, тупо кликаю по ссылке и попадаю на чистую страницу

JB ★★★★★
()
Ответ на: комментарий от JB
>firefox 2.0.0.3, в настройках java script все галочки убраны, ошибок никаких нет, тупо кликаю по ссылке и попадаю на чистую страницу

Т. е. сам жабоскрипт отключен?

true
() автор топика
Ответ на: комментарий от JB
У меня Konqueror 3.5.6, точно так же реагирует. Java/javascript включены.
Casus ★★★★★
()
Ответ на: комментарий от true
> Т. е. сам жабоскрипт отключен?

включен. Отключена фигня типа "resize or move existing window", "disable or replace context menus" и тд

JB ★★★★★
()
Ответ на: комментарий от Ygor
О щас вылезла лоровская страничка по этому адресу и написано "сбой добавления" Похоже это только у oper'ников работает :-)
Ygor ★★★★★
()
Ответ на: комментарий от Ygor
>О щас вылезла лоровская страничка по этому адресу и написано "сбой добавления"

Это я фрейм отресайзил для дебага.

>Похоже это только у oper'ников работает :-)

Нет, у меня в Firefox работало.

Теперь не работает. Исправили что ли уже? :)

true
() автор топика
Ответ на: комментарий от true
>Исправили что ли уже? :)

"тихо и незаметно" ггг

geek ★★★
()
Ответ на: комментарий от true
Если так быстро исправили - респект. :)

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

true
() автор топика
Решение неверное, правильно: либо запретить ссылки, либо перенаправлять на редиректор, который почистит, а потом уже отправит по ссылке.
anonymous
()
Ответ на: комментарий от anonymous
>Решение неверное, правильно: либо запретить ссылки, либо перенаправлять на редиректор, который почистит, а потом уже отправит по ссылке.

Это ровным счетом ни от чего не спасет. Ну, ник я допустим не узнаю, но я могу нацелить на одного пользователя (например, только на maxcom). POST ведь я могу сделать с любого сайта, и при этом POSTе будут использованы куки, хранящиеся в браузере.

true
() автор топика
Всегда говорил, что дырявость сайта от языка написания не зависит никак.
r_asian ★☆☆
()
Теперь то же самое с комментариями (идите по ссылке вверху и смотрите комментарий внизу топика).
true
() автор топика
Ответ на: TEST от JB
надо же, работает :)
JB ★★★★★
()
Ответ на: комментарий от Pi
> мне уже страшно

у кого хватит духу сообщить об этом баге макскому лично? рассылку он похоже не читает ;)

JB ★★★★★
()
см. удаленые комменты :)
mutronix ★★★★
()
но ведь труъ лоровцы по ссылкам не ходят, следовательно, дырка неопасная (:
dm_f
()
true, убери мат из своего скрипта пожалуйста, пострадают невинные лоровцы ;)
JB ★★★★★
()
А вообще эта дырка есть на подавляющем большинстве сайтов. :)
true
() автор топика
Ответ на: комментарий от sdio
>Поставил расширение No-Referrer (https://addons.mozilla.org/en-US/firefox/addon/1999)

>И все путем.

>Error: RegExp("^http://[^/]+/profile/[^/]+/").exec(document.referrer) has no properties Source File: http://87.226.25.208/ Line: 20

Это ни от чего не спасает. Я могу намертво вбить в action любой конкретный ник.

true
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.