版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQL注入攻擊與防御1)通過(guò)對(duì)模擬網(wǎng)站進(jìn)行手動(dòng)和自動(dòng)SQL注入攻擊,獲取網(wǎng)站管理員的賬號(hào)和密碼,理解SQL注入攻擊的原理與步驟;2)通過(guò)對(duì)模擬網(wǎng)站的SQL注入漏洞進(jìn)行修補(bǔ),掌握SQL注入攻擊的防御方法。學(xué)習(xí)目標(biāo)1SQL的基礎(chǔ)知識(shí)01SELECT語(yǔ)句SELECT列名稱FROM表名稱SELECT*FROM表名稱0203UNION語(yǔ)句SELECT列名稱1FROM表名稱1UNIONSELECT列名稱2FROM表名稱2ORDERBY語(yǔ)句SELECTNameFROMClass1ORDERBYNamesql語(yǔ)句用戶能夠控制輸入程序原本要執(zhí)行的代碼,能夠拼接用戶輸入的數(shù)據(jù)SQL注入原理2項(xiàng)目的實(shí)施與驗(yàn)證sql手工注入攻擊。STEP01:在客戶端中訪問(wèn)衛(wèi)星中心小學(xué)模擬網(wǎng)站,點(diǎn)擊“關(guān)于我們”,如圖所示。STEP02:在地址欄35:99/common.asp?id=1后面輸入字符“’”,使得SQL查詢語(yǔ)句出錯(cuò)。通過(guò)網(wǎng)站返回的報(bào)錯(cuò)信息可以判斷網(wǎng)站數(shù)據(jù)庫(kù)的類型等,為注入攻擊收集信息,如圖所示STEP03:由返回的報(bào)錯(cuò)信息可以看到:MicrosoftJETDatabaseEngine‘80040e14’,因此判斷該網(wǎng)站使用的是Access數(shù)據(jù)庫(kù)(JET是MicrosoftAccess的底層數(shù)據(jù)庫(kù)引擎)。STEP04:在地址欄35:99/common.asp?id=1的后面加上and1=1,這時(shí)該鏈接的SQL查詢語(yǔ)句變?yōu)閟elect列from[表名]where[字段]=1and1=1。這條語(yǔ)句只是在原有語(yǔ)句的基礎(chǔ)上加了一個(gè)條件,并且該條件永遠(yuǎn)成立,因此,該語(yǔ)句是可以被正確執(zhí)行的,也即網(wǎng)頁(yè)能夠正常顯示,如圖所示。STEP05:再在地址欄35:99/common.asp?id=1后加上and1=2,這時(shí)該鏈接的SQL查詢語(yǔ)句變?yōu)闉閟elect列from[表名]where[字段]=1and1=2,因?yàn)?≠2,所以這條語(yǔ)句的執(zhí)行肯定會(huì)出錯(cuò),即網(wǎng)頁(yè)顯示會(huì)異常,如圖所示。由STEP02-STEP05的結(jié)果可以看出,鏈接35:99/common.asp?id=1拼接了用戶的輸入“’”、“and1=1”和“and1=2”,并且執(zhí)行了,因此,可以確認(rèn)該網(wǎng)站存在SQL注入點(diǎn)。STEP06:在確定存在注入點(diǎn)后,可在鏈接35:99/common.asp?id=1后面加上andexists(select*from[表名])來(lái)猜測(cè)數(shù)據(jù)庫(kù)的表名,例如,加上andexists(select*fromadmin),使鏈接的SQL查詢語(yǔ)句變?yōu)閟elect列from[表名]where[字段]=1andexists(select*fromadmin)。如果該SQL語(yǔ)句能被成功執(zhí)行,即網(wǎng)頁(yè)能夠正常顯示,就說(shuō)明存在admin表,否則說(shuō)明表名不存在。下圖分別為加上andexists(select*fromadmin)注入失敗與加上andexists(select*fromadmin_user)注入成功的結(jié)果。STEP07:通過(guò)上一步的猜測(cè),發(fā)現(xiàn)該數(shù)據(jù)庫(kù)存在admin_user表。接著在鏈接35:99/common.asp?id=1后面加上andexists(select[字段]fromadmin_user)來(lái)猜解admin_user表存在的字段,例如,加上andexists(selectadmin2fromadmin_user),使鏈接的SQL查詢語(yǔ)句變?yōu)閟elect列from[表名]where[字段]=1andexists(selectadmin2fromadmin_user)。如果該SQL語(yǔ)句能被成功執(zhí)行,即網(wǎng)頁(yè)能夠正常顯示,那么就說(shuō)明存在admin2字段,否則說(shuō)明該字段不存在。下圖分別為加上andexists(selectadmin2fromadmin_user)注入失敗與加上andexists(selectadminfromadmin_user)以及andexists(selectpasswordfromadmin_user)注入成功的結(jié)果。STEP08:由上兩步的猜測(cè)發(fā)現(xiàn),該數(shù)據(jù)庫(kù)存在表名admin_user,admin_user表中存在字段admin和password,接下來(lái)就可以獲取賬號(hào)和密碼了。首先使用的是orderby語(yǔ)句,例如在地址欄添加orderby10,鏈接的SQL語(yǔ)句就變?yōu)閟elect列from[表名]where[字段]=1orderby10,即使結(jié)果集按照第10個(gè)參數(shù)進(jìn)行排序。如果頁(yè)面正常顯示,說(shuō)明該結(jié)果集的參數(shù)個(gè)數(shù)大于等于10個(gè),如果網(wǎng)頁(yè)顯示出錯(cuò),那么說(shuō)明該結(jié)果集的參數(shù)個(gè)數(shù)小于10個(gè)。因此,通過(guò)orderby語(yǔ)句可以猜出網(wǎng)站當(dāng)前結(jié)果集的參數(shù)個(gè)數(shù)。下圖分別為加上orderby10以及orderby6注入失敗與加上orderby5注入成功的結(jié)果。STEP09:通過(guò)上一步可知當(dāng)前查詢結(jié)果集的參數(shù)個(gè)數(shù)是5,因此,在地址欄35:99/common.asp?id=1后面加上unionselect1,2,3,4,5fromadmin_user,使得SQL查詢語(yǔ)句變?yōu)閟elect列from[表名]where[字段]=1unionselect1,2,3,4,5fromadmin_user,以此測(cè)試網(wǎng)頁(yè)內(nèi)容的顯示方式,即select語(yǔ)句結(jié)果集的什么字段會(huì)在網(wǎng)頁(yè)中顯示出來(lái),以便用來(lái)顯示用戶名和密碼信息。接著把unionselect1,2,3,4,5fromadmin_user中的2,3都改為1,即加上unionselect1,1,1,4,5fromadmin_user這時(shí)頁(yè)面顯示的內(nèi)容也變成了1,說(shuō)明結(jié)果集的第二、第三個(gè)字段可顯示在網(wǎng)頁(yè)上。STEP10:由STEP07發(fā)現(xiàn):admin_user表中存在字段admin和password,利用STEP09步的測(cè)試結(jié)果可將admin和password的值顯示在網(wǎng)頁(yè)上,即在地址欄35:99/common.asp?id=1后面加上unionselect1,admin,password,4,5fromadmin_user,便可將用戶名和密碼顯示出來(lái)。使用工具進(jìn)行SQL注入攻擊STEP01:在客戶端解壓并運(yùn)行啊D注入工具,點(diǎn)擊“掃描注入點(diǎn)”,再在檢測(cè)網(wǎng)址處輸入衛(wèi)星中心小學(xué)模擬網(wǎng)站的網(wǎng)址35:99/,點(diǎn)擊輸入框右邊的紅色按鈕打開(kāi)網(wǎng)站,啊D注入工具會(huì)自動(dòng)對(duì)網(wǎng)站進(jìn)行注入點(diǎn)掃描,如果存在注入點(diǎn),將在下方“可用注入點(diǎn)”處的方框中顯示出來(lái)。STEP02:右鍵點(diǎn)擊“可用注入點(diǎn)”方框里的注入點(diǎn),選擇“注入檢測(cè)”,即進(jìn)入SQL注入檢測(cè)頁(yè)面,點(diǎn)擊右上角的“檢測(cè)”按鈕檢測(cè)數(shù)據(jù)庫(kù)類型STEP03:點(diǎn)擊“檢測(cè)表段”,猜解該數(shù)據(jù)庫(kù)存在的表名,只有先找出該數(shù)據(jù)庫(kù)存在的表名,才能猜解數(shù)據(jù)表中存在的字段,進(jìn)而得到管理員的用戶名和密碼。STEP04:猜測(cè)出的5個(gè)表名中有個(gè)admin_user,從字面的意思可以看出是該表中最有可能存在管理員的用戶名和密碼的。選中該表名,再點(diǎn)擊“檢測(cè)字段”,猜測(cè)該表中存在的字段。STEP05:選中password和admin前面的復(fù)選框,點(diǎn)擊檢測(cè)內(nèi)容。STEP06:選擇“管理入口檢測(cè)”,并點(diǎn)擊“檢測(cè)管理入口”。。STEP07:在IE中打開(kāi)網(wǎng)站管理頁(yè)面35:99/admin/index.asp,輸入STEP05得到的用戶名和密碼(這里STEP05工具沒(méi)有檢測(cè)出用戶名和密碼,只能使用手動(dòng)注入得到的用戶名和密碼了),即可登錄網(wǎng)站后臺(tái),進(jìn)行管理員權(quán)限的操作了。SQL注入攻擊的防御針對(duì)上述的SQL注入攻擊方式,可使用SQL防注入代碼來(lái)防御。SQL防注入代碼能夠?qū)υL問(wèn)網(wǎng)站頁(yè)面的關(guān)鍵字進(jìn)行過(guò)濾,一旦發(fā)現(xiàn)違法的關(guān)鍵字(如’、;、and、exec、select等)會(huì)提示非法訪問(wèn),阻止非法用戶的攻擊。例如,對(duì)存在注入漏洞的衛(wèi)星中心小學(xué)模擬網(wǎng)站進(jìn)行防御設(shè)置。STEP01:將壓縮包里的dsql.asp文件復(fù)制至服務(wù)器衛(wèi)星中心小學(xué)模擬網(wǎng)站的目錄下。該dsql.asp文件為防注入代碼STEP02:在服務(wù)器衛(wèi)星中心小學(xué)模擬網(wǎng)站的目錄下以記事本方式打開(kāi)文件common.asp,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州大學(xué)《影視音樂(lè)欣賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽(yáng)幼兒師范高等??茖W(xué)?!段枧_(tái)語(yǔ)言基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025江蘇省建筑安全員A證考試題庫(kù)及答案
- 貴陽(yáng)學(xué)院《復(fù)合材料學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025重慶建筑安全員-B證考試題庫(kù)附答案
- 2025年-浙江省安全員C證考試(專職安全員)題庫(kù)附答案
- 2025貴州省建筑安全員-C證考試(專職安全員)題庫(kù)及答案
- 廣州醫(yī)科大學(xué)《材料創(chuàng)新導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025四川省建筑安全員知識(shí)題庫(kù)附答案
- 2025遼寧建筑安全員B證(項(xiàng)目經(jīng)理)考試題庫(kù)
- 2024年道路清障拖車服務(wù)合同協(xié)議3篇
- 2025年1月八省聯(lián)考河南新高考物理試卷真題(含答案詳解)
- 建設(shè)工程檢試驗(yàn)工作管理實(shí)施指引
- 軟件租賃合同范例
- 匯川技術(shù)在線測(cè)評(píng)題及答案
- 廣東省廣州市2023-2024學(xué)年高一上學(xué)期期末物理試卷(含答案)
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 食品企業(yè)產(chǎn)品出廠檢驗(yàn)報(bào)告
- 鍋爐本體水壓試驗(yàn)記錄
- 綜治工作中心信訪穩(wěn)定和矛盾糾紛排查化解工作流程圖
- 牛初乳知識(shí)課件
評(píng)論
0/150
提交評(píng)論