В продолжении описания видов инъекция я хотел бы затронуть xss injection.Буду писать данную статью с расчета на то что предыдущую(про html injection) вы уже прочитали :). Итак, начнем с теории. А именно вырезка из wikipedia о xss injection: Cross-site scripting (XSS) is a type of computer security vulnerability typically found in web applications that enables malicious attackers to inject client-side script intoweb pages viewed by other users. Хочу подчеркнуть следующие строки: "inject client-side script intoweb pages viewed by other users" - то есть в xss injections мы внедряем скрипт, который прогружается на сервер и выполняется у пользователя на машине. В данном типе инъекции мы должны не только найти место уязвимости, но оно еще должно быть в общедоступном месте, которое может просматриваться остальными пользователями (например: комментарий к статье, или в саму статью).
Теперь попробуем провести пример инъекции. Для примера я зарегистрировал аккаунт в системе hut.ru (они бесплатны и позволяют загружать себе на сайт любые скрипты), залил туда одну из своих первых мини сайтов - личную страницу (небольшой статический сайтец) и поставил там форум phpBB. С подготовкой покончили начинаем внедряться: 1. Идем на форум: http://xss.hut2.ru/phpBB2/, регистрируемся или входим туда под уже имеющимся аккаунтом (логин:xss пароль:elio.at.ua). 2. Пробуем написать статью, берем осмысленный текст (для примера сойдет lorem ipsum). 3. Пробуем внедрить в текст скрипт, можно начать с безопасного тега <b>текст</b> который вроде бы просто выделяет текст жирным, а на практике дает вам понять что вам позволено выполнять html код со стороны клиента. В статье http://xss.hut2.ru/phpBB2/viewtopic.php?t=2 видно, что второе слово выделено жирным, значит код работает. 4. Окей, это хорошо. Следующим шагом будет выполнения скрипта. Тут тоже можно попробовать 2 варианта: первый, который должен отобразить маленькое окно с прогруженым в него сайтом: Code <iframe src="http://elio.at.ua/"></iframe> второй, выкидывает сообщение при каждой загрузке страницы о используемых кукисах для данной страницы: Code <script> alert(document.cookie); </script>
В примере я попробовал оба варианта, и как видите они работают. Итак, все замечательно - если вы тестировщик, или все плохо - если вы программист :)
В следующей статье по инъекциям, я приведу пример рабочего xss скрипта, для понимания что вообще происходит и зачем это происходит.
|