我想知道是否可以使用IIS请求过滤阻止ASP.Net登录表单上的SQL注入攻击?
基本上我们有一个传统的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中,所以目前我正在尝试查找另一种解决方法。
感谢任何建议