Web安全與防護(hù) (微課版) 課件 03-3 項(xiàng)目三 任務(wù)三SQL注入漏洞檢測(cè)與驗(yàn)證_第1頁(yè)
Web安全與防護(hù) (微課版) 課件 03-3 項(xiàng)目三 任務(wù)三SQL注入漏洞檢測(cè)與驗(yàn)證_第2頁(yè)
Web安全與防護(hù) (微課版) 課件 03-3 項(xiàng)目三 任務(wù)三SQL注入漏洞檢測(cè)與驗(yàn)證_第3頁(yè)
Web安全與防護(hù) (微課版) 課件 03-3 項(xiàng)目三 任務(wù)三SQL注入漏洞檢測(cè)與驗(yàn)證_第4頁(yè)
Web安全與防護(hù) (微課版) 課件 03-3 項(xiàng)目三 任務(wù)三SQL注入漏洞檢測(cè)與驗(yàn)證_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Web安全與防護(hù)本任務(wù)要點(diǎn)學(xué)習(xí)目標(biāo)繞過(guò)后臺(tái)登錄(字符型注入)文章頁(yè)面注入(數(shù)字型注入)搜索框注入(搜索框注入)SQL注入漏洞進(jìn)階能夠檢測(cè)出系統(tǒng)中存在的漏洞。能夠?qū)QL注入漏洞進(jìn)行安全驗(yàn)證。任務(wù)三

SQL注入漏洞檢測(cè)與驗(yàn)證項(xiàng)目三

安全的數(shù)據(jù)庫(kù)交換目錄CONTENTS01/繞過(guò)后臺(tái)登錄(字符型注入)02/文章頁(yè)面注入(數(shù)字型注入)03/搜索框注入(搜索框注入)04/SQL注入漏洞進(jìn)階繞過(guò)后臺(tái)登錄(字符型注入)01什么是驗(yàn)繞過(guò)后臺(tái)登錄(字符型注入)?字符型注入是指攻擊者通過(guò)輸入惡意的SQL語(yǔ)句來(lái)繞過(guò)應(yīng)用程序的輸入驗(yàn)證,并執(zhí)行未經(jīng)授權(quán)的操作。常見(jiàn)的字符型注入攻擊有繞過(guò)后臺(tái)登錄、獲取敏感信息、修改數(shù)據(jù)等。繞過(guò)后臺(tái)登錄是一種常見(jiàn)的字符型注入攻擊,攻擊者通過(guò)修改登錄表單中的用戶名和密碼的輸入值,構(gòu)造出惡意的SQL語(yǔ)句來(lái)實(shí)現(xiàn)繞過(guò)登錄的目的。通過(guò)修改登錄表單的輸入值來(lái)實(shí)現(xiàn)繞過(guò)登錄。完整代碼見(jiàn)教材3.3.1攻擊者可以在登錄表單中輸入類似于'or1=1--的字符串繞過(guò)后臺(tái)登錄(字符型注入)01SELECT*FROMusersWHEREusername=''

