покупал в москве флисовые пледы оптом на этом сайте

Межсайтовые атаки портов - XSPA – Часть 1

[REPLACE(|{break}|

{break}|{break}align="{skip}"|{break}style="{skip}"|{break}|{break}Дата публикации:{skip}|{break}Дата изменения: {skip}|{break}Всего просмотров: {skip}|{break}Автор:{skip}|{break}Автор:{skip}|{break})]

Многие веб-приложения позволяют вытягивать данные с других веб-серверов для различных целей. Этим функционалом можно злоупотреблять с помощью специально сформированных запросов. Автор: Riyaz Ahemed Walikar

Это первый из трех постов, посвященных подробному описанию межсайтовых атак портов (XSPA). Я выступал с докладом по данной теме на недавно завершившейся конференции OWASP AppSecUSA2012 в Остине. Настало время занести эту информацию и в блог.

Пожалуйста, имейте в виду, что это независимое исследование, проведенное мной в ходе участия в нескольких программах поиска багов за вознаграждение. Хотя оно близко к исследованию Александра Полякова, посвященному SSRF, схожесть результатов является простым совпадением и показывает, насколько распространенными являются атаки XSPA/images/55_2.jpgSSRF на популярные веб-приложения.

Обзор

Многие веб-приложения позволяют вытягивать данные с других веб-серверов для различных целей. Пользователь может задать веб-приложению URL, по которому оно будет скачивать изображения, загружать с удаленных серверов XML-ленты, текстовые файлы и т. д. Этим функционалом можно злоупотреблять с помощью специально сформированных запросов, используя уязвимые веб-приложения как прокси для атаки других сервисов, запущенных на удаленных/images/55_2.jpgлокальных (по отношению к веб-приложению) серверах. Атаки, злоупотребляющие данным функционалом, называются межсайтовыми атаками портов (XSPA).

Что такое XSPA?

Приложение уязвимо к XSPA, если при обработке введенного пользователем URL оно не проверяет/images/55_2.jpgочищает ответ бэкенда, полученный от удаленных сереверов, перед тем, как вернуть его клиенту. Атакующий может посылать уязвимому веб-приложению специально сформированные запросы, чтобы проксировать атаки на внешние сервера, имеющие выход в Интернет, интранет-устройства или веб-сервер самого приложения, пользуясь функционалом уязвимого веб-приложения. В некоторых случаях из ответов веб-приложения можно извлечь информацию о доступности тех или иных служб (статус порта, баннеры и т. д.) и даже получить с удаленных серверов данные нестандартным способом.

На данном снимке экрана показан сайт gravatar.com, предоставляющий описанный выше функционал:

XSPA позволяет атакующим злоупотреблять имеющимся в большинстве веб-приложений функционалом для сканирования портов серверов интранет и внешних серверов с выходом в Интернет, получать информацию о типах и версиях (fingerprint) внутренних (без выхода в Интернет) сетевых сервисов, получать баннеры служб, определять фреймворк веб-приложения, эксплуатировать уязвимости в программах, запускать код на достижимых машинах, экспулатировать уязвимости веб-приложений во внутренних сетях, считывать локальные файлы и многое другое. XSPA были обнаружены на Facebook: сайт позволял сканировать порты любого сервера с выходом в Интернет, используя IP-адрес Facebook. Затем XSPA были обнаружены в нескольких других известных веб-приложениях, включая Google, Apigee, StatMyWeb, Mozilla.org, Face.com, Pinterest, Yahoo, Adobe Omniture и несколько других. Мы рассмотрим уязвимости, которые присутствуют в выше упомянутых веб-приложениях и которые можно использовать для запуска атак и сканирования портов на удаленных серверах и устройствах интранет с помощью имеющегося функционала.

Примеры реализации

Давайте рассмотрим несколько примеров PHP-реализаций выборки файлов по заданному пользователем URL. Вообще, XSPA затрагивает любое веб-приложение, если оно позволяет пользователю определять, откуда будут выбраны данные, независимо от того, на каком языке это приложение написано. Пожалуйста, имейте в виду, что показанные ниже примеры не являются ни хорошо написанными, ни безопасными, однако, большая часть представленного ниже кода была получена из реальных приложений.

1. PHP file_get_contents:if (isset($_POST['url']))
{
$content = file_get_contents($_POST['url'])-
$filename = './images/55_2.jpgimages/images/55_2.jpg'.rand().'img1.jpg'-
file_put_contents($filename, $content)-
echo $_POST['url'].""-
$img = ""-
}
echo $img-
?>

Данная реализация выбирает запрошенные пользователем данные (в данном случае - изображение), используя PHP-функцию file_get_contents, и сохраняет их на диске в файл со случайным именем. Затем изображение показывается пользователю в HTML-теге img.

2. PHP fsockopen() function:function GetFile($host,$port,$link)
{
$fp = fsockopen($host, intval($port), $errno, $errstr, 30)-
if (!$fp) {
echo "$errstr (error number $errno) \n"-
} else {
$out = "GET $link HTTP/images/55_2.jpg1.1\r\n"-
$out .= "Host: $host\r\n"-
$out .= "Connection: Close\r\n\r\n"-
$out .= "\r\n"-
fwrite($fp, $out)-
$contents=''-
while (!feof($fp)) {
$contents.= fgets($fp, 1024)-
}
fclose($fp)-
return $contents-
}
}
?>

Эта реализация выбирает данные, запрошенные пользователем (произвольный файл или HTML), с помощью PHP-функции fsockopen. Данная функция устанавливает TCP-соединение с сокетом сервера и выполняет передачу сырых данных.

3. PHP curl_exec() function:if (isset($_POST['url']))
{
$link = $_POST['url']-
$curlobj = curl_init()-
curl_setopt($curlobj, CURLOPT_POST, 0)-
curl_setopt($curlobj,CURLOPT_URL,$link)-
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1)-
$result=curl_exec($curlobj)-
curl_close($curlobj)-

$filename = './images/55_2.jpgcurled/images/55_2.jpg'.rand().'.txt'-
file_put_contents($filename, $result)-
echo $result-
}
?>

Это еще одна очень распространенная PHP-реализация, которая выбирает данные через cURL. Файл или данные загружаются и хранятся на диске внутри папки 'curled' в файле со случайным именем и с расширением txt.

В следующем посте мы увидим некоторые атаки, которые могут запускаться через данную уязвимость. XSPA позволяет атакующим нацеливаться на серверную инфраструктуру, главным образом на веб-сервера интранет, веб-сервер самого приложения, а также любой публично доступный сервер с выходом в Интернет. Я сталкивался с пятью различными атаками, которые могут запускаться через XSPA:

  1. Сканирование портов удаленных серверов с выходом в Интернет, устройств интранет и локального веб-сервера. В некоторых случаях также возможно получить баннеры служб.
  2. Эксплуатирование уязвимых программ, запущенных в интранет или на локальном веб-сервере
  3. Атака внешних/images/55_2.jpgвнутренних веб-приложений, которые имеют уязвимости в обработке GET-параметров запроса (SQL-инъекции через URL, манипуляция параметрами и т д.)
  4. Опознание типов и версий веб-приложений интранет с помощью стандартных файлов приложения и его поведения
  5. Чтение файлов локльного веб-сервера с помощью обработчика протокола file:/images/55_2.jpg/images/55_2.jpg/images/55_2.jpg

    Далее мы увидим примеры каждого из этих сценариев для нескольких известных веб-приложений Интернет. [/images/55_2.jpgREPLACE]


Кто Онлайн

Сейчас 16 гостей и ни одного зарегистрированного пользователя на сайте