В одном из своих постов я пытался привлечь внимание к проблеме безответственного отношения к уязвимостям различных веб-сайтов. Представьте себе ситуацию: вы энтузиаст в области информационной безопасности, нашли уязвимости на каком-нибудь известном сайте и пытаетесь о ней сообщить, но:
- Невозможно найти никаких контактных данных для связи с тех. поддержкой сайта, а лучше именно со службой безопасности;
- Контактные данные есть, но вам никто не отвечает;
- Или чудо! Контактные данные есть, вам отвечают, но говорят что это не уязвимость и исправлять они ничего не будут.
В подобных ситуациях чаще всего энтузиасты ждут, а потом раскрывают детали уязвимостей. Но проблема в том, что даже при огласке ничего не меняется. Этот пост — компиляция подобных огласок (т.е. вся представленная информация уже была доступна публично длительное время) об уязвимостях на крупных ресурсах, возможно, что-нибудь да и изменится.
Для поста выбрана XSS уязвимость (конечно, это атака, но мы не об этом). Так как она Client Side и не несёт в себе активной server-side угрозы.
XSS — возможность встроить свой JS на целевом сайте и выполнять в т.ч. произвольные действия под авторизованным пользователем (считается «полноценной», если можно проводить кроссдоменные действия). В некоторых случаях позволяет полностью «увести» аккаунт пользователя (кража cookie, смена пароля).
Все* перечисленные ниже уязвимости являются неисправленными на момент написания поста, т.е. «0day».
ICQ.com, reflected XSS
627 сайт по популярности в России. В былое время — самый популярный в мире Instant Messenger. Хоть это и reflected xss, но работает и в Chrome
http://search.icq.com/search/selected_img.php?site_url=javascript:alert(document.domain)
AVG.com, reflected XSS
90-ый по популярности в США. Сайт известной американской антивирусной компании. Также: reflected + работоспособность в Chrome.
Forbes.ru, reflected + dom XSS
Всем известный Forbes (164 по посещаемости в РФ). Так как мы можем выполнить произвольный JS, значит мы можем и изменить содержимое страницы, например — написать что Habrahabr купил Forbes.
Reflected XSS: http://www.forbes.ru/search-content?keys=">
DOM XSS (уязвимость в библиотеке Masha.JS), http://forbes.ru/#sel=<img src = x onerror=alert(document.domain)>
Ebay.com, strored XSS
Всемирно известный интернет-аукцион, 6 по популярности в США. Внезапно — хранимая XSS! На ebay есть саб-портал — members.ebay.com. Пользователи могут вставлять себе в подпись ограниченный html/js («по умолчанию» нет доступа к cookie). Но есть возможность обойти этот фильтр — просто обфусцировать свой код.
<script>var _0xf17c=["x64x6Fx6Dx61x69x6E"];alert(document[_0xf17c[0]]);</script>
PayPal, CRLF + XSS via Cookie
16 по популярности в США. Добрались до звездочки(*), а теперь пояснение. Долгое время эта уязвимость оставалась неисправленной, даже после репорта автора этой находки. PayPal говорил, что нет импакта и платить ничего не будет (собственно, и не исправлял уязвимости). Уже после публикации видео на youtube (которое им было отправлено до публичного раскрытия) paypal всё исправил, но так и не ответил автору… Здесь сценарий чуть сложнее, чем обычно. Вектор следующий:
- Первым шагом при помощи CRLF инъекции внедряется произвольная Cookie пользователю (Cookie injection via CRLF), например
https://www.paypal.com/.x%0dSet-Cookie:ololo=122;%20path=/;%20domain=.paypal.com
- Находится место, где Cookie показывается пользователю в «чистом» виде (ad.paypal.com/jin/cookie.jsp)
Призыв один: обратить внимание владельцам веб-сайтов на пункты в начале статьи и адекватней реагировать на сообщения об уязвимостях, даже если у вас просто какой-то личный, небольшой проект.
С наступающим!
Автор: BeLove