or1=1--'ANDpassword=''由于or1=1始終為真,攻擊者將繞過(guò)用戶名和密碼的驗(yàn)證,并成功登錄到后臺(tái)。查看博客系統(tǒng)源碼admin/check.php文件。這段代碼的SQL注入漏洞在于用戶登錄驗(yàn)證的SQL查詢中。由于用戶輸入的用戶名和密碼沒(méi)有經(jīng)過(guò)充分的驗(yàn)證和過(guò)濾,直接拼接到SQL語(yǔ)句中,導(dǎo)致攻擊者可以在輸入的用戶名或密碼中注入惡意SQL代碼,改變SQL查詢語(yǔ)句的執(zhí)行邏輯。完整代碼見(jiàn)教材3.3.1繞過(guò)后臺(tái)登錄(字符型注入)01admin/check.php如果黑客在用戶名輸入框中輸入admin'--,密碼輸入框中輸入任意密碼。那么會(huì)因?yàn)?-表示注釋掉后面的SQL代碼,因此上面的查詢語(yǔ)句實(shí)際上只驗(yàn)證了用戶名為admin,而不會(huì)驗(yàn)證密碼是否正確,從而繞過(guò)了認(rèn)證,進(jìn)入管理員界面,實(shí)施進(jìn)一步的攻擊。繞過(guò)后臺(tái)登錄(字符型注入)01SELECT*FROMblog_adminWHEREusername='admin'--'ANDpassword='任意密碼'登錄頁(yè)面http://localhost/admin/login.php。在用戶名輸入框面輸入任意用戶名,密碼框中輸入任意密碼。啟動(dòng)Burp在Intruder中開(kāi)啟截?cái)?。在登錄?yè)面中點(diǎn)擊提交,Burp中攔截到請(qǐng)求將請(qǐng)求轉(zhuǎn)發(fā)至重發(fā)器(Repeater),先不修改用戶名密碼測(cè)試是否能夠成功登錄。響應(yīng)結(jié)果。繞過(guò)后臺(tái)登錄(字符型注入)01可以看到服務(wù)器響應(yīng)了‘用戶名或密碼錯(cuò)誤’,修改用戶名為1111'or1=1--并輸入新的驗(yàn)證碼點(diǎn)擊發(fā)送請(qǐng)求(Send)響應(yīng)結(jié)果。并看見(jiàn)了服務(wù)器響應(yīng)的“登錄成功”,說(shuō)明我們所構(gòu)造的字符型SQL注入語(yǔ)句執(zhí)行成功。什么是文章頁(yè)面注入(數(shù)字型注入)?數(shù)字型注入是SQL注入的一種形式,它是通過(guò)在SQL語(yǔ)句中嵌入惡意數(shù)字來(lái)實(shí)現(xiàn)的。與字符型注入不同,數(shù)字型注入不是通過(guò)將SQL語(yǔ)句的字符串參數(shù)替換為惡意代碼字符串來(lái)實(shí)現(xiàn)的,而是將數(shù)字參數(shù)替換為惡意代碼數(shù)字來(lái)實(shí)現(xiàn)的。文章頁(yè)面注入(數(shù)字型注入)02數(shù)字型注入是指攻擊者在輸入框中輸入的字符串被直接拼接到SQL語(yǔ)句中,例如在登錄時(shí),攻擊者輸入'or'1'='1,文章頁(yè)面注入(數(shù)字型注入)02攻擊者利用了SQL的邏輯運(yùn)算符或注釋符號(hào)(如--或/**/),將原本的SQL語(yǔ)句改變?yōu)樽约核谕恼Z(yǔ)句,從而繞過(guò)了應(yīng)用程序的驗(yàn)證和控制,獲取了非授權(quán)的信息或操作權(quán)限。數(shù)字型注入是指攻擊者在輸入框中輸入的數(shù)字被直接拼接到SQL語(yǔ)句中,例如在文章搜索時(shí),攻擊者輸入1or1=1。SELECT*FROMusersWHEREusername=''

OR

'1'='1'

AND

password=''SELECT*FROMarticlesWHEREid=1OR1=1攻擊者利用了SQL的布爾邏輯運(yùn)算符,將原本的SQL語(yǔ)句改變?yōu)樽约核谕恼Z(yǔ)句,從而繞過(guò)了應(yīng)用程序的驗(yàn)證和控制,獲取了非授權(quán)的信息或操作權(quán)限。數(shù)字型注入通常發(fā)生在數(shù)字類型的查詢參數(shù)上,例如整數(shù)和浮點(diǎn)數(shù)。例如,一個(gè)網(wǎng)站可能有一個(gè)頁(yè)面,該頁(yè)面的URL包含一個(gè)數(shù)字參數(shù),用于選擇要顯示的文章。攻擊者可以通過(guò)向URL中添加一個(gè)額外的數(shù)字參數(shù)并在其中嵌入SQL代碼,來(lái)嘗試注入惡意代碼。/article.php?id=1攻擊者可以通過(guò)在id參數(shù)中注入SQL代碼來(lái)獲取其他文章的內(nèi)容。/article.php?id=1;SELECT*FROMarticlesWHEREid=2$id來(lái)自于用戶通過(guò)id參數(shù)提交的值,并且未經(jīng)過(guò)過(guò)濾和轉(zhuǎn)義。完整代碼見(jiàn)教材3.3.2apps/view.php文章頁(yè)面注入(數(shù)字型注入)02訪問(wèn)http://localhost/index.php?class=view&id=1頁(yè)

