SQL注入攻击的应用程序可能会执行各种输入过滤以防止攻击者无限制地利用其中存在的缺陷。
深圳做网站公司应用程序可能会删除或净化某些字符,或阻止常用的SQL关键字。这种过滤通常非常容易避开,如果
深圳建站公司应用程序受到SQL注入攻击时可尝试以下几种技巧避开过滤。
1.避免使用简单的确认
一个简单的黑名单是一些输入确认机制使用,阻止或删除任何出现在这个名单的数据。寻找确认和规范化机制中的缺陷是者这种情况下尝试使用标准的攻击方法。比如,如果SELECT关键字被阻止或删除等,可尝试使用。
2.利用有缺陷的过滤
输入确认机制通常包含逻辑缺陷,可对这些缺陷加以利用,使被阻止的输入避开过滤。这种情况一般未能以递归方式应用程序净化逻辑方面的缺陷,利用应用下横线在对多个确认步骤进行排序。
3.避免使用被阻止的字符
如果注释符号被阻止,通常可以设计注入的数据,使其不会破坏周围查询的语法;MS-SQL数据库中注入批量查询时,不必使用分隔符。只要纠正所有批量查询的语法,无论你是否使用分号,查询解析器都会正确解释它们;如果要注入数字数据字典或列名称,不一定必须使用单引号,通过各种字符串函数,使用每个字符的ASCⅡ代码动态构建一个字符串。
4.使用SQL注释
与C++一样,可以再SQL语句中插入行内注释,注释内容包含在/*与*/符号之间。在MySQL中,注释甚至可以插入关键字中,这种方法可避开某些输入确认过滤,同时暴力查询中的语法。如果硬要程序阻止或删除输入中的空格,可以使用注释“冒充”注入数据中的空白符。