Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.51 KB | None | 0 0
  1. Основные задачи, решаемые веб-сервером. Понятие и виды веб-приложений. Основные уязвимости веб-приложений: SQL-инъекция, межсайтовый скриптинг (XSS)
  2. 1 На основе каких уязвимостей веб-приложения можно осуществить SQL-инъекцию? Каким образом данная атака эксплуатируется и с какой целью?
  3. SQL-инъекция – это разновидность атаки для получения неавторизированного доступа к базе данных или для получения информации напрямую из базы данных. Такой вид атаки становится возможным благодаря общей грубой ошибке большинства программистов: их программы получают данные от клиента и исполняют SQL-запросы с этими данными без предварительного разбора и анализа полученных данных. Как результат, атакующий может выполнять любые операции над атакуемой базой данных. В некоторых случаях атакующий, через базу данных, может даже получить доступ к операционной системе или локальной сети, в которой находится компьютер с базой данных. SQL-инъекция работает даже в случае, когда база данных защищена файерволом (firewall), для операционной системы установлены все последние обновления и открыт только 80-й порт.
  4. Эксплуатация SQL-инъекции состоит в следующим:
  5. • выявления SQL-инъекции;
  6. • определения типа и версии СУБД;
  7. • определения имени пользователя и его привилегий;
  8. • повышения привилегий;
  9. • эксплуатация уязвимости.
  10.  
  11. 2 Основные причины возникновения уязвимостей для проведения SQL-инъекции?
  12. 1) Динамическое построение SQL-запросов
  13. Динамические SQL-запросы популярны среди разработчиков, так как они просты и удобны в использовании. К сожалению, динамические SQL-запросы являются причиной SQL-инъекций. Если входные данные не достаточно проверяются и не кодируются приложением в момент передачи запроса СУБД на выполнение, тогда при определенных условиях они могут быть интерпретированы СУБД как дополнительные команды.
  14. 2) Некорректная обработка исключений
  15. Большинство приложений некорректно обрабатывают исключительные ситуации, возникающие при работе с СУБД, и отображают сообщение о возникшем исключении пользователю. В результате злоумышленник сможет узнать детали реализации приложения (язык разработки приложения, тип и версию СУБД), а также извлечь конфиденциальную информацию из БД.
  16. 3) Некорректная обработка специальных символов
  17. Если приложение некорректно обрабатывает специальные символы, содержащиеся во входных параметрах, то запрос, передаваемый СУБД, может быть модифицирован злоумышленником с целью получения конфиденциальной информации из БД.
  18. 4) Некорректная обработка типов
  19. Многие разработчики приложений полагают, что фильтрация одинарных кавычек (‘) спасает от SQL- инъекций. Символ одинарной кавычки (‘) обозначает конец строки в SQL-запросе и отделяет данные от исполняемых команд. Фильтрацией (‘) можно защититься от SQL-инъекций только в строковых параметрах. При этом сохраняются инъекции в параметрах других типов, например в числовых.
  20. 5) Не безопасная конфигурация SQL
  21. Еще одной серьезной проблемой является наличие избыточных привилегий у учетной записи, используя которую сервер приложений работает с СУБД. Как правило, разработчики приложений не являются специалистами по СУБД и тем более специалистами по информационной безопасности. В связи с этим они не всегда уделяют внимание вопросам безопасной работы приложения с СУБД и назначают учетной записи избыточные (в некоторых случаях – максимальные) привилегии (например, роль DBA).
  22. 3 Виды SQL-инъекции? Существует ли среди них наиболее вредоносная? Если существует то почему?
  23. 1) SQL-инъекция, осуществляемая через параметры URL. Такой вид инъекции возможен, если параметры передаются на сервер методом GET. Этот случай был рассмотрен, когда приводился пример простой SQL-инъекции.
  24. 2) SQL-инъекция, осуществляемая через поля input HTML формы. Этот вид инъекции возможен, если атакующий попытается ввести свой SQL-код, используя поля input на Web-странице. Механизм SQL- инъекции через поля input похож на механизм SQL-инъекции через параметры URL. Различие в том, что в первом случае данные с Web-страницы попадают Web-приложению методом POST, а во втором – методом GET. Формирование SQL-запроса может проводиться одним методом.
  25. 3) SQL-инъекция, осуществляемая через hidden поля HTML-формы. Такой вид SQL-инъекции возможен, если атакующий попробует изменить hidden поля в Web-формы, а затем передать эту форму на сервер для выполнения. Механизм инъекции через этот элемент похож на механизм инъекции через поля input. Различие заключается в том, что данные в hidden-поле нельзя изменить через Web-страницу напрямую, а только меняя код Web-страницы.
  26. 4) SQL-инъекция, осуществляемая через cookies. Этот вид возможен, если атакующий попытается изменить значения cookies, которые хранятся на машине пользователя, а затем открыть Web-страницу, которая использует эти cookies. Если разработчик не проверяет значения, полученные из cookies, то велика вероятность, что может произойти SQL-инъекция. Данные из cookies формируются в SQL-запрос Web-приложением и отправляются базе данных. Таким образом, может быть сформирован не ожидаемый SQL-запрос.
  27.  
  28. 4 Что такое XSS-скриптинг? Чем данная атака отличается от SQL-инъекции? Какие цели преследует данная атака?
  29. XSS – угроза, при которой приложение включает в состав страницы, отправляемой пользователю, переданные им данные без их предварительной проверки или форматирования. Атаки на основе XSS на самом деле являются атаками на основе инъекций кода, затрагивающими процесс интерпретации отправленной веб-приложением страницы в пользовательском браузере.
  30. Целью атак на основе межсайтового скриптинга является похищение пользовательских аутентификационных данных из кук и любой другой важной информации, которая участвует в процессе аутентификации клиента на веб-сайте. С похищенным (действительным) идентификатором пользователя взломщик может представиться пользователем и похитить его данные.
  31. SQL иьекции направленны на базы данных, а XSS атаки направленны на изменение кода сайта.
  32. 5 Какие существуют типы XSS-уязвимостей? Какой из типов является наиболее эффективным в плане проведения самой атаки? Каким образом с помощью эксплойта можно получить доступ по этой уязвимости?
  33. 1) Постоянно существующие или хранимые уязвимости
  34. Постоянно существующие XSS-уязвимости являются наиболее мощными и эффективными из всех. Они присутствуют в том случае, если данные, передаваемые веб-приложению пользователем вначале помещаются на постоянное хранение на сервере (в базу данных, файловую систему или другое хранилище), а затем выводятся пользователям в виде веб-страницы без должной обработки.
  35. Сценарий атаки на систему онлайн-сообщений, приведенный ниже, является классическим примером подобной ситуации. Схема атаки, основанной на постоянно существующей уязвимости, показана на рис. 5.2.
  36.  
  37. Рис. 5.2. Схема атаки с использованием постоянно существующей уязвимости
  38. В начале атаки взломщик внедряет вредоносный сценарий с помощью веб-формы ввода данных. После этого внедренный код сохраняется в базе данных сервера. Когда любой пользователь открывает страницу, вредоносный код исполняется. Любой пользователь, который переходит по ссылке (или всего лишь просматривает сообщение в случае атаки с использованием тэга IFRAME) становится жертвой атаки, так как вредоносный код исполняется в его браузере и отправляет его аутентификационные данные взломщику.
  39. Это тип атаки очень эффективен, так как взломщик может атаковать ряд пользователей сервера - всех тех, кто переходит по ссылке или просматривает сообщение.
  40. 2) Непостоянно существующие или отраженные уязвимости
  41. Непостоянно существующие XSS-уязвимости являются на данный момент наиболее эксплуатируемыми. Этот тип XSS-уязвимостей чаще всего возникает из-за того, что сценарии в ходе генерации документов в формате HTML выводят пользовательские данные без дополнительной обработки.
  42. Схема атаки, основанной на отраженной уязвимости показана на рис. 5.3.
  43.  
  44. Рис. 5.3. Пошаговая иллюстрация процесса атаки, основанной на отраженной уязвимости
  45.  
  46. 6 Какой известный вид вирусов в своём алгоритме использует XSS-скриптинг? В чём принцип работы данного вредоносного ПО?
  47.  
  48. 1) XSS -атаки с использованием мета-информации (miXSS)
  49. Это новый тип XSS-уязвимостей, появившийся недавно и использующий уязвимости утилит для сетевого администрирования. Эту уязвимость можно обнаружить в коде серверов, использующих корректные пользовательские запросы для сбора данных и вывода их пользователю. Атаки на основе межсайтового скриптинга проводятся при использовании этих данных. При этом взломщики могут получить информацию о утилитах сетевого администрирования. Веб-сайты, которые позволяют провести разрешение DNS и веб-сайты, которые проверяют записи SPF наиболее подвержены miXSS-атакам. Для того, чтобы узнать больше данном типе атак, обратитесь к списку дополнительных ресурсов в конце статьи.
  50. 2) XSS Shell
  51. XSS Shell является инструментом для установления XSS-канала между жертвой атаки и взломщиком, причем взломщик может управлять браузером при помощи команд. Обмен данными является двухсторонним.
  52. 3) XSS Tunnel
  53. Это программа с открытым исходным кодом на .NET, распространяемая под лицензией GPL и являющаяся обычным HTTP-прокси, работающим в системе взломщика. Она позволяет передавать HTTP-трафик через туннель в виде XSS-канала и теоретически может использоваться вместе с любым приложением, работающим с HTTP-прокси.
  54. 4) DDoS-атаки при помощи XSS
  55. Тенденции развития XSS-атак указывают на то, что взломщики используют уязвимые сайты в качестве начального шага при проведении распределенных атак отказа в обслуживании. Они предлагают пользователям скачать и установить дополнения для браузера. Когда пользователь переходит по ссылке, вместе с дополнением для браузера в его систему (в большинстве случаев) в фоновом режиме устанавливается вредоносное ПО в виде червя или бота. Это ПО может предоставить взломщику неограниченные права в пользовательской системе, поэтому взломщик может использовать систему для проведения атак отказа в обслуживании или для построения ботнета.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement