SQL Тавтология не ясна - PullRequest
       94

SQL Тавтология не ясна

0 голосов
/ 30 апреля 2020

У меня вопрос к правилу с идентификатором 942130 (https://github.com/fastly/waf_testbed/blob/master/templates/default/REQUEST-942-APPLICATION-ATTACK-SQLI.conf.erb). Зачем проверять это правило «только» x = x в этом шаблоне (x может быть любым символом). Атака может быть успешной, только если в запросе есть "или" или x = x ". По этой причине шаблон должен быть расширен таким образом, чтобы проверялось "or x = x". Я что-то упустил?

Пример: "FooH = HA", который определяется как sql инъекция, но не понимаю почему. Вопрос в том, "H = H".

Разве шаблон не должен сравнивать всю строку до и после = вместо отдельных символов?

1 Ответ

1 голос
/ 30 апреля 2020

Было бы намного сложнее описать правило в регулярном выражении (которое уже довольно сложно). Между OR и x = x может произойти много вещей, которые все еще будут синтаксически верны.

Кроме того, OR на самом деле не нужно. Рассмотрим, например, sql внедрение, где параметр должен быть чем-то вроде «ORDER BY x», а злоумышленник передает «WHERE x = x». Или есть. Или множество других потенциальных атак.

Намного проще определить тавтологию как x = x, что обычно не происходит в большинстве случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...