2015-04-20 2 views
1

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

Я использовал следующий код в моем HTML файл:

Select your language: 

<select><script> 
    document.write("<OPTION value=1>"+document.location.href.substring(document.location.href.indexOf("default=")+8)+"</OPTION>"); 
    document.write("<OPTION value=2>English</OPTION>"); 
</script></select> 

Я тогда загорелся сайт и попытался прилагая URL с помощью:

?default=<script>alert(document.cookie)</script> 

Что не делает ничего и затем снова с:

#default=<script>alert(document.cookie)</script> 

Который также ничего не делает.

Что мне не хватает?

+0

Проверьте свою консоль; любые ошибки? –

+0

@EdCottrell только хром дает ошибку «Аудитор XSS отказался выполнить скрипт в http: // localhost: 63342/Secur/index.html? Name = Tim # ', потому что его исходный код был найден в рамках запроса. Аудитор был включен, поскольку сервер не отправил ни заголовок «X-XSS-Protection», ни «Content-Security-Policy». » Другие браузеры не дают никакой ошибки – RandomPerson

ответ

0

Возможно, Chrome блокирует выполнение вашей атаки XSS, так как он имеет встроенный фильтр. В большинстве современных браузеров включена защита по умолчанию XSS. Чтобы проверить это, я бы использовал Firebox и отключил фильтр XSS. Для этого перейдите к about:config и установите для значения browser.urlbar.filter.javascript значение false.

Мне также пришлось сменить тестовый кейс HTML. Мне нужно было URI декодировать параметр default для запуска сценария.

Select your language: 

<select><script> 
    document.write("<OPTION value=1>"+decodeURIComponent(document.location.href.substring(document.location.href.indexOf("default=")+8))+"</OPTION>"); 
    document.write("<OPTION value=2>English</OPTION>"); 
</script></select> 
Смежные вопросы