【滲透測試】基于時間的盲注(Time-Based Blind SQL Injection)

發生ERROR日志告警

查看系統日志如下:

java.lang.IllegalArgumentException: Illegal character in query at index 203: https://api.weixin.qq.com/sns/jscode2session?access_token=90_Vap5zo5UTJS4jbuvneMkyS1LHwHAgrofaX8bnIfW8EHXA71IRZwsqzJam9bo1m3zRcSrbgCsG-ydmu2HYWZiJEnR-jTzTKW&js_code=" OR (SELECT*FROM(SELECT(SLEEP(4)))uczk) limit 1#&secret=75c3afd41c5216fb652a00f3&grant_type=authorization_code&appid=wxf84e2db9e488888用戶登錄及注冊失敗-微信小程序 code:0evbf4ac2ml2slzSF2Ybxm6 err:錯誤代碼:40029, 錯誤信息:code 無效,微信原始報文:{"errcode":40029,"errmsg":"invalid code, rid: 67cae4aa-724ecdd5-123302e1"}mdc:{"RequestId":""}timestamp:2025-03-07 20:20:58.557public class UserLoginReq {/*** 微信小程序appid*/@NotNull(message = "微信小程序appid不能為空")@Schema(name = "Appid", title = "微信小程序appid")private String appid;/*** 授權code  */@NotNull(message = "授權code不能為空")@Schema(name = "Code", title = "授權code")private String code;/*** 授權作用域*/@NotNull(message = "授權作用域不能為空")@Schema(name = "Scopes", title = "授權作用域")private Set<String> scopes;
}通過上述可以看出,滲透者通過調用登錄接口請求參數,傳遞code參數值: OR (SELECT*FROM(SELECT(SLEEP(4)))uczk) limit 1
進行滲透測試;
需要加強對code參數的校驗!

(SELECT*FROM(SELECT(SLEEP(4)))uczk) limit 1

以上代碼是一個典型的 基于時間的盲注(Time-Based Blind SQL Injection) 攻擊語句,常見于對數據庫的滲透測試或惡意攻擊中。

關鍵特征解析

  1. SLEEP(4) 函數

    • 在 MySQL 中,SLEEP(N) 會讓數據庫暫停執行 N 秒。攻擊者通過觀察頁面響應時間是否延遲,間接判斷注入是否成功(即使沒有直接回顯數據)。
  2. 子查詢結構

    • (SELECT * FROM (SELECT SLEEP(4)) uczk)
      • 內層 SELECT SLEEP(4) 生成一個單行單列的結果(值為 0,因為 SLEEP 返回執行結果)。
      • 外層 SELECT * FROM (...) uczk 中的 uczk 是子查詢的別名(避免語法錯誤)。
      • 該子查詢的目的是確保語法正確性,同時觸發時間延遲。
  3. OR 條件與 LIMIT 1

    • OR 用于繞過原有查詢條件(如登錄驗證),將原查詢邏輯變為永真(OR TRUE)。
    • LIMIT 1 確保只返回一行結果,避免因多行數據導致應用程序報錯。

攻擊原理

  • 盲注場景:當目標頁面沒有顯式錯誤信息或數據回顯時,攻擊者通過時間差推斷漏洞存在。
  • 執行過程
    1. 攻擊者將惡意負載插入輸入參數(如 URL、表單字段)。
    2. 后端數據庫執行拼接后的 SQL 語句,觸發 SLEEP(4)
    3. 若頁面響應時間增加約 4 秒,則確認存在 SQL 注入漏洞。

防御建議

  1. 參數化查詢(預編譯語句)
    # 正確示例(使用參數化查詢)
    cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
    
  2. 輸入過濾與白名單
    • 對用戶輸入進行嚴格校驗(如類型、長度、格式)。
  3. 最小化數據庫權限
    • 避免使用高權限賬戶連接數據庫,限制 SLEEP 等危險函數的使用。
  4. 監控與日志審計
    • 記錄異常查詢行為,及時告警長時間執行的 SQL 語句。

總結

