Вернуться   RDot > Аспекты НСД > Web-среда/Web-applications

Результаты опроса: К какому типу относится?
stored 2 15.38%
reflected 8 61.54%
DOM based 1 7.69%
отдельный тип 0 0%
не понял, о чем речь 2 15.38%
Голосовавшие: 13. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.10.2013, 04:37   #1
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию Классификация XSS (вопрос)

В общепринятой классификации XSS разделяется на 3 типа: stored (persistent), reflected (non-persistent) и DOM based.
Рассмотрим такой пример:
Сайт A:
PHP код:
<script>alert(/XSS/)</script> 
Сайт B:
PHP код:
...
<?php
readfile
($_GET['xss']);
?>
...
Вектор XSS-атаки:
http://siteB.com/?xss=http://siteA.com/
То есть, пользователь передает на сайт B запрос, содержащий ссылку на сайт A. Cервер B считывает текст с сайта A и выводит на страницу.
С классификацией атаки проблем нет. Наш скрипт внедрен в страницу и JS-код выполняется в контексте сайта B - значит XSS.

Попробуем определить тип, использую классификацию OWASP:
1) Stored
"Stored attacks are those where the injected script is permanently stored on the target servers, such as in a database, in a message forum, visitor log, comment field, etc."
Не подходит. На целевом сервере скрипт не хранится.
2) Reflected
"Reflected attacks are those where the injected script is reflected off the web server, such as in an error message, search result, or any other response that includes some or all of the input sent to the server as part of the request"
Тоже не подходит. Ответ сервера не содержит данных, переданных в запросе.
3) DOM Based
"is an XSS attack wherein the attack payload is executed as a result of modifying the DOM “environment” in the victim’s browser used by the original client side script"
Здесь все очевидно. Скрипт внедрен, для атаки не используются скрипты оригинальной страницы сайта B.

Вопросы:
К какому типу относятся такие XSS (аргументируйте свой ответ)? Или это отдельный тип, который еще не классифицирован?


p.s.:
vk.com в качестве практического примера - http://forum.antichat.ru/showthread....41#post2886741, пост #3

Последний раз редактировалось M_script; 30.10.2013 в 04:58..
M_script вне форума   Ответить с цитированием
Старый 30.10.2013, 06:02   #2
Enigma
 
Аватар для Enigma
 
Регистрация: 17.06.2013
Сообщений: 37
Репутация: 12
По умолчанию

Мне кажется это недочёт определения reflected xss у OWASP.

Более правильно было бы
Цитата:
"Reflected attacks are those where the injected script is reflected off the web server, such as in an error message, search result, or any other response that uses some or all of the input sent to the server as part of the request"

Последний раз редактировалось Enigma; 30.10.2013 в 06:08..
Enigma вне форума   Ответить с цитированием
Старый 30.10.2013, 11:31   #3
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

Enigma, это не едиственный недочет определения.

Еще один пример:
Все страницы сайта содержат код:
PHP код:
echo $_SESSION['name']; 
Страница page1.php:
PHP код:
$_SESSION['name'] = $_GET['name'];
...
echo 
$_SESSION['name']; 
Вектор:
http://site.com/page1.php?name=<script>alert(/XSS/)</script>

Этот вектор подходит под описание как reflected, так и stored - код передается в запросе и выводится в ответе сервера, но при этом хранится на сервере во временном файле. Но фактически это CSRF + stored XSS.
А если заменить $_SESSION['name'] на $_COOKIE['name'], суть не изменится - CSRF + stored XSS, код будет выводиться на всех страницах, но по определению stored превратится в reflected.


P.S.:
Кстати, пример из первого поста можно отнести не только к reflected, изменив одно слово в определении (includes на uses).
Меняем target на remote и у нас уже stored =)
"Stored attacks are those where the injected script is permanently stored on the remote servers, such as in a database, in a message forum, visitor log, comment field, etc."

Последний раз редактировалось M_script; 30.10.2013 в 11:35..
M_script вне форума   Ответить с цитированием
Старый 30.10.2013, 11:39   #4
k.v
Banned
 
