SEOSERVISE - Защита информации.

 
   
 

Главная


 


Теперь вернемся к вопросу, который был сформулирован выше: "Что произойдет, если вызвать обработчик JSPServlet и передать ему обычный HTML - или ASCII- файл?". Можно попробовать найти ответ и на другой вопрос: "Будет ли сервер при­ложений компилировать этот файл, а затем передавать результаты выполнения полу­ ченного байт-кода, если в нем будет содержаться код Java ?". Для получения ответов на эти вопросы существует единственный способ — попробовать! Прежде чем "применить" обработчик JSPServlet к файлу input . html , в этом файле нужно разместить свои "данные", представляющие собой код Java , а не обычный текст. На рис. 12.8 показан простой оператор печати на Java , размещаемый в файле input . html . В сообщении, размещенном в файле input . html , содержится исходный код на язы­ке Java . Теперь для обработки файла input . html можно вызвать обработчик JSPServlet . В соответствии с используемой архитектурой ссрвлет JSPServlet предназначен для об­ работки кода JSP и, следовательно, должен интерпретировать содержимое файла input . html как дескрипторы JSP , которые нужно скомпилировать и выполнить. Этот прием можно реализовать с помощью следующего URL : http :// wvw . acroetradeonline . con /*. jsp /../ feedback / input . html Такой запрос сообщает серверу WebLogic о том, что для компиляции и выполне­ ния файла /• ./ feedback / input . html необходимо запустить ссрвлст JSPServlet . Если воспользоваться таким адресом URL , то в окне броузера будет выведена строка Execute Me . В данном случае обращение к обработчику JSPServlet привело к удаленному выполнению команды на сервере компании Acme , а не к получению исходного кода. Как видно из рис. 12.10, при принудительном использовании обработчика JSPServlet была скомпилирована HTML -страница. При этом полученный класс-файл был размещен в рабочем каталоге, а полученные в результате его выполнения данные отправлены обратно клиенту. Однако вместо простых операторов печати взломщик может воспользоваться более мощным фрагментом кода и выполнить на удаленной системе произвольную команду. На рис. 12.11 показан процесс вставки кода, позволяющего выполнить на удаленной машине команду dir

 

 

 

 

 

 
 

1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |87 |88 |89 |90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100 |