簡單了解SQL注入之盲注

本篇文章給大家?guī)砹岁P于sql的相關知識,其中主要介紹了關于盲注的相關問題,盲注將數(shù)據(jù)庫中查詢的數(shù)據(jù)結果進行截斷為單個字符,然后同構造邏輯語句,下面一起來看一下,希望對大家有幫助。

簡單了解SQL注入之盲注

推薦學習:《sql

sql注入——盲注

1.回顧

回顯注入主要應用于數(shù)據(jù)庫中的數(shù)據(jù)可以再網(wǎng)站的頁面上直接展示出來。
報錯注入主要應用于網(wǎng)站的頁面上存在原始報錯信息,數(shù)據(jù)庫中的數(shù)據(jù)在原始報錯信息中展示出 來。也被稱為報錯回顯。
原理:由于用戶不可控輸入,攻擊者可以任意的輸入惡意的sql語句,造成sql語義發(fā)生改變,從而引起數(shù)據(jù)庫和操作系統(tǒng)的風險。

風險:數(shù)據(jù)操作、登錄繞過、文件操作、命令執(zhí)行、注冊表操作。

防御:過濾、預編譯。

2.盲注漏洞場景

1.數(shù)據(jù)庫中的數(shù)據(jù)并不會在頁面上直接展示,將查詢出的結果通過判斷,將判斷之后的結果在頁 面上輸出。如登錄框
2.insert、update、delete等于語法不具備數(shù)據(jù)的查詢功能,頁面上就不會存在數(shù)據(jù)庫中的數(shù)據(jù)。如注冊、信息修改、數(shù)據(jù)添加

3.盲注原理

核心
將數(shù)據(jù)庫中查詢的數(shù)據(jù)結果進行截斷為單個字符,然后同構造邏輯語句。通過判斷頁面顯示是 否異常或頁面是否演示來判斷數(shù)據(jù)庫中查詢的結果。

4.分類

1.bool盲注
如果數(shù)據(jù)庫中可以查到相應的數(shù)據(jù),頁面會正常顯示,反之異常。

2.時間盲注
無論輸入任何數(shù)據(jù),頁面的效果完全一樣,根據(jù)頁面是否延遲判斷出數(shù)據(jù)庫中查詢出的結果。

5.流程

1.找疑似注入點 找輸入點,找與數(shù)據(jù)庫有交互的地方
2.判斷sql注入是否存在 構造惡意的sql語句,提交后頁面的響應信息與預期保持一致,這說明注入存在。
3.獲取數(shù)據(jù)庫名

1.獲取當前數(shù)據(jù)庫名 	and ascii(substr((select database()),1,1))=115 2.獲取所有數(shù)據(jù)庫名 	and (select ascii(substr(group_concat(schema_name),1,1)) from information_schema.schemata)>0

3.計算出獲取數(shù)據(jù)的長度

and (select length(group_concat(schema_name)) from information_schema.schemata)>10 --+

4.獲取表
5.獲取列
6.獲取數(shù)據(jù)

6.時間盲注

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

7.總結

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

8.sqlmap

sql注入自動化工具,python2開發(fā)的,可以兼容python3。sqlmap的使用實際上就是模擬人對網(wǎng)站的請求過程,可以對獲取的數(shù)據(jù)做收集分析然后展示。

python sqlmap.py -h	查看sqlmap可使用的參數(shù)                  -u 網(wǎng)站的url	向sqlmnap提供注入點

簡單了解SQL注入之盲注
–dbs 獲取所有數(shù)據(jù)庫名
簡單了解SQL注入之盲注

-D 指定庫 –tables 獲取指定數(shù)據(jù)庫中所有的表的信息
簡單了解SQL注入之盲注

-D 指定庫 -T 指定表 –columns
簡單了解SQL注入之盲注

-D 指定庫 -T 指定表 -C 列1,列2 –dump
簡單了解SQL注入之盲注

-r ‘文件名’
簡單了解SQL注入之盲注

推薦學習:《sql

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享