Регистрация: 11.01.2012
Сообщений: 19
Репутация: 4
По умолчанию

Как уже отмечено в твиттере (https://twitter.com/kochetkov_v/status/395468419123781632) - здесь не одна атака, а целых три.
k.v вне форума   Ответить с цитированием
Старый 30.10.2013, 11:53   #5
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

k.v, HTMLi здесь точно нет, RFI тоже с большой натяжкой и только для кода, который я написал в теме, но не для того, который приведен по ссылке.
То, что не одна атака, согласен. Сейчас придет d0znpp и скажет, что это один из видов SSRF =)
M_script вне форума   Ответить с цитированием
Старый 30.10.2013, 11:58   #6
Beched
 
Регистрация: 06.07.2010
Сообщений: 395
Репутация: 118
По умолчанию

Думаю, что reflected XSS.

Цитата:
Тоже не подходит. Ответ сервера не содержит данных, переданных в запросе.
Как не содержит? Просто другая точка входа -- данные переданы с другого сервера, по сути это та же отражённая XSS.

Это как в случае, когда в веб-приложении исполняется код, полученный из БД. Просто другая точка входа, а уязвимость та же.
Beched вне форума   Ответить с цитированием
Старый 30.10.2013, 12:03   #7
k.v
Banned
 
Регистрация: 11.01.2012
Сообщений: 19
Репутация: 4
По умолчанию

Цитата:
Сообщение от M_script Посмотреть сообщение
k.v...только для кода, который я написал в теме, но не для того, который приведен по ссылке.
Все так, я только про код, который в теме и говорил Но HTMLi здесь все же есть, т.к. контролируемый атакующим фрагмент HTML-кода, попадает в HTML-документ, изменяя при этом дерево его разбора. Этого достаточно, чтобы назвать такую атаку инъекцией.

Цитата:
Сейчас придет d0znpp и скажет, что это один из видов SSRF =)
И будет, в общем-то, прав =/
k.v вне форума   Ответить с цитированием
Старый 30.10.2013, 12:04   #8
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

Цитата:
Сообщение от Beched
Это как в случае, когда в веб-приложении исполняется код, полученный из БД.
Вот именно. Классификации OWASP, WASC и другие общепринятые разделяют XSS по точке входа. В случае получения кода из БД не вызывает сомнений, что XSS хранимая.

Цитата:
Сообщение от k.v
атакующим фрагмент HTML-кода, попадает в HTML-документ, изменяя при этом дерево его разбора
HTMLi от XSS отличается только целью атаки - изменение структуры документа VS выполнение клиентских скриптов

Последний раз редактировалось M_script; 30.10.2013 в 12:07..
M_script вне форума   Ответить с цитированием
Старый 30.10.2013, 12:19   #9
Jokester
 
Аватар для Jokester
 
Регистрация: 01.07.2010
Сообщений: 252
Репутация: 155
По умолчанию

Не совсем по теме, но по теме классификаций OWASP (к тому что не нужно брать это за эталон).

Где у них чтение файлов? (https://www.owasp.org/index.php/Path_Traversal не предлагать, ибо не то)
__________________
------------------
Jokester вне форума   Ответить с цитированием
Старый 30.10.2013, 12:27   #10
Beched
 
Регистрация: 06.07.2010
Сообщений: 395
Репутация: 118
По умолчанию

Цитата:
Сообщение от M_script Посмотреть сообщение
Вот именно. Классификации OWASP, WASC и другие общепринятые разделяют XSS по точке входа. В случае получения кода из БД не вызывает сомнений, что XSS хранимая.
Да, классификации кривые, конечно.
Но в данном случае вектор каждый раз получается через HTTP.
Т.е. сервер -- чёрный ящик, который умеет преобразовывать URL http://evil.com/xss в код <script>alert(1);</script>. URL каждый раз передаётся клиентом, поэтому, такая атака ближе всего к reflected xss.

Другое дело, что при stored XSS из БД тоже всякий раз данные получаются заново, просто по другим протоколам. Но ведь это прозрачно для пользователя, он использует лишь штатный функционал приложения.


Ещё вброс: к какому виду XSS относится MitM? =)
Beched вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot