Показать сообщение отдельно

  #1  
Старый 04.02.2016, 14:18
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,315
С нами: 10248806

Репутация: 2371


По умолчанию

Как проводить инъекции в HQL написано здесь.

Доступные функции при проведении инъекций в HQL - http://www.h2database.com/html/functions.html

Провести инъекции можно на все таблицы данных независимо от наличия прав доступа к ним. Если на сайте база под ReadOnly юзером, мы все равно можем обращаться к другим таблицам.

Суть уязвимости заключается в обходе HQL парсера. Он считает что

XXnon-breaking-spaceXX это 1 символ, а база данных видит в нем подзапрос.

Таким образом если мы заменим пробел на \u00A0, то сможем выполнить любой запрос.

Например:

Цитата:
Сообщение от None  
query=' and (select password from users where id=1)=0 or ''='
Выведет ошибку HQL на недостаток доступа или о том, что надо установить resultSet scroll.

А если мы поправим запрос так:



Запрос картинкой потому что WAF античата не даёт создать тему с таким запросом

Запрос можно взять тут.


Где X заменим на \u00A0, то парсер пропустит данный запрос и обратится к базе, которая нам всё покажет.
 
Ответить с цитированием