a.最簡單的判斷方法
在要檢測的網(wǎng)址后面加一個單引號:http://www.xxx.com /show.asp?id=474’
此時show.asp中的SQL語句變成了:select * from 表名 where 字段=xx’,如果程序沒有過濾好“’”的話,就會提示 show.asp運行異常;但這樣的方法雖然很簡單,但并不是最好的,因為:
第一:不一定每臺服務器的IIS都返回具體錯誤提示給客戶端,如果程序中加了cint(參數(shù))之類語句的話,SQL注入是不會成功的,但服務器同樣會報錯,具體提示信息為處理 URL 時服務器上出錯。請和系統(tǒng)管理員聯(lián)絡。
第二:由于以前存在過的1’ or ‘1’=’1漏洞,所以目前大多數(shù)程序員已經(jīng)將“’“ 過濾掉,所以用" '"測試不到注入點,所以一般使用經(jīng)典的1=1和1=2測試方法,如下:
http://www.xxx.com /show.asp?id=474 and 1=1, show.asp運行正常,而且與http://www.xxx.com /show.asp?id=474運行結果相同。
http://ww.xxx.com /show.asp?id=474 and 1=2, show.asp運行異常,(這就是經(jīng)典的 1=1 1=2 判斷方法)。
這里很明顯當加 and 1=1 的時候返回完全正常的頁面,加 and 1=2 顯示:暫時還沒有文章!
到這里基本上可以斷定他存在SQL注入,至于能不能注出賬號密碼來,還需要更進一步的注入測試,這里只能得到SQL注入點: http://www.xxx.com/show.asp?id=474
4.判斷表是否存在
國內的一般程序員在設計數(shù)據(jù)庫的時候都會用一些特定的做為表名,字段名什么的。比如說后臺管理員一般放在表admin里面,而注冊的用戶放在表users里,當然,只是一般,依照各程序的不同而不同。
新聞熱點
疑難解答
圖片精選