2017-2018-2 20179209《網絡攻防》第十一週做業

研究緩衝區溢出的原理,至少針對兩種數據庫進行差別化研究

MYSQL與DB2對比php

  • 帳號管理方式
    MySQL帳號管理的方式與Oracle相似,由MySQL本身管理,帳號存儲在MySQL數據庫的user表中,其帳號的組成是有ip地址+用戶名組成,而DB2沒有本身的用戶體系,其認證徹底依賴於操做系統的帳號。mysql

  • 權限管理方式
    MySQL的權限管理方式與DB2權限管理方式上相同的地方就是均可以對單獨的對象進行受權,均可以作到細粒度的受權。不一樣之處就是MySQL在帳號安全上更勝一籌,其帳號組成是由用戶名加ip地址構成,也就是說其鑑權須要同時驗證用戶登陸的ip和用戶名的合法性,而db2只對鏈接的帳號進行鑑權。MySQL的另外一個優勢就是對最小單元的對象能夠批量進行受權,DB2則不能,相對比較繁瑣,這也是DB2須要改進的地方之一。sql

  • 日誌管理方式
    MySQL數據庫使用日誌雙寫的方式來保證數據的完整性與可恢復性,MySQL的事務日誌與歸檔日誌兩個獨立的對象,沒有任何因果關係。DB2數據庫的歸檔日誌是有事務日誌產生的。因此在UDI操做上MySQL數據庫的性能要比DB2差一些。數據庫

  • 鎖的管理方式
    MySQL使用MVCC模型實現鎖的併發控制,DB2使用內存模型實現了鎖的併發控制,在併發處理、處理資源衝突上講MySQL的併發處理能力、鎖衝突的方式上要優於DB2。瀏覽器

  • schema的管理方式
    MySQL數據庫嚴格意義上講沒有schema的概念,其每一個schema至關於獨立的一個數據庫。db2數據庫能夠在一個數據庫能建立多個schema。這也是MySQL在schema方面存在的不足及須要改進的地方。安全

  • 表空間的管理方式
    MySQL數據庫在5.6以後纔有了表空間的概念,但其在表空間的使用方式上仍是與企業級數據庫相差很大。MySQL數據庫在表空間上支持相對較弱,存在不少的侷限性,在條帶化及空間的管理上存在軟肋。DB2在這些方面作得都十分完善,並且很是健壯易於維護,這些都是MySQL須要增強向企業數據庫學習的地方。cookie

  • 事物行爲的處理方式
    MySQL數據庫默認在處理事務相關的操做時只是回退上一條語句的狀態,而整個事務實際上沒有完成(提交或者回滾),而是交由應用程序在檢測到這個錯誤時,選擇是提交或者回滾整個事務。DB2數據庫對事務的處理方式是當DB2數據庫在因鎖超時或者其餘問題致使異常後,對整個事務進行回滾,而不是回滾到上一個保存點,這是須要特別關注的地方。多線程

針對不一樣數據類型,研究SQL注入點的發現與注入技術

搜索型注入點

這是一類特殊的注入類型。這類注入主要是指在進行數據搜索時沒過濾搜索參數,通常在連接地址有"keyword=關鍵字",有的不顯示的連接地址,而是直接經過搜索框表單提交。
此類注入點提交的 SQL 語句,其原形大體爲:select * from 表名 where 字段 like '%關鍵字%'
當咱們提交注入參數爲keyword='and[查詢條件] and '%'=',則向數據庫提交的完事SQL語句爲:
select * from 表名 where 字段 like '%' and [查詢條件] and '%'='%'併發

字符型注入點

形如http://****?Class=日期這類注入的參數是"字符",所以稱爲字符型注入點。框架

此類注入點提交的 SQL 語句,其原形大體爲:select * from 表名 where 字段='日期'

當咱們提交注入參數爲http://****Class=日期 And[查詢條件]時,向數據庫提交的完整 SQL 語句爲:select * from 表名 where 字段='日期' and [查詢條件]

數字型注入點

形如http://****?ID=55,這類注入的參數是"數字",所以稱爲"數字型注入點"。

此類注入點提交的SQL語句,其原形大體爲:select * from 表名 where 字段=55

當咱們提交注入參數爲http://****?ID=55 And[查詢條件]時,向數據庫提交的完整 SQL 語句爲:select * from 表名 where 字段=55 And [查詢條件]

使用兩種數據庫注入攻擊工具

sqlmap

sqlmap簡介

sqlmap支持五種不一樣的注入模式:

  • 基於布爾的盲注,便可以根據返回頁面判斷條件真假的注入。
  • 基於時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增長)來判斷。
  • 基於報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。
  • 聯合查詢注入,可使用union的狀況下的注入。
  • 堆查詢注入,能夠同時執行多條語句的執行時的注入。

sqlmap部分命令

sqlmap -u 「http://www.vuln.cn/post.php?id=1」 –dbms mysql –level 3 –dbs

查詢有哪些數據庫

sqlmap -u 「http://www.vuln.cn/post.php?id=1」 –dbms mysql –level 3 -D test –tables

查詢test數據庫中有哪些表

sqlmap -u 「http://www.vuln.cn/post.php?id=1」 –dbms mysql –level 3 -D test -T admin –columns

查詢test數據庫中admin表有哪些字段

sqlmap -u 「http://www.vuln.cn/post.php?id=1」 –dbms mysql –level 3 -D test -T admin -C 「username,password」 –dump

dump出字段username與password中的數據

SQL Power Injector

簡介

SQL Power Injector是一款在.Net 1.1中建立的應用程序,可幫助滲透測試人員在網頁上查找和利用SQL注入。支持Windows,Unix和Linux操做系統。

SQL Server,Oracle,MySQL,Sybase / Adaptive Server和DB2兼容。SSL支持,自動從網頁上的表單或IFrame加載參數(GET或POST)檢測並瀏覽框架測網站語言的選項檢測並添加加載頁面進程期間使用的Cookie(Set-Cookie檢測)自動查找提交頁面,其方法(GET或POST)以不一樣的顏色顯示能夠直接在Datagrids中建立/修改/刪除加載的字符串和Cookie參數單個SQL注入盲目的SQL注入比較頁面的真實和錯誤響應或cookie中的結果時間延遲SQL注入在自定義瀏覽器中的響應可使用HTML上下文顏色查看返回頁面的HTML代碼源並在其中搜索微調參數和cookie注入
能夠參數化預期結果的長度和計數以優化應用程序執行SQL注入所用的時間建立/編輯預設的ASCII字符,以優化盲注SQL請求數/請求速度
多線程(最多可配置50個)選項能夠經過空的評論/ ** /針對IDS或過濾器檢測來替換空間在發送以前自動編碼特殊字符自動檢測響應頁面中的預約義SQL錯誤響應頁自動檢測預約義的單詞或句子實時結果將會話保存並加載到XML文件中自動查找正面答案和負面答案頁面之間差別的功能
能夠建立一個範圍列表,它將替換隱藏的SQL注入字符串中的變量(>)並自動爲您播放它們使用文本文件中的預約義列表自動重播變量範圍
Firefox插件,它將啓動SQL Power Injector以及當前網頁的全部信息及其會話上下文(參數和cookie)
兩個集成工具:Hex和Char編碼器和MS SQL @options解釋器,能夠編輯Referer,能夠選擇一個用戶代理(或者甚至在用戶代理XML文件中建立一個),可使用設置窗口配置應用程序,支持可配置的代理,軟件截圖。

軟件截圖

相關文章
相關標籤/搜索