Всем Салам. В ходе пентестов, уже несколько раз сталкивались с ORM-Doctrine и наличием там возможности эксплуатации инъекций, а в сети про DQL инъекции ничего нет. В связи с этим был сделан этот небольшой ресерч.
В дальнейшем будет изучено еще глубже и другие ORM и их диалекты, например, Phalcon (Phql).
В современных веб-приложениях всё реже бывают инъекции, все используют подготовленные запросы и ORM, но мы до сих пор встречаем инъекции при пентестах.
Особый интерес представляют диалекты SQL, встроенные в ORM-библиотеки. Это дополнительная абстракция, которая также подвержена инъекциям, при этом могут возникать уязвимости и при трансляции выражений из диалекта в конкретную реализацию SQL.
Введение
ORM — это библиотека, связывающая объекты и их атрибуты в коде с таблицами и полями в базе данных.
Абстракция ORM позволяет представлять реляционные таблицы БД в виде обычных объектов и обращаться с ними, как с объектами.
ORM позволяет разделить задачи базы данных и приложения, так что программист может даже не писать SQL-запросы, а просто выполнять действия с объектами, и соответствующие SQL-запросы будут сгенерированы...