虽然SQL语言是一个标准的,每一个数据库管理系统有其特殊性,不同于彼此在许多方面像特殊命令,函数来检索数据,如用户名和数据库,功能,评论等。
当测试人员搬到一个更高级的SQL注入剥削他们需要知道什么是后端数据库。
1)第一种方法找出使用后端数据库是通过观察返回的错误应用程序。 以下是一些例子的错误消息:
MySql:
You have an error in your SQL syntax; check the manualthat corresponds to your MySQL server version for theright syntax to use near ''' at line 1
一个完整的联盟选择与版本()也可以帮助了解后端数据库。
SELECT id, name FROM users WHERE id=1 UNION SELECT 1, version() limit 1,1
Oracle:
ORA-00933: SQL command not properly ended
MS SQL Server:
Microsoft SQL Native Client error ‘80040e14’Unclosed quotation mark after the character string
SELECT id, name FROM users WHERE id=1 UNION SELECT 1, @@version limit 1, 1
PostgreSQL:
Query failed: ERROR: syntax error at or near
领取专属 10元无门槛券
私享最新 技术干货