1. beplay体育能用吗网络安全学院
  2. SQL注入
  3. 检查数据库

在SQL注入攻击中检查数据库

利用时SQL注入漏洞,通常有必要收集有关数据库本身的一些信息。这包括数据库软件的类型和版本,以及数据库中包含哪些表和列的内容。

查询数据库类型和版本

不同的数据库提供了查询其版本的不同方法。您通常需要尝试不同的查询才能找到有效的查询,从而可以确定数据库软件的类型和版本。

确定某些流行数据库类型的数据库版本的查询如下:

数据库类型 询问
Microsoft,Mysql 选择@@版本
Oracle 从V $版本中选择 *
Postgresql 选择版本()

例如,您可以使用联盟使用以下输入攻击:

'联合选择@@版本 -

这可能会像以下内容一样返回输出,证实数据库是Microsoft SQL Server,并且正在使用的版本:

Microsoft SQL Server 2016(SP2)(KB4052908)-13.0.5026.0(x64)2018年3月18日09:11:49版权所有(C)Microsoft Corporation Standard Edition(64 -BIT)Windows Server上:)(管理程序)

列出数据库的内容

大多数数据库类型(除Oracle的显着例外)都有一组称为信息架构的视图,该视图提供了有关数据库的信息。

您可以查询信息_schema.tables要在数据库中列出表:

选择 *来自信息_schema.tables

这将如下返回输出:

table_catalog table_schema table_name table_type ===================================================== myDatabase DBO产品基表mydatabase DBO用户基表mydatabase dbo反馈基础表

该输出表明有三个表,称为产品,,,,用户, 和回馈

然后您可以查询信息_schema.columns在单个表中列出列:

选择 *来自信息_schema.columns where table_name ='用户'

这将如下返回输出:

table_catalog table_schema table_name column_name data_type ============================================================================================================================================================

此输出显示指定表中的列和每列的数据类型。

等效于Oracle上的信息模式

在Oracle上,您可以获取具有略有不同查询的相同信息。

您可以通过查询列出表all_table

从all_tables中选择 *

您可以通过查询列出列all_tab_columns

从all_tab_columns中选择 * table_name ='用户'

每日SWIG关于SQL注入的故事beplay2018官网