Языки сети и уязвимости.

Тема в разделе "Веб-программирование", создана пользователем warlock, 9 авг 2010.

  1. warlock Moderator

    warlock
    О языках сети и некоторых уязвимостях!
    HTML
    Расширения файлов: html,htm,html.
    <form> - Форма для пользовательского ввода.
    Всякий раз, когда программе передается введенная пользователем
    информация, возникает риск нарушения безопасности. Именно таким образом и
    выполняется большинство атак: программе передаются неожиданные символы,
    приводящие к ее неправильной работе.
    <form action> - Атрибут action.
    Этот атрибут дескриптора form> определяет программу, выполняемую
    на Web сервере. Зная имя программы, обрабатывающей пользовательские
    данные, взломщик может получить важную информацию о Web сервере,а также
    найти резервные копии или старые версии этой программы в том же или
    в другом каталоге.
    <form method> Атрибут method.
    Этот атрибут дескриптора <form> определяет механизм передачи пользователь
    ской информации программе обработки, находящейся на Web сервере.
    Существует два метода передачи информации: POST и GET.
    Определив используемый метод, взломщик может прослушивать информацию
    которая может оказаться очень важной) или, что еще хуже,
    выполнить ее подмену и привести к генерации неверных результатов.
    <script language= (переменная) - Язык сценария.
    Дескриптор <script>, используемый вместе с атрибутом language, позволяет
    взломщику изменять любые клиентские сценарии, передаваемые броузеру.
    Если взломщику удастся это осуществить, то он сможет обойти определенные
    сценарии, выполняющие фильтрацию или проверку передаваемых значений.
    К языкам клиентских сценариев относятся следующие:
    1. JavaScript
    2. VBScript
    3. Jscript
    4. XML
    <input> - Управляющий элемент формы.
    Дескриптор <input> позволяет создавать управляющие элементы формы для
    ввода данных. Можно изменить некоторые атрибуты и передать нежелательные
    данные на Web сервер.
    <input type=hidden> - Атрибут type.
    Этот атрибут со значением hidden позволяет взломщику задать для атрибута value нежелательное значение. Например, на некоторых Web узлах скрытый атрибут используется для хранения цены товара из торговой тележки. Взломщик может вручную изменить цену этого товара. Если на сервере не выполняется проверка значения цены, то в интерактивном магазине можно будет покупать товары по существенно сниженным ценам.
    <input maxlength=(переменная)> - Атрибут maxlength.
    Изменив атрибут maxlength, взломщик сможет передавать на сервер длинные строки, что приведет к его блокировке, если отсутствует механизм предварительной обработки входных данных.
    <input size=(переменная)> - Атрибут size.
    Как и maxlength, этот атрибут взломщик может изменить. При этом появиться возможность передачи на сервер длинных строк, которые при отсутствии их предварительной обработки приведут к блокировке сервера.
    <applet> - Апплет Java.
    Этот дескриптор используется для запуска аплетов Поскольку аплет передается в незашифрованном виде и в нем содержится хорошо известный байт-код,в сетевом трафике его можно обнаружить с помощью анализатора пакетов типа snort или EtherPeek. Для получения более подробной информации о декомпиляции аплетов Java и использовании дескриптора <applet> читайте раздел, посвященный Java, ниже.
    <object>.
    Обычно этот дескриптор используется для запуска управляющих элементов ActiveX, но может применяться также и для аплетов Java. Взломщик может отправить электронное сообщение с внедренным кодом "заставить" пользователя запустить элемент управления ActiveX и захватить управление системой. Элемент <object> является наилучшим способом распространения почтовых вирусов.
    <embed>.
    Этот дескриптор обычно используется совместно с дескриптором и
    предназначен для работы с элементами управления ActiveX и дополнительными модулями Netscape.

    Perl - (Practical Extraction and Report Language).

    Как правило, язык Perl используется для обработки данных,введенных пользователем в полях формы. В качестве примера рассмотрим форму, в поля HTML <imput> и <textarea> которой пользователь может вводить данные.
    Пример 1:
    <form method=Post action="/cgi-bin/mailto.pl"></form>
    Введенная информация передается Perl программе (т.е. mailto.pl) с помощью метода POST, указанного в дескрипторе <form>.
    После этого сценарий raailto.pl выполняет необходимые действия и возвращает сгенерированные данные обратно броузеру. Чрезвычайно ясная и простая процедура.
    Но взломщик может сгенерировать запрос на получение файла паролей системы Unix ../../../../../../../etc/passwd.
    Или запрос на получение резервной копии файла SAM системы Windows
    ../../../../../../../winnt/repaire/sam._

    PHP - (Personal Home Page).
    PHP является одним из наиболее распространенных языков серверных сценариев.
     
  2. warlock Moderator

    warlock
    ASP - (Active Server Pages).
    Активные серверные страницы ASP (Active Server Pages) являются технологией создания серверных сценариев, разработанной компанией Microsoft. В основном они предназначены для использования на Web сервере IIS (Internet Information Server) этой компании и в целях создания динамического содержимого Web узла позволяют
    совместно использовать код HTML, сценарии и серверные компоненты ActiveX. Как и при использовании Perl, PHP и CFM, язык ASP позволяет выполнять код на самом
    Web сервере.

    Элементы управления ActiveX.
    Элементы ActiveX относятся к объектной модели компонентов COM (Component Object Model). Это еще один механизм,разработанный компанией Microsoft для передачи динамического содержимого в Web. Кроме того, существуют также встраиваемые модули компании Netscape. Элементы управления ActiveX могут разрабатываться на многих языках програм
    мирования, включая C++, Visual Basic и Java. С использованием технологии ActiveX можно создавать объекты с динамическим содержимым, например часы, изображения с анимационными эффектами и соединения с базами данных. Опасность элементов ActiveX заключается в том, что они размещаются в программах контейнерах, таких, как Microsoft Office.
    В отличие от большинства упоминавшихся выше языков программирования Web, элементы ActiveX нельзя создавать в простых текстовых редакторах, поскольку они должны компилироваться и помещаться в файлы .cab в интегрированной среде разработки IDE, например C++/MFC или Visual Basic. Созданный один раз, CAB-файл и соответствующий идентификатор CLSID должны использоваться в файле HTML, в котором выполняется загрузка элемента управления ActiveX. Ссылка создается с исполь
    зованием дескриптора HTML <object> и его атрибутов CLASSID и CODEBASE.

    CGI - (Common Gateway Interface).
    Интерфейс CGI (Common Gateway Interface) является одним из старейших и наиболеезрелых стандартов Internet, определяющих механизм обмена информацией между Web сервером, программой (например, на языке Perl)и Web броузером, а также используемый
    при этом формат данных. Объединение механизма CGI с такими языками, как Perl, позволило создать одну из первых платформ передачи динамического содержимого в Web. В отличие от технологий ASP или PHP, CGI не является языком, а скорее пред
    ставляет собой набор рекомендаций, применяемых в других языках. Фактически для создания CGI-программ можно использовать различные языки, в том числе:
    1. Perl
    2. С/C++
    3. Java
    4. языки сценариев командных оболочек sh, csh и ksh(Unix)
    5. Visual Basic (Windows)
    6. AppleScript (MacOS)

    Серверные включения (SSI): HTML и SHTML .

    Файлы SHTML принято относить к средствам CGI, поскольку обычно в них используются серверные включения SSI,обеспечивающие возможность обработки данных на сервере.Технология SHTML считается "прародителем" средств обработки информации на сервере, поскольку она использовалась еще на заре развития Web, но все еще применяется в настоящее время (хотя достаточно редко).

    Java - Расширения файлов: отсутствуют.
    Java - это объектно ориентированный язык, в котором все элементы программы (т.е. переменные, функции, подпрограммы или само приложение) считаются объектами. В настоящее время с использованием Java разрабатываются многие Web приложения. Однако их исходный код нельзя получить так же просто, как при
    использовании других языков программирования для Web. Это связано с тем,что исходный код Java компилируется в файлы .class в которых содержится байт код.
    Имея исходный код, взломщик может подробно ознакомиться с работой приложения, в том числе получить любые пароли, используемые для соединения с серверами и доступа к базам данных. Из многих существующих сегодня декомпиляторов Java наиболее точным является JAD (Java Decompiler), разработанный Павлом Кузнецовым (Pavel Kouznetsov).

    JavaScript.
    Это не компилируемый, а интерпретируемый язык сценариев, который изначально был разработан компанией Netscape. Однако между языками JavaScript и Java нет ни какой связи, кроме схожести названий. Java является компилируемым, объектноориентированным и достаточно сложным языком программирования, в то время как JavaScript представляет собой объектный язык разработки сценариев, предназначенный для быстрого создания Web приложений. Хотя он и предоставляет некоторые ба
    зовые возможности объектно ориентированного подхода, он гораздо ближе к языкам сценариев, например Perl. Язык JavaScript полезно использовать для решения простых задач, например для проверки правильности заполнения полей формы, добавления
    кода HTML по требованию, выполнения пользовательских вычислений.

    Jscript.
    Язык Jscript - это попытка компании Microsoft разработать аналог JavaScript для Web броузера Internet Explorer. Как и JavaScript, Jscript является интерпретируемым, объектно ориентированным языком сценариев. Однако в отличие от JavaScript, язык Jscript предоставляет гораздо более широкие возможности взаимодействия с элементами ActiveX, чем VBScript. Кроме того, Jscript не может выполнять чтение/запись
    файлов и не предназначен для создания автономных приложений.
    Сценарии Jscript используются практически так же, как и сценарии JavaScript: с использованием дескриптора <script>.
    ---
    Вот так вот, так что думайте, что пишите и как пишите!
    Успехов !!! :)
     
  3. Bafalov New Member

    Bafalov
    Если взломщику удастся это осуществить, то он сможет обойти определенные сценарии, выполняющие фильтрацию или проверку передаваемых значений.
     

Поделиться этой страницей