該語句通過 SLEEP 函數制造時間延遲,屬于典型的 基于時間的盲注,主要針對 MySQL 數據庫。開發者需加強輸入校驗并使用參數化查詢,從根本上杜絕此類攻擊。

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

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

相關文章

redis數據類型以及底層數據結構

redis數據類型以及底層數據結構 String&#xff1a;字符串類型&#xff0c;底層就是動態字符串&#xff0c;使用sds數據結構 Map:有兩種數據結構&#xff1a;1.壓縮列表&#xff1a;當hash結構中存儲的元素個數小于了512個。并且元 …

DeepSeek R1-32B醫療大模型的完整微調實戰分析(全碼版)

DeepSeek R1-32B微調實戰指南 ├── 1. 環境準備 │ ├── 1.1 硬件配置 │ │ ├─ 全參數微調:4*A100 80GB │ │ └─ LoRA微調:單卡24GB │ ├── 1.2 軟件依賴 │ │ ├─ PyTorch 2.1.2+CUDA │ │ └─ Unsloth/ColossalAI │ └── 1.3 模…

window下的docker內使用gpu

Windows 上使用 Docker GPU需要進行一系列的配置和步驟。這是因為 Docker 在 Windows 上的運行環境與 Linux 有所不同,需要借助 WSL 2(Windows Subsystem for Linux 2)和 NVIDIA Container Toolkit 來實現 GPU 的支持。以下是詳細的流程: 一、環境準備 1.系統要求 Window…

Ubuntu 下 nginx-1.24.0 源碼分析 - cycle->modules[i]->type

Nginx 中主要有以下幾種模塊類型 類型 含義 NGX_CORE_MODULE 核心模塊&#xff08;如進程管理、錯誤日志、配置解析&#xff09;。 NGX_EVENT_MODULE 事件模塊&#xff08;如 epoll、kqueue 等 IO 多路復用機制的實現&#xff09;。 NGX_HTTP_MODULE HTTP 模塊&#xf…

八、排序算法

一些簡單的排序算法 8.1 冒泡排序 void Bubble_sort(int a[] , int len){int i,j,flag,tmp;for(i=0 ; i < len-1 ; i++){flag = 1;for(j=0 ; j < len-1-i ; j++){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 0;}}if(flag == 1){break;}}…

Sqlserver安全篇之_手工創建TLS用到的pfx證書文件

Sqlserver官方提供的Windows Powershell腳本 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-sql-server-encryption?viewsql-server-ver16 # Define parameters $certificateParams {Type "SSLServerAuthentication"Subje…

npm install -g @vue/cli 方式已經無法創建VUE3項目

采用該方式&#xff0c;啟動VUE3項目&#xff0c;運行命令&#xff0c;出現報錯&#xff1a; npm install -g vue/cli PS D:\> npm install -g vue/cli npm warn deprecated inflight1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lr…

3.8[a]cv

函數核心目標 實現屏幕空間內三角形的光柵化&#xff0c;將三角形覆蓋的像素點顏色填充到幀緩沖區&#xff0c;同時處理深度測試&#xff08;Z-Buffer&#xff09;。這是渲染管線中幾何階段到像素階段的關鍵步驟 包圍盒計算&#xff08;Bounding Box&#xff09;?** ?功能&…

導入 Excel 規則批量修改或刪除 Excel 表格內容

我們前面介紹過按照規則批量修改 Excel 文檔內容的操作&#xff0c;可以對大量的 Excel 文檔按照一定的規則進行統一的修改&#xff0c;可以很好的解決我們批量修改 Excel 文檔內容的需求。但是某些場景下&#xff0c;我們批量修改 Excel 文檔內容的場景比較復雜&#xff0c;比…

SGLang Router:基于緩存感知負載均衡的數據并行路由實踐

SGLang Router&#xff1a;基于緩存感知負載均衡的數據并行路由實踐 一、引言二、安裝與快速啟動三、兩種工作模式對比3.1 協同啟動模式&#xff08;單節點&#xff09;3.2 獨立啟動模式&#xff08;多節點&#xff09; 四、動態擴縮容API4.1 添加Worker節點4.2 移除Worker節點…

在人工智能軟件的幫助下學習編程實例

