Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Javascript инъекции
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Javascript инъекции

Страниц (1): [1]
 

1. Yuriy - 19 Февраля, 2010 - 19:23:16 - перейти к сообщению
Сегодня в одной статье увидел данный термин и был малость удивлён Улыбка Стал искать инфо и ничего про Javascript инъекции толком не нашёл. Меня интересуют именно примеры.

Вопрос интересен потому, что делаю сайт и получаю с сервера через AJAX сформированный JS-код с ошибками неправильного заполнения полей формы и потом вывожу их посредством eval() под нужными из них.

Вот стоит у меня eval, и типа мне могут туда подсунуть что угодно и выполнится чужой код. Хорошо, но ведь можно любой JS код выполнить и посредством той же Opera DragonFly, к примеру. Тем более, всё равно на своей же машине! Хотя, вроде бы дело именно в том, что можем быть подменён источник моего js-кода. А вот как - это уже другой вопрос...

Расскажите, пожалуйста, что кто знает интересного из этой темы. А то что-то я забеспокоился, но надеюсь, что напрасно Улыбка
2. SDR - 19 Февраля, 2010 - 19:41:59 - перейти к сообщению
1. как тебе аяксом левый код подсунут? аякс только в рамках домена работает.
2. по сабжу - не в курсе, что за зверь. остаются только догадки, вроде как подсунуть на каком-нить форуме, например, тебе JS код, который сольёт куки, например, скрипту на сайте хацкера средствами JS
3. Yuriy - 19 Февраля, 2010 - 19:43:17 - перейти к сообщению
Вот и мне интересно.

Собственно, данная тема родилась после прочтения:

http://ru[dot]wikipedia[dot]org/wiki/JSON
4. SDR - 19 Февраля, 2010 - 19:48:10 - перейти к сообщению
видимо на ТВОЁМ сайте должна быть уязвимость, позволяющая загружать и выполнять в браузере пользователя JS код. какая-нить доска объявлений не фильтрующая теги, например, как самый туполобый пример. вспомнил. баловались так в конце 90х. но на моей памяти это ограничивалось шутками, вроде попапов и прочего. хотя теоритически так действительно можно слить любые данные из браузера пользователя, куки, хидден поля и прочее, куда-нить себе и сохранить их
5. JustUserR - 19 Февраля, 2010 - 21:12:54 - перейти к сообщению
SDR пишет:
Как тебе аяксом левый код подсунут? Аякс только в рамках домена работает
На самом деле при желании можно получать доступ и к другим доменам - самый простой вариант с помощью CGIProxy на данном домене хотя есть и более хитрые варианты - так что потенциально опасные места типа eval или вставки JS-кода надо заранее проверять
6. Yuriy - 19 Февраля, 2010 - 21:15:11 - перейти к сообщению
JustUserR пишет:
так что потенциально опасные места типа eval или вставки JS-кода надо заранее проверять


То есть, использовать перед eval функцию типа parseJSON?
7. SDR - 19 Февраля, 2010 - 21:20:52 - перейти к сообщению
JustUserR пишет:
На самом деле при желании можно получать доступ и к другим доменам - самый простой вариант с помощью CGIProxy

соглашусь

JustUserR пишет:
хотя есть и более хитрые варианты

а можно подробнее? интересно
8. JustUserR - 19 Февраля, 2010 - 21:40:06 - перейти к сообщению
SDR пишет:
А можно подробнее? Интересно
Среди различных вариантов можно рассмотреть несколько направлений Можно воспользоваться использованием Iframe и тем что со страницы about:blank можно перейти на любой домен и изветнсым образом чекез window.name или window.hash и получать данные - а если в процессе обмена данных произойдет XSS-перенаправление то вам отдадум чужие данные - а если вы подумаете что это JSON и сделаете eval для этих данных - которые конечно передаются в зашифованном виде
Как вариант можно использовать в IE свой или стоонних ActiveX-элемент с помощью которого можно спокойно делать любые запросы - или же можно создать HTA-приложение и с помощью JS на обектах WSH с использованием команды telnet можно делать какие хотите запросы
9. Yuriy - 19 Февраля, 2010 - 21:45:06 - перейти к сообщению
Спасибо! Полезное инфо.

Интересно, насколько хороша будет функция parseJSON?
10. JustUserR - 20 Февраля, 2010 - 01:17:41 - перейти к сообщению
Yuriy пишет:
Спасибо! Полезное инфо. Интересно, насколько хороша будет функция parseJSON?
Пожалуйста! Функция parseJSON действительно является очень полезной для таких вещей но я привел JSON в качестве одного из примеров передачи данных - в общем случае данные могут быть произвольного характера и поэтому их надо проверять - уж не говоря конечно о полях форм в которые пользователи вводят свои данные с разрешенными HTML-тегами как бывает в разделах типа гостевой книги
А дополнительный материал по поводу кросс-доменного обмена данными можете почитать здесь http://dklab[dot]ru/chicken/nablas/58[dot]html и в указанных там источниках внизу статьи

 

Powered by ExBB FM 1.0 RC1