面。文章頁(yè)面注入(數(shù)字型注入)02文章頁(yè)面注入(數(shù)字型注入)02嘗試SQL注入:http://localhost/index.php?class=view&id=1%20and%201=1,訪問(wèn)頁(yè)面發(fā)現(xiàn)響應(yīng)正常,說(shuō)明SQL語(yǔ)句成功執(zhí)行。再嘗試訪問(wèn)http://localhost/index.php?class=view&id=1%20and%201=2,使查詢條件不成立查看響應(yīng)為異常頁(yè)面說(shuō)明該處存在注入點(diǎn)。文章頁(yè)面注入(數(shù)字型注入)02搜索框注入(搜索框注入)03什么是搜索框注入(搜索框注入)?搜索框注入是一種常見(jiàn)的SQL注入類型,攻擊者通過(guò)在網(wǎng)站的搜索框中輸入惡意的搜索參數(shù),從而修改SQL查詢語(yǔ)句,獲取未經(jīng)授權(quán)的信息。搜索框注入屬于字符型注入,和前面的數(shù)字型注入有所不同。搜索框注入的原理與字符型注入類似,攻擊者通過(guò)在搜索框中輸入特定的字符,改變SQL語(yǔ)句的執(zhí)行,達(dá)到繞過(guò)用戶驗(yàn)證或者篡改數(shù)據(jù)的目的。常見(jiàn)的攻擊方式包括:?jiǎn)我?hào)、雙引號(hào)、注釋符、通配符、邏輯運(yùn)算符等。網(wǎng)站在搜索框中執(zhí)行以下SQL語(yǔ)句來(lái)查詢數(shù)據(jù)。攻擊者攻擊者可以在搜索框中輸入以下內(nèi)容。那么最終執(zhí)行的SQL語(yǔ)句將變成:這類注入主要是在進(jìn)行數(shù)據(jù)搜索時(shí)沒(méi)過(guò)濾搜索參數(shù),一般在鏈接地址中有”keyword=關(guān)鍵字”,有的不顯示鏈接地址,而是通過(guò)搜索框表單提交。此類注入點(diǎn)提交的SQL語(yǔ)句,其原型大致為:搜索框注入(搜索框注入)03SELECT*FROMproductsWHEREnameLIKE'%$_POST[search]%';'OR1=1--SELECT*FROMproductsWHERE

nameLIKE'%'

OR1=1--'%';

當(dāng)我們提交注入?yún)?shù)為keyword=’and[查詢條件]and‘%’=’,則想數(shù)據(jù)庫(kù)提交的SQL語(yǔ)句為:SELECT*form表名WHERE

字段LIKE'%關(guān)鍵字%'

SELECT*form表名WHERE

