Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #71, НОЯБРЬ 2004 г.

Ядовитый ответ

Кислицин Никита

Хакер, номер #071, стр. 071-070-1


(nikitoz@real.xakep.ru)

Response splitting: новый вид атак на web-приложения

На первый взгляд может показаться, что все сетевые атаки уже давным-давно классифицированы, разложены по полочкам и ничего нового тут придумать невозможно. Но время от времени происходит прорыв, и на наших с тобой глазах формируется принципиально новый вид атак, к которому обычно все оказываются не готовы. Сегодня я расскажу тебе как раз о такой напасти, которая позволяет лихо подменять web-страницы, красть пользовательские данные, отравлять кэши прокси-серверов и проводить CSS-атаки. Вливайся! ;)

Неужели забыли?

Знаешь, умные люди говорят, что все новое – это хорошо забытое старое. Действительно, порой этот фразеологизм выполняется в нашей жизни. Бывает так, что какой-либо занимательный факт долгое время не обсуждается широким сообществом, его как бы не замечают, даже если он очевиден некоторой группе людей. В силу собственной лени человек плохо воспринимает все новое, и если это его не напрягает, он может придумать тысячу причин, чтобы избежать невиданных ранее проблем. Но это происходит до поры до времени. Стоит кому-то копнуть поглубже, как он сразу замечает массу вещей, таящих в себе большую потенциальную опасность. Он изучает эту тему, проводит ряд экспериментов, пишет большущую кичовую статью и публикует ее на популярном сетевом проекте. И вот уже все аналитики трубят в медные трубы: как же так, не замечали, как это ужасно, куда только милиция смотрит.

А в это время на шести из семи континентов наверняка найдется хотя бы по одному человеку, который сидит и улыбается на все происходящее: ему-то это давно уже было очевидно и ничего удивительного в происходящем для него нет. Так случилось и в начале этого года, когда на Sanctum.com был выложен технический документ, описывающий новый для автора-составителя вид атак, который был назван «HTTP response splitting» – «Разделение HTTP-ответов». Сегодня я расскажу тебе как раз об этой атаке. Надо сказать, что это очень занимательная и объемная тема. Что говорить: только официальный whitepaper по этому вопросу занимает 30 листов А4 убористого текста. Я, конечно, не буду тебя грузить сухими теоретическими выкладками, а лишь приведу собственные соображения по этой теме, кратко описав суть проблемы и возможные последствия. Если вопросов нет, пристегивай ремни, представление начинается!

В места в карьер

Я начну с одного несложного примера. Предположим, у нас есть элементарная программа на PHP, которая вешает пользователю cookie, причем содержимое этого параметра определяется самим пользователем:

Подопытный скрипт cook.php

<?php

SetCookie("val", "$_GET[set]");

echo "<h1> Такой вот смешной скрипт</h1> ";

?>

Пример, конечно, дурацкий, но смеяться не стоит. Такого рода программы встречаются на каждом углу, в том числе на больших и серьезных проектах. По замыслу программиста, если выполнить этот сценарий, посетителю станицы будет установлена плюшка с именем val и содержимым, указанным в параметре set. А теперь давай попробуем в качестве этой переменной указать не совсем стандартную строку. Например, вот так:

Содержание  Вперед на стр. 071-070-2