共計 1367 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹“SQL 注入之盲注怎么實現”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“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 提供注入點
–dbs 獲取所有數據庫名
-D 指定庫 –tables 獲取指定數據庫中所有的表的信息
-D 指定庫 -T 指定表 –columns
-D 指定庫 -T 指定表 -C 列 1,列 2 –dump
-r‘文件名’
關于“SQL 注入之盲注怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。