課程目標:講解SQL注入的原理、特點、危害,SQL注入的攻擊手法和MySQL注入的常用函式,講解相關工具,如何去防御SQL注入,
任務目標:了解SQL注入相關概念,掌握SQL注入攻擊手法,了解SQL注入相關工具和防御方法,
A.SQL注入概述
什么是SQL注入
所謂SQL注入,就是通過SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙服務器執行惡意的SQL命令,具體來說,它是利用現有應用程式,將(惡意的)SQL命令注入到后臺資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL陳述句得到一個存在安全漏洞的網站上的資料庫,而不是按照設計者意圖去執行SQL陳述句,比如先前的很多影視網站泄露VIP會員密碼大多就是通過Web表單遞交查詢字符暴出的,這類表單特別容易受到SQL注入式攻擊,
SQL注入的原理
SQL注入攻擊指的是通過構建特殊的輸入作為引數傳入Web應用程式,而這些輸入大都是SQL語法里的一些組合,通過執行SQL陳述句進而執行攻擊者所要的操作,其主要原因是程式沒有細致地過濾用戶輸入的資料,致使非法資料侵入系統,
SQL注入的地位

SQL注入的來源
SQL注入的主要特點
1.變種極多
有經驗的攻擊者會手工調整攻擊的引數,致使攻擊的資料是不可列舉的,這導致傳統的特征匹配方法僅能識別到相當少的攻擊,或者是最常規的攻擊,難以做到防范,
2.攻擊簡單
攻擊程序簡單,目前互聯網上流行的眾多SQL注入攻擊工具,攻擊者借助這些工具可以很快的對目標網站進行攻擊或者是破壞,危害大,
3.危害極大
由于web語言自身的缺陷,以及具有安全編程的開發人員較少,大多數web應用系統均具有被SQL注入攻擊的可能,而攻擊者一旦攻擊成功,就可以對控制整個web應用系統對資料做任何的修改或者是竊取,破壞力達到了極致,
SQL注入的危害
1.未經授權狀況下操作資料庫中的資料
2.惡意篡改網頁內容//登陸后臺后發布的內容,也可以發布對首頁的更新,這時候更新可能就是一些非法資訊,也可以對系統進行添加賬戶或者是資料庫賬號,這個需要拿到web shell或者更高的權限
3.私自添加系統賬號或者是資料庫使用者賬號
4.網頁掛木馬//拿到web shell或者獲取到服務器的權限以后,我們將一些網頁木馬掛在服務器上,去攻擊別人,甚至再嚴重些我們可以控制整個web服務器,這個都是非常危險的,
B.SQL注入攻擊
SQL注入攻擊
SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一,隨著B/S模式應用開發的發展,使用這種模式撰寫應用程式的程式員也越來越多,但是由于程式員的水平及經驗也參差不齊,相當大一部分程式員在撰寫代碼的時候,沒有對用戶輸入資料的合法性進行判斷,使應用程式存在安全隱患,用戶可以提交一段資料庫查詢代碼,根據程式回傳的結果,獲得某些他想的得知的資料,這就是所謂的SQL Injection,即SQL注入,
SQL注入威脅表達方式
繞過認證,獲得非法權限
拆解后臺資料庫全部的資訊
注入可以借助資料庫的存盤程序進行提權等操作
SQL注入典型攻擊手段
判斷應用程式是否存在注入漏洞
收集資訊、并判斷資料庫型別
根據注入引數型別,重構生氣了陳述句的原貌
拆解表名、欄位名
獲取賬戶資訊、攻擊web或為下一步攻擊做準備
SQL注入是否存在注入的判斷方式

SQL注入實戰步驟
按照注入點型別來分類
按照資料提交的方式來分類
按照執行效果來分類
- 基于布爾的盲注,即可以根據回傳頁面判斷條件真偽的注入,
- 基于時間的盲注,即不能根據頁面回傳內容判斷任何資訊,用條件陳述句查看時間延遲陳述句是否執行(即頁面回傳時間是否增加)來判斷,
- 基于報錯注入,即頁面會回傳錯誤資訊,或者把注入的陳述句的結果直接回傳在頁面中,
- 聯合查詢注入,可以使用union的情況下的注入,
- 堆查詢注入,可以同時執行多條陳述句的執行時的注入,
C.MySQL注入常用函式
MySQL的注釋風格
MySQL——union運算子
union運算子用于拼接兩個或者多select查詢陳述句
union中的每個查詢必須擁有相同的列數
MySQL——常用函式
MySQL——字串連接函式
concat(str1,str2...)函式,直接連接
group_concat(str1,str2...)函式,使用逗號做為分隔符
concat_ws(sep,str1,str2...)函式,使用第一個引數做為分隔符
MySQL——information-schema結構
D.SQL注入相關工具
sqlmap介紹
SQLMAP是一個開源的滲透測驗工具,它主要用于自動化地偵測和實施SQL注入攻擊以及滲透資料庫服務器,SQLMAP配有強大的偵測引擎,適用于高級滲透測驗用戶,不僅可以獲得不同資料庫的指紋資訊,還可以從資料庫中提取資料,此外還能夠處理潛在的檔案系統以及通過帶外資料連接執行系統命令等,
Pangolin介紹
Pangolin能夠通過一系列非常簡單的操作,達到最大化的攻擊測驗效果,它從檢測注入開始到最后控制目標系統都給出了測驗步驟,Pangolin時目前國內使用率最高的SQL注入測驗的安全軟體,可以說是網站安全測驗人員的必備工具之一,
啊D注入工具
啊D注入工具是一種主要用于SQL的注入工具,由彭岸峰開發,使用了多執行緒技術,能在極短的時間內掃描注入點,使用者不需要經過太多的學習就可以很熟練的操作,并且該軟體附帶了一些其他的工具,可以為使用者提供極大的方便,
Havij注入工具
HavijPro是一款自動化地SQL注入工具,它能夠幫助滲透測驗人員發現和利用Web應用程式的SQL注入漏洞,Havij不僅能夠自動挖掘可利用的SQL查詢,還能夠識別后臺資料庫型別、檢索資料的用戶名和密碼hash、轉儲表和列、從資料庫中提取資料,甚至訪問底層檔案系統和執行系統命令,當然前提是有一個可利用的SQL注入漏洞,Havij支持廣泛的資料庫系統,比如MsSQL,MySQL,MSAccess and Oracle,Havij支持引數配置以躲避IDS,支持代理,后臺登陸地址掃描,
E.SQL注入防御
- 開發人員在開發程序中要有SQL注入防御的思想,對用戶輸入的所有內容都要進行過濾,
- 使用資料庫時,命名應該較為復雜,不應出現admin,user這樣的庫以及username,password這樣的欄位,
- 涉及密碼的時候一定要加密存盤,
- 使用一些框架及模板前檢查代碼是否有輸入內容檢測,
- 測驗階段,應進行SQL測驗,
- 資料庫權限最小化,防止拿到webshell權限,不要用特權賬戶或者能夠登陸系統的賬戶啟動資料庫,
本文參考:網路安全培訓、網路安全工程師(奇安信)收藏夾吃灰系列_嗶哩嗶哩_bilibili
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/300687.html
標籤:其他
上一篇:Linux下暴力破解弱密碼的工具