1 引言 本文記錄在人工智能軟件的幫助下學習一種全新的編程環境的實例&#xff0c;之所以提人工智能軟件而不是單指DeepSeek&#xff0c;一方面DeepSeek太火了&#xff0c;經常服務器繁忙&#xff0c;用本機本地部署的最多運行70b模型&#xff0c;又似乎稍差。另一方面也作為一…

Ubuntu 下 nginx-1.24.0 源碼分析 - ngx_modules

定義在 objs\ngx_modules.c #include <ngx_config.h> #include <ngx_core.h>extern ngx_module_t ngx_core_module; extern ngx_module_t ngx_errlog_module; extern ngx_module_t ngx_conf_module; extern ngx_module_t ngx_openssl_module; extern ngx_modul…

深度學習代碼解讀——自用

代碼來自&#xff1a;GitHub - ChuHan89/WSSS-Tissue 借助了一些人工智能 2_generate_PM.py 功能總結 該代碼用于 生成弱監督語義分割&#xff08;WSSS&#xff09;所需的偽掩碼&#xff08;Pseudo-Masks&#xff09;&#xff0c;是 Stage2 訓練的前置步驟。其核心流程為&a…

Java基礎面試題全集

1. Java語言基礎 1.1 Java是什么&#xff1f; ? Java是一種廣泛使用的編程語言&#xff0c;最初由Sun Microsystems&#xff08;現為Oracle公司的一部分&#xff09;于1995年發布。它是一種面向對象的、基于類的、通用型的編程語言&#xff0c;旨在讓應用程序“編寫一次&…

Selenium遇到Exception自動截圖

# 隨手小記 場景&#xff1a;測試百度&#xff1a; 點擊新聞&#xff0c;跳轉到新的窗口&#xff0c;找到輸入框&#xff0c;輸入“hello,world" 等到輸入框的內容是hello,world, 這里有個錯誤&#xff0c;少了一個] 后來就實現了錯誤截圖的功能&#xff0c;可以參考 …

【神經網絡】python實現神經網絡(一)——數據集獲取

一.概述 在文章【機器學習】一個例子帶你了解神經網絡是什么中&#xff0c;我們大致了解神經網絡的正向信息傳導、反向傳導以及學習過程的大致流程&#xff0c;現在我們正式開始進行代碼的實現&#xff0c;首先我們來實現第一步的運算過程模擬講解&#xff1a;正向傳導。本次代…

Sentinel 筆記

Sentinel 筆記 1 介紹 Sentinel 是阿里開源的分布式系統流量防衛組件&#xff0c;專注于 流量控制、熔斷降級、系統保護。 官網&#xff1a;https://sentinelguard.io/zh-cn/index.html wiki&#xff1a;https://github.com/alibaba/Sentinel/wiki 對比同類產品&#xff1…

manus本地部署方法研究測試

Manus本地部署方法&#xff0c;Manus邀請碼實在太難搞了&#xff0c;昨晚看到有一個團隊&#xff0c;5個人3個小時&#xff0c;一個完全免費、無需排隊等待的OpenManus就做好了。 由于也是新手&#xff0c;找了好幾輪&#xff0c;實在是沒有找到合適的部署方法&#xff0c;自己…

FreeRTOS第15篇:FreeRTOS鏈表實現細節03_List_t與ListItem_t的奧秘

文/指尖動聽知識庫-星愿 文章為付費內容,商業行為,禁止私自轉載及抄襲,違者必究!!! 文章專欄:深入FreeRTOS內核:從原理到實戰的嵌入式開發指南 1 FreeRTOS列表的核心數據結構 FreeRTOS的列表實現由兩個關鍵結構體組成:List_t(列表)和ListItem_t(列表項)。它們共同…

gzip壓縮

什么是Gzip 前端優化&#xff1a;開啟Gzip壓縮_前端開啟gzip壓縮-CSDN博客 Gzip是一種文件壓縮算法&#xff0c;減少文件大小&#xff0c;節省帶寬從而提減少網絡傳輸時間&#xff0c;網站會更快地加載。 如何判斷是否開啟&#xff1a; 請求頭&#xff1a;服務端會通過客戶…