应用异常监控
数据库异常监控
在SQL注入的探测阶段,或者报错注入的攻击阶段,通常会在数据库产生大量的异常。因此,通过监控异常可以有效的发现的SQL注入攻击。目前我们所有支持的数据库均可以监控SQL异常,且异常代码可以在插件里配置。
插件里默认监控的SQL异常如下,具体请参考官方插件的 sql_exception 检测算法。
MySQL
1060
Duplicate column name '5.5.60-0ubuntu0.14.04.1'
1062
Duplicate entry '::root@localhost::1' for key 'group_key'
1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') from mysql.user' at line 1
1105
XPATH syntax error: 'root@localhost'
1367
Illegal non geometric 'user()' value found during parsing
PostgreSQL
42601
normal syntax error
22P02
ERROR: invalid input syntax for type double precision: "DATABASE: test1"
SQLite
1
generic error, like syntax error、malformed MATCH expression: ["3.6.23.1] and other
Oracle
ORA-01740
missing double quote in identifier
ORA-01756
quoted string not properly terminated
ORA-00907
missing right parenthesis
HSQL
-5583
malformed quoted identifier
-5590
unexpected end of statement
SQLServer
105
Unclosed quotation mark after the character string '%.*ls'.
245
Conversion failed when converting the %ls value '%.*ls' to data type %ls.
DB2
42603
The string constant beginning with "'xxx" does not have an ending string
FAQ
1. Unable to derive error code from SQL exceptions 错误
当MySQL服务器与JDBC驱动不兼容,我们将无法从异常消息里提取SQL错误代码,并打印这个错误。比如 JDBC 5.1.46 + MySQL 5.5 就会出现这个问题,可以考虑升级JDBC驱动到对应的版本来解决。
这个错误会让数据库异常监控失效。
Last updated