Web網(wǎng)絡(luò)安全分析SQL注入繞過技術(shù)原理
SQL注入繞過技術(shù)
大小寫繞過注入
使用關(guān)鍵字大小寫的方式嘗試?yán)@過,如And 1=1(任意字母大小寫都可以,如aNd 1=1,AND 1=1等),就可以看到訪問id=1 And 1=1時(shí)頁面返回與id=1相同的結(jié)果,訪問id=1 And 1=2時(shí)頁面返回與id=1不同的結(jié)果,得出存在SQL注入漏洞的結(jié)論。
使用order by查詢字段數(shù)量,還是利用修改關(guān)鍵字大小寫來繞過它,嘗試只改order這個(gè)單詞,結(jié)果發(fā)現(xiàn)order改成Order后,頁面顯示正常,說明by并沒有被攔截,最終通過嘗試。
接著,使用Union方法完成此次注入,如果仍然遇到關(guān)鍵字被攔截,則嘗試使用修改大小寫的方式繞過攔截。
雙寫繞過注入
關(guān)鍵字and被過濾時(shí),可以嘗試使用雙寫的方式繞過,如anandd 1=1,當(dāng)and被過濾后,anandd變成了and,所以這時(shí)傳入數(shù)據(jù)庫的語句是and 1=1。
當(dāng)訪問id=1 order by 3時(shí),如果MySQL的錯(cuò)誤信息為“der by 3”,說明這里并沒有過濾order整個(gè)單詞,而是僅過濾or,因此只需要雙寫or即可。
后面的注入過程與Union注入的一致。
編碼繞過注入
如果發(fā)現(xiàn)關(guān)鍵字and被攔截,可以嘗試使用URL全編碼的方式繞過攔截。由于服務(wù)器會自動(dòng)對URL進(jìn)行一次URL解碼,所以需要把被攔截的關(guān)鍵字編碼兩次。這里需要注意的是,URL編碼需選擇全編碼,而不是普通的URL編碼。關(guān)鍵字and進(jìn)行兩次URL全編碼的結(jié)果是%25%36%31%25%36%65%25%36%34。
內(nèi)聯(lián)注釋繞過注入
內(nèi)聯(lián)注釋繞過即將被攔截的關(guān)鍵字寫在注釋中,通過內(nèi)斂的寫法執(zhí)行完整語句,例如id=1 /*!and*/ 1=1。
SQL注入修復(fù)建議
常用的SQL注入漏洞修復(fù)建議有兩種。
過濾危險(xiǎn)字符
多數(shù)CMS都采用過濾危險(xiǎn)字符的方式,例如,采用正則表達(dá)式匹配union、sleep、load_file等關(guān)鍵字,如果匹配到,則退出程序。
使用預(yù)編譯語句
使用PDO預(yù)編譯語句,需要注意的是,不要將變量直接拼接到PDO語句中,而是使用占位符進(jìn)行數(shù)據(jù)庫的增加、刪除、修改、查詢。
以上就是Web網(wǎng)絡(luò)安全分析SQL注入繞過技術(shù)原理的詳細(xì)內(nèi)容,更多關(guān)于Web網(wǎng)絡(luò)安全SQL注入繞過技術(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
無線網(wǎng)攻擊工具進(jìn)攻方法及防范技巧小結(jié)
對無線網(wǎng)安全攻防有興趣的人應(yīng)該都需要一套工具,英特網(wǎng)上有很多免費(fèi)的工具。本文不求全面,但求能提供一些指導(dǎo)和建議。2008-02-02一句話木馬的原理及利用分析(asp,aspx,php,jsp)
一句話木馬的原理及利用分析,大家在發(fā)現(xiàn)可疑情況下,需要注意檢查的地方。2011-02-02