SQL隱碼攻擊漏洞的判斷

時間 2021-07-01 05:50:13

1樓:匿名使用者

如果以前沒玩過注入,

請把ie選單-工具-internet選項-高階-顯示友好http錯誤資訊前面的勾去掉。

為了把問題說明清楚,以下以asp?id=xx(" target=_blank>http://www.

id=xx(這個地址是假想的)

為例進行分析,xx可能是整型,也有可能是字串。

1、整型引數的判斷

當輸入的引數xx為整型時,通常news.asp中sql語句原貌大致如下:

select * from 表名 where 欄位=xx,所以可以用以下步驟測試sql注入是否存在。

最簡單的判斷方法

附加一個單引號),

此時news.asp中的sql語句變成了

select * from 表名 where 欄位=xx』,

如果程式沒有過濾好「』」的話

就會提示 news.asp執行異常;

但這樣的方法雖然很簡單,但並不是最好的

因為first,不一定每臺伺服器的iis都返回具體錯誤提示給客戶端,

如果程式中加了cint(引數)之類語句的話,sql注入是不會成功的,

但伺服器同樣會報錯,具體提示資訊為處理 url 時伺服器上出錯。

請和系統管理員聯絡。

second,目前大多數程式設計師已經將「』「 過濾掉,所以用」 』」測試不到注入點

所以一般使用經典的1=1和1=2測試方法

見下文:

執行正常,

而且與執行結果相同;

asp執行異常;(這就是經典的 1=1 ;1=2 判斷方法)

如果以上面滿足,news.asp中就會存在sql注入漏洞,反之則可能不能注入。

2、字串型引數的判斷

方法與數值型引數判斷方法基本相同

當輸入的引數xx為字串時,通常news.asp中sql語句原貌大致如下:

select * from 表名 where 欄位='xx',所以可以用以下步驟測試sql注入是否存在。

附加一個單引號),此時news.asp中的sql語句變成了

select * from 表名 where 欄位=xx』,news.asp執行異常;

and '1'='1', news.asp執行正常,

而且與執行結果相同;

and '1'='2', news.asp執行異常;

如果以上滿足,則news.asp存在sql注入漏洞,反之則不能注入

3、特殊情況的處理

有時asp程式設計師會在程式設計師過濾掉單引號等字元,以防止sql注入。此時可以用以下幾種方法試一試。

①大小定混合法:由於vbs並不區分大小寫,而程式設計師在過濾時通常要麼全部過濾大寫字串,要麼全部過濾小寫字串,而大小寫混合往往會被忽視。如用select代替select,select等;

②unicode法:在iis中,以unicode字符集實現國際化,我們完全可以ie中輸入的字串化成unicode字串進行輸入。如+ =%2b,空格=%20 等

;urlencode資訊參見附件一;

③ascii碼法:可以把輸入的部分或全部字元全部

<4>出了上述方法以外,還有個更簡單的方法就是使用現成的工具

像nb聯盟的nbsi就是一款很不錯的工具,目前最新的版本為2.2

2樓:山西新華電腦學校

sql注入:利用現有應用程式,將(惡意)的sql命令注入到後臺資料庫引擎執行的能力,這是sql注入的標準釋義。

簡述什麼是SQL隱碼攻擊,寫出簡單的SQL隱碼攻擊語句

一般開發,肯定是在前臺有兩個輸入框,一個使用者名稱,一個密碼,會在後臺裡,讀取前臺傳入的這兩個引數,拼成一段sql,例如 select count 1 from tab where usesr userinput and pass passinput,把這段sql連線資料後,看這個使用者名稱 密碼是...

sql判斷是否存在,SQL 語句判斷記錄是否存在

declare a int 定義變數select a count from a where id 2 查詢表a是否存在id 2 的資料,並賦值給變數 a 以下為判斷 if a 0 begin print 不存在 insert into aaa id values 2 插入資料 endelse pri...

判斷sql最後一條記錄,判斷sql最後一條記錄

sqlserver資料庫中判斷 declare maxnum int initnum intselect maxnum count from tbookinfo set initnum 1 while initnum maxnumbegin set initnum initnum 1 if init...