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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.