版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SQL注入漏洞全接觸 從這個(gè)錯(cuò)誤提示我們能看出下面幾點(diǎn): 1.網(wǎng)站使用的是Access數(shù)據(jù)庫(kù),通過(guò)JET引擎連接數(shù)據(jù)庫(kù),而不是通過(guò)ODBC。 2.程序沒(méi)有推斷客戶端提交的數(shù)據(jù)是否符合程序要求。 3.該SQL語(yǔ)句所查詢的表中有一名為ID的字段。 這就是經(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) 不可以注入就比較簡(jiǎn)單推斷了,同樣正
2、常顯示,和一般都會(huì)有程序定義的錯(cuò)誤提示,或提示類型轉(zhuǎn)換時(shí)出錯(cuò)。 當(dāng)然,這只是傳入?yún)?shù)是數(shù)字型的時(shí)候用的推斷方法,實(shí)際應(yīng)用的時(shí)候會(huì)有字符型和搜尋型參數(shù),我將在中級(jí)篇的“注入一般步驟”再做分析。 第三節(jié)、推斷數(shù)據(jù)庫(kù)類型及注入方法 不同的數(shù)據(jù)庫(kù)的函數(shù)、注入方法都是有差異的,所以在注入之前,我們還要推斷一下數(shù)據(jù)庫(kù)的類型。一般ASP最常搭配的數(shù)據(jù)庫(kù)是Access和SQLServer,網(wǎng)上超過(guò)99%的網(wǎng)站都是其中之一。 怎么讓程序告知你它使用的什么數(shù)據(jù)庫(kù)呢?來(lái)看看: 000 假如數(shù)據(jù)庫(kù)用的是Access,那么狀況就有所不同,第一個(gè)網(wǎng)址的頁(yè)面與原頁(yè)面完全不同;第二個(gè)網(wǎng)址,則視乎數(shù)據(jù)庫(kù)設(shè)置是否允許讀該系統(tǒng)表,
3、一般來(lái)說(shuō)是不允許的,所以與原網(wǎng)址也是完全不同。大多數(shù)狀況下,用第一個(gè)網(wǎng)址就可以得知系統(tǒng)所用的數(shù)據(jù)庫(kù)類型,第二個(gè)網(wǎng)址只作為開啟IIS錯(cuò)誤提示時(shí)的驗(yàn)證。0 sql,注入 先說(shuō)明原理:假如top1的username長(zhǎng)度大于0,則條件成立;接著就是>1、>2、>3這樣測(cè)試下去,一直到條件不成立為止,比如>7成立,>8不成立,就是len(username)=8 當(dāng)然沒(méi)人會(huì)笨得從0,1,2,3一個(gè)個(gè)測(cè)試,怎么樣才比較快就看各自發(fā)揮了。在得到username的長(zhǎng)度后,用mid(username,N,1)截取第N位字符,再asc(mid(username,N,1)得到ASCII碼
4、,比如: id=49and(selecttop1asc(mid(username,1,1)fromAdmin)>0 同樣也是用逐步縮小范圍的方法得到第1位字符的ASCII碼,留意的是英文和數(shù)字的ASCII碼在1-128之間,可以用折半法加速猜解,假如寫成程序測(cè)試,效率會(huì)有極大的提高。 第二節(jié)、SQL注入常用函數(shù) 有SQL語(yǔ)言基礎(chǔ)的人,在SQL注入的時(shí)候成功率比不熟識(shí)的人高許多。我們有必要提高一下自己的SQL水平,特殊是一些常用的函數(shù)及命令。 Access:asc(字符)SQLServer:unicode(字符) 作用:返回某字符的ASCII碼 Access:chr(數(shù)字)SQLServe
5、r:nchar(數(shù)字) 作用:與asc相反,依據(jù)ASCII碼返回字符 Access:mid(字符串,N,L)SQLServer:substring(字符串,N,L) 作用:返回字符串從N個(gè)字符起長(zhǎng)度為L(zhǎng)的子字符串,即N到N+L之間的字符串 Access:abc(數(shù)字)SQLServer:abc(數(shù)字) 作用:返回?cái)?shù)字的肯定值(在猜解漢字的時(shí)候會(huì)用到) Access:AbetweenBAndCSQLServer:AbetweenBAndC 作用:推斷A是否界于B與C之間 第三節(jié)、中文處理方法 在注入中遇到中文字符是常有的事,有些人一遇到中文字符就想打退堂鼓了。其實(shí)只要對(duì)中文的編碼有所了解,“中文
6、恐驚癥”很快可以克服。 先說(shuō)一點(diǎn)常識(shí): Access中,中文的ASCII碼可能會(huì)出現(xiàn)負(fù)數(shù),取出該負(fù)數(shù)后用abs()取肯定值,漢字字符不變。 SQLServer中,中文的ASCII為正數(shù),但由于是UNICODE的雙位編碼,不能用函數(shù)ascii()取得ASCII碼,必需用函數(shù)unicode()返回unicode值,再用nchar函數(shù)取得對(duì)應(yīng)的中文字符 00)>00 sql,注入 從拿到表名后,用object_id(表名)獲取表名對(duì)應(yīng)的內(nèi)部ID,col_name(表名ID,1)代表該表的第1個(gè)字段名,將1換成2,3,4.就可以逐個(gè)獲取所猜解表里面的字段名。 以上6點(diǎn)是我研究SQLServer注
7、入半年多以來(lái)的心血結(jié)晶,可以看出,對(duì)SQLServer的了解程度,直接影響著成功率及猜解速度。在我研究SQLServer注入之后,我在開發(fā)方面的水平也得到很大的提高,呵呵,或許安全與開發(fā)原來(lái)就是相輔相成的吧。 第二節(jié)、繞過(guò)程序限制連續(xù)注入 在入門篇提到,有許多人喜歡用號(hào)測(cè)試注入漏洞,所以也有許多人用過(guò)濾號(hào)的方法來(lái)“防止”注入漏洞,這或許能攔住一些入門者的攻擊,但對(duì)注入比較熟識(shí)的人,還是可以利用相關(guān)的函數(shù),達(dá)到繞過(guò)程序限制的目的。 在“注入的一般步驟”一節(jié)中,我所用的語(yǔ)句,都是經(jīng)過(guò)我優(yōu)化,讓其不包含有單引號(hào)的;在“利用系統(tǒng)表注入SQLServer數(shù)據(jù)庫(kù)”中,有些語(yǔ)句包含有號(hào),我們舉個(gè)例子來(lái)看看怎
8、么改造這些語(yǔ)句: 簡(jiǎn)潔的如wherextype=U,字符U對(duì)應(yīng)的ASCII碼是85,所以可以用wherextype=char(85)代替;假如字符是中文的,比如wherename=用戶,可以用wherename=nchar(29992)+nchar(25143)代替。 第三節(jié)、經(jīng)驗(yàn)小結(jié) 1.有些人會(huì)過(guò)濾Select、Update、Delete這些關(guān)鍵字,但偏偏遺忘區(qū)分大小寫,所以大家可以用selecT這樣嘗試一下。 2.在猜不到字段名時(shí),不妨看看網(wǎng)站上的登錄表單,一般為了便利起見,字段名都與表單的輸入框取相同的名字。 3.特殊留意:地址欄的+號(hào)傳入程序后解釋為空格,%2B解釋為+號(hào),%25解釋為%號(hào),詳細(xì)可以參考URLEncode的相關(guān)介紹。 4.用Get方法注入時(shí),IIS會(huì)記錄你全部的提交字符串,對(duì)Post方法做則不記錄,所以能用Post的網(wǎng)址盡量不用Get。 5.猜解Access時(shí)只能用Ascii逐字解碼法,SQLServer也可以用這種方法,只需要兩者之間的區(qū)分即可,但是假如能用SQLServer的報(bào)錯(cuò)信息把值暴露出來(lái),那效率和精確率會(huì)有極大的提高。 防范方法 注入漏洞可謂是“千里之堤,潰于蟻穴”,這種漏洞在網(wǎng)上極為普遍,通常是由于程序員對(duì)注入不了解,或者程序過(guò)濾不嚴(yán)格,或者某個(gè)參數(shù)遺忘檢查導(dǎo)致。在這里,我給大家 Endif Else ParaValue=replace(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海報(bào)設(shè)計(jì)合同模板
- 家庭雇傭保姆合同樣式參考
- 2024獨(dú)家原創(chuàng)企業(yè)績(jī)效合同簽定儀式領(lǐng)導(dǎo)講話稿
- 2024租賃辦公室合同范本
- 個(gè)人教育助學(xué)貸款
- 購(gòu)房借款協(xié)議2024年
- 籃球訓(xùn)練合作協(xié)議范本
- 房產(chǎn)代理合同租賃
- 個(gè)人消費(fèi)借款合同范本
- 提升機(jī)租賃合同樣本格式
- GB/T 20466-2006水中微囊藻毒素的測(cè)定
- GB/T 18168-2008水上游樂(lè)設(shè)施通用技術(shù)條件
- 哈工大《光電測(cè)量技術(shù)》ppt
- 醫(yī)療技術(shù)臨床應(yīng)用管理辦法培訓(xùn)課件
- 有效作業(yè)課件
- 水泥生產(chǎn)工藝流程及過(guò)程控制培訓(xùn)課件
- 外科護(hù)理學(xué)試題+答案
- 《幼兒園家園共育研究開題報(bào)告(含提綱)》
- 《中醫(yī)推拿按摩》課件
- 國(guó)家5A景區(qū)創(chuàng)建簡(jiǎn)介課件
- 樣板間裝修方案
評(píng)論
0/150
提交評(píng)論