При последнем пентесте довелось мне встретиться с архитектурой Web-приложения, как показано на картинке справа.
Что тут не так спросите вы?
Да дело все в том, что ораклятина не мускуль. И не про какое экранирование, в стиле обратного слеша, oracle попросту не знает :) У оракла вообще нет такого понятия, как "экранирование" - это ведь серьезная СУБД:
name='more'>
Надо сказать, что в последнем пентесте, оракла было довольно много и большинство из них в такой архитектуре грешили указанной уязвимостью, т.е. универсальным логином "'or(1)=(1)--" (aka SQL Injection ).
Аналогичная особенность интерпретации обратного слеша ("") в качестве независимого символа, характерна и для Microsoft SQL Server:
И для базы данных Sybase:
Таким образом, чтобы не попасть впросак на уязвимости типа "внедрение операторов SQL" следует учитывать подобные особенности СУБД при программировании и портировании своих приложений под разные базы данных.
Примечание: эту тему год назад в своем блоге поднимал Bernardo Damele [ 1 , 2 ], но как показала практика, проблема до сих пор является актуальной.
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.