首頁  >  文章  >  資料庫  >  簡單了解SQL注入之盲注

簡單了解SQL注入之盲注

WBOY
WBOY轉載
2022-06-01 11:47:274909瀏覽

本篇文章為大家帶來了關於SQL的相關知識,其中主要介紹了關於盲注的相關問題,盲注將資料庫中查詢的資料結果截斷為單個字符,然後同構造邏輯語句,下面一起來看一下,希望對大家有幫助。

簡單了解SQL注入之盲注

推薦學習:《SQL教學

#sql注入-盲注

##1.回顧

回顯注入主要應用於資料庫中的資料可以再網站的頁面上直接展示出來。

報錯注入主要應用於網站的頁面上存在原始報錯信息,資料庫中的數據在原始報錯信息中顯示出 來。也稱為報錯回顯。
原理:由於使用者無法控制輸入,攻擊者可以任意的輸入惡意的sql語句,造成sql語意改變,從而引起資料庫和作業系統的風險。

風險:資料操作、登入繞過、檔案操作、命令執行、登錄機碼操作。

防禦:過濾、預編譯。

2.盲注漏洞場景

1.資料庫中的資料並不會在頁面上直接展示,將查詢出的結果通過判斷,將判斷之後的結果在頁面上輸出。如登入框

2.insert、update、delete等於語法不具備資料的查詢功能,頁面上就不會存在資料庫中的資料。如註冊、資訊修改、資料添加

3.盲注原理

核心 將資料庫中查詢的資料結果截斷為單一字符,然後同構造邏輯語句。透過判斷頁面顯示是 否異常或頁面是否示範來判斷資料庫中查詢的結果。

4.分類

1.bool盲注

若資料庫中可以查到對應的數據,頁面會正常顯示,反之異常。

2.時間盲注

無論輸入任何數據,頁面的效果完全一樣,根據頁面是否延遲判斷出資料庫中查詢出的結果。

5.流程

1.找疑似注入點找輸入點,找與資料庫有互動的地方

2.判斷sql注入是否存在建構惡意的sql語句,提交後頁面的回應資訊與預期保持一致,這說明注入存在。
3.取得資料庫名稱

1.获取当前数据库名
	and ascii(substr((select database()),1,1))=115
2.获取所有数据库名
	and (select ascii(substr(group_concat(schema_name),1,1)) from information_schema.schemata)>0
3.計算取得資料的長度

and (select length(group_concat(schema_name)) from information_schema.schemata)>10 --+
4.取得表格

5.取得列
6.取得資料

6.時間盲注

and if(((select database())='a'),sleep(5),0)--+

7.總結

可以發生回顯、報錯、bool注入的地方都可以發生時間盲注,反之不行可以發生回顯報錯的地方一定可以bool型盲注,反之不行。

8.sqlmap

sql注入自動化工具,python2開發的,可以相容python3。 sqlmap的使用其實就是模擬人對網站的請求過程,可以對所取得的資料做收集分析然後展示。

python sqlmap.py -h	查看sqlmap可使用的参数
                 -u 网站的url	向sqlmnap提供注入点

簡單了解SQL注入之盲注 –dbs 取得所有資料庫名稱

簡單了解SQL注入之盲注

#-D 指定函式庫--tables 取得指定資料庫中所有的資料表的資訊


簡單了解SQL注入之盲注

-D 指定庫-T 指定表--columns


簡單了解SQL注入之盲注

#-D 指定庫-T 指定表-C 列1,列2 --dump


簡單了解SQL注入之盲注

-r '檔案名稱'


簡單了解SQL注入之盲注

推薦學習:《

SQL教學

以上是簡單了解SQL注入之盲注的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除