Эксплуатация XSS в параметре функции
Представим ситуацию, когда вы заглядываете в JS и ваш ввод попадает в конструкцию:
func("x","ваш ввод")
При этом, запрещено использование символов
<>'()` однако разрешено использование
"
Первое, что мы должны помнить, это то, что любая функция в JS может принимать неограниченное количество параметров. Таким образом можно использовать конструкцию:
func("x","",location="javascript:alert(1)")
Затем, вспоминаем, что использование скобок запрещено, но, в данном контексте, это не проблема. Мы можем просто закодировать их в hex и выполнить XSS:
func("x","",location="javascript:alert\x281\x29")
Но есть еще один трюк, который может быть вам полезен. Если открывать уязвимый сайт через другой сайт, то можно принудительно задать значение
window.name, через
window.open(), что позволит нам сократить пэйлоад и выполнить XSS несколько иным образом:
func("x"+{a.location=name}+"")
func("x"+new class b{toString=e=>location=name}+"")
Более подробно и наглядно обо всем этом можете
посмотреть тут.
#web #xss
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram