Мне интересно, можно ли блокировать атаки SQL-инъекций в форме входа ASP.Net с помощью фильтрации запросов IIS?
В основном у нас есть устаревшее приложение ASP.Net, которого у нас нетисходный код, и в ходе теста на проникновение было обнаружено, что он уязвим к атакам внедрения.
Я уже применил следующее правило фильтрации запросов, чтобы блокировать атаки с внедрением из строк запроса, но яЯ все еще пытаюсь выяснить, как блокировать этот тип атаки из текстовых полей на странице входа в систему.
<requestFiltering>
<filteringRules>
<filteringRule name="SQLInjectionQuery" scanUrl="false" scanQueryString="true">
<appliesTo>
<clear />
<add fileExtension=".aspx" />
</appliesTo>
<denyStrings>
<clear />
<add string="--" />
<add string=";" />
<add string="/*" />
<add string="@" />
<add string="char" />
<add string="alter" />
<add string="begin" />
<add string="cast" />
<add string="create" />
<add string="cursor" />
<add string="declare" />
<add string="delete" />
<add string="drop" />
<add string="end" />
<add string="exec" />
<add string="fetch" />
<add string="insert" />
<add string="kill" />
<add string="open" />
<add string="select" />
<add string="sys" />
<add string="table" />
<add string="update" />
<add string="waitfor" />
<add string="delay" />
</denyStrings>
<scanHeaders>
<clear />
</scanHeaders>
</filteringRule>
</filteringRules>
</requestFiltering>
Я пытался добавить scanAllRaw="true"
к элементу filteringRule
, но это не удалосьдать желаемый результат.Я все еще был в состоянии выполнить атаку username' WAITFOR DELAY '0:0:10'--
, чтобы обнаружить уязвимость.
Я знаю, что лучший способ исправить это через код, но большая часть плохого кода упакована в dll, который мы надеваемУ меня нет исходного кода, поэтому в данный момент я пытаюсь найти альтернативный способ исправить это.
Любые предложения приветствуются