SQL注入繞過方式
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
前言 在實(shí)際的測(cè)試過程中,經(jīng)常會(huì)遇到一些SQL注入,明明判斷存在注入點(diǎn),然而在實(shí)際的測(cè)試過程中會(huì)發(fā)現(xiàn)有各種各樣的輸入過濾器導(dǎo)致SQL注入利用失敗。這時(shí)我們需要利用一些不常見的特性或者與其它技術(shù)結(jié)合起來以便發(fā)動(dòng)成功的攻擊。本篇文章就來看看常見的過濾方式以及繞過的方式。 判斷是否存在SQL注入的方式 1)布爾注入 2)時(shí)間注入 3)錯(cuò)誤 4)內(nèi)聯(lián) 5)union 6)堆疊(stack queries) 常見的過濾方式 1)過濾SQL關(guān)鍵字,比如SELECT,AND,INSERT等 繞過方式 1)使用大小寫變種 特性:數(shù)據(jù)庫使用不區(qū)分大小寫的方式處理SQL關(guān)鍵字 這種特性在基于關(guān)鍵字的檢測(cè)中,如果沒有對(duì)大小寫進(jìn)行判斷,則可以繞過。 2)使用SQL注釋符 特性:在SQL語句中用/**/來進(jìn)行多行注釋。可以用注釋符來代替空格連接SQL關(guān)鍵字。 PS:低版本的MySQL中甚至可以在SQL關(guān)鍵字中使用內(nèi)聯(lián)注釋。 /* */ 在mysql中是多行注釋 但是如果里面加了! 那么后面的內(nèi)容會(huì)被執(zhí)行 select/*foo*/username/*foo*/users sel/*foo*/ect username,password fr/*foo*/om user (mysql中還可以插入到關(guān)鍵字中) 3)使用編碼(URL編碼,Unicode編碼) URL編碼:使用字符的十六進(jìn)制ASCII碼來替換,并在ASCII碼前加上%就是URL編碼。 特性:web程序經(jīng)過一系列處理,可能將經(jīng)過編碼的字符還原成原始字符并帶到數(shù)據(jù)庫中執(zhí)行。 PS:單次編碼不行的時(shí)候,可以嘗試雙重編碼,因?yàn)閃EB應(yīng)用程序有時(shí)會(huì)多次解碼用戶輸入并在最后解碼之前應(yīng)用其輸入過濾器。 4)使用動(dòng)態(tài)查詢 特性:許多數(shù)據(jù)庫都允許動(dòng)態(tài)執(zhí)行SQL查詢,只須向執(zhí)行查詢的數(shù)據(jù)庫函數(shù)傳遞一個(gè)包含SQL查詢的字符串即可。 PS:SQLSERVER中使用exec。exec('select password from tbluser') oracle中使用EXECUTE IMMEDIATE命令執(zhí)行一個(gè)字符串格式的查詢。 這樣如果過濾了關(guān)鍵字就可以通過連接字符來進(jìn)行繞過。
通過還可以使用cha()來構(gòu)造SQL中的關(guān)鍵字。 SQLSERVER中,可以使用代表字符串的ASCII字符編碼的十六進(jìn)制數(shù)字來實(shí)例化字符串。如下:
5)使用空字節(jié) 特性:原生代碼和托管代碼分別采用不同的方法來處理空字節(jié)。原生代碼根據(jù)第一個(gè)空字節(jié)的位置來確認(rèn)字符串的長度。這種差異導(dǎo)致,原生過濾器如果遇到字符串遇到空字符就會(huì)停止處理,導(dǎo)致繞過過濾器。 %00’ union select password form tblusers -- 6)使用嵌套 特性:有的過濾器采用的方式是通過去掉SQL關(guān)鍵字。可以退通過嵌套的方式繞過。 selselectect 7)利用截?cái)?/strong> 特性:有的輸入過濾器會(huì)將輸入截?cái)喑勺畲箝L度。 有的過濾器將‘變換成’‘來防止SQL注入。這是如果可以截?cái)啵敲淳涂梢岳@過。 8)非標(biāo)準(zhǔn)入口 特性:有的waf只檢查了常規(guī)的參數(shù)值。我們可以將paylaod放到參數(shù)名中。還有http的其它協(xié)議,如user-agent。 9)利用二階注入 特性:輸入的時(shí)候?qū)ψ址M(jìn)行了轉(zhuǎn)換,然后將不安全的字符原樣存儲(chǔ)在數(shù)據(jù)庫中,下次查詢時(shí)就會(huì)造成SQL注入。 總結(jié) 上面這些過濾方式只是一些比較基本的,類似的還有很多,在遇到判斷存在注入點(diǎn)而無法利用的時(shí)候可以嘗試一下繞過。 該文章在 2024/5/17 15:50:39 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |