XSS — Какие браузеры автоматически экранируют URL-адреса в адресной строке?

Я выполнил некоторые xss / javascript-injection / penetration-testing в моем asp.net недавно заметил, что современные web-browser (т. е. последние версии FF и Chrome) пропускают URL-адреса ввел в адресную строку.

So:

http://example.com/search/?q=">‹script>alert(' привет');‹/сценарий>

отправляется на мой сервер как:

http://example.com/search/?q=%22%3e%3cscript%3ealert(%27hi%27)%3b%3c%2fscript%3e

Есть ли список всех (основных) браузеров, которые это делают, и тех, которые этого не делают? Делают ли это мобильные браузеры?


person Philip Pittle    schedule 09.09.2014    source источник


Ответы (2)


Я думаю, что все браузеры избегают URL-адресов, кроме тех, которые содержат ошибки и не следуют RFC (RFC3986).

person Dennis C    schedule 09.09.2014
comment
Вы знаете, какой RFC с рук? - person Philip Pittle; 09.09.2014
comment
В соответствии с RFC3986 tools.ietf.org/html/rfc3986 2.4. Once produced, a URI is always in its percent-encoded form. и где запрос может содержать закодированные , ALPHA, DIGIT или несколько других необслуживаемых. ‹ и › не являются ни одним из них, они ДОЛЖНЫ быть закодированы. С другой стороны, какой-то глючный браузер (вы знаете, я имею в виду IE) неправильно принимал символ юникода в предыдущей версии. - person Dennis C; 09.09.2014
comment
Это звучит немного странно для меня. RFC уже почти 10 лет, но ни в одном из примеров XSS, которые я видел, никогда не упоминалось, что FF и Chrome, как правило, невосприимчивы к плохим ссылкам, поскольку они правильно избегают URL-адресов, и это проблема только IE. Я не говорю, что это неправильно, но у вас есть еще доказательства? - person Philip Pittle; 09.09.2014
comment
@PhilipPittle Конечно, команда IE написала об этом в блоге. blogs.msdn.com/b/ieinternals/archive/2014/04/22/ - person Dennis C; 25.09.2014

Если я не ошибаюсь, вы можете использовать http://browsershots.org/ или что-то подобное для проверки.

Пример теста: http://browsershots.org/requests/12461378

person Margus    schedule 09.09.2014
comment
Хороший инструмент, но не совсем для этой цели. Просматриваю все эти скриншоты только для того, чтобы увидеть URL.. - person MarioDS; 09.09.2014
comment
@MDeSchaepmeester Идея в том, что если эта инъекция сработает, вы увидите всплывающее окно на изображении. Это не лучший браузерный просмотрщик (изображения очень быстро устаревают), но идея осталась. - person Margus; 09.09.2014
comment
Извините, я должен был быть более ясным, пример, который я привел выше, является только синтаксическим, он не показывает реальную атаку. Так что, хотя этот инструмент довольно классный, он, к сожалению, бесполезен (AFAIK). Все основные браузеры, которые я пробовал (FF, Chrome, IE), маскируют тот факт, что они это делают. Другими словами, вы не можете сказать из адресной строки, что URL-адрес был экранирован. - person Philip Pittle; 09.09.2014