字段LIKE'%AND[查詢條件]AND'%'='%'查看博客系統(tǒng)源代碼文件apps/search.php源碼完整代碼見(jiàn)教材3.3.3apps/search.php搜索框注入(搜索框注入)03訪問(wèn)http://localhost/index.php?class=search在搜索框中輸入'and1=1--'%進(jìn)行搜索響應(yīng)頁(yè)面。搜索框注入(搜索框注入)03再在搜索框中輸入'and1=2--'%進(jìn)行搜索響應(yīng)頁(yè)面。分析兩次代碼的差異可以看出,我們所構(gòu)造的SQL語(yǔ)句是被數(shù)據(jù)庫(kù)當(dāng)做正常查詢語(yǔ)句執(zhí)行了,即搜索框中存在SQL注入漏洞。搜索框注入(搜索框注入)03SQL注入漏洞進(jìn)階04什么是SQL注入?SQL注入是一種常見(jiàn)的網(wǎng)絡(luò)攻擊技術(shù),攻擊者利用不正確的登陸認(rèn)證或者不安全的SQL語(yǔ)句來(lái)修改數(shù)據(jù)庫(kù)查詢的行為,從而獲取敏感信息或控制數(shù)據(jù)庫(kù)。SQL進(jìn)階技巧有:盲注漏洞、堆疊注入漏洞、二次注入漏洞。盲注漏洞盲注是SQL注入的一種高級(jí)技術(shù)。當(dāng)服務(wù)器端的應(yīng)用程序未返回有關(guān)注入的數(shù)據(jù)信息時(shí),就需要使用盲注技術(shù)來(lái)執(zhí)行SQL注入。盲注通常包括兩種類型:基于布爾的盲注和基于時(shí)間的盲注?;诓紶柕拿ぷ⑹峭ㄟ^(guò)SQL語(yǔ)句的執(zhí)行結(jié)果(true或false)來(lái)確定是否存在漏洞,而基于時(shí)間的盲注是通過(guò)等待SQL語(yǔ)句的執(zhí)行結(jié)果來(lái)確定是否存在漏洞。例如,下面是一個(gè)簡(jiǎn)單的查詢語(yǔ)句。如果攻擊者使用

以下注入字符串:則SQL語(yǔ)句將變?yōu)椋篠QL注入漏洞進(jìn)階04SELECT*FROMusersWHEREusername='admin'

AND

password='password''OR1=1--SELECT*FROMusersWHEREusername=''

OR1=1--'ANDpassword='password'這個(gè)SQL語(yǔ)句的執(zhí)行結(jié)果將始終為真,因?yàn)镺R1=1總是為真。如果應(yīng)用程序的響應(yīng)不會(huì)泄漏有關(guān)查詢結(jié)果的信息,那么攻擊者可能需要使用基于時(shí)間的盲注來(lái)測(cè)試SQL語(yǔ)句的執(zhí)行時(shí)間,以確定是否存在漏洞。堆疊注入漏洞堆疊查詢是一種高級(jí)的SQL注入技術(shù),攻擊者可以利用它在一次請(qǐng)求中執(zhí)行多個(gè)查詢。例如,,考慮以下代碼。攻擊者可以構(gòu)造以下注入字符串:這個(gè)字符串將被解釋為兩個(gè)查詢SQL注入漏洞進(jìn)階04這將導(dǎo)致一個(gè)新用戶(hacker)被添加到用戶表中,而管理員(admin)的登錄將成功。SELECT*FROMusersWHEREusername='admin';INSERT

INTOusers(username,password)VALUES('hacker','password');--'ANDpassword='';

二次注入漏洞二次注入是一種SQL注入技術(shù),攻擊者在數(shù)據(jù)庫(kù)中創(chuàng)建惡意腳本,然后誘使另一個(gè)用戶(通常是管理員)執(zhí)行這些腳本。例如,考慮以下代碼。攻擊者可以構(gòu)造以下注入字符串:在進(jìn)階的SQL注入中,黑客不僅可以執(zhí)行SELECT語(yǔ)句,還可以執(zhí)行UPDATE、DELETE和INSERT等對(duì)數(shù)據(jù)進(jìn)行更改的語(yǔ)句;且能通過(guò)SQL語(yǔ)句的特點(diǎn)構(gòu)造出惡意代碼;以及利用一些數(shù)據(jù)庫(kù)的漏洞來(lái)進(jìn)行注入攻擊。SQL注入漏洞進(jìn)階04課堂實(shí)踐一、任務(wù)名稱:識(shí)別SQL注入點(diǎn)二、任務(wù)內(nèi)容:找出Web應(yīng)用程序中可能存在SQL注入的輸入點(diǎn)。三、工具需求:Burp、sqlmap

溫馨提示

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

評(píng)論

0/150

提交評(píng)論