SQL注入測試的測試點

 

SQL注入測試的測試點程序員

1.輸入域的值爲數字型,用1=1,1=2法

若知足條件,則存在SQL注入漏洞,程序沒有對提交的整型參數的合法性作過濾或判斷數據庫

2.輸入域的值爲字符型,用 ’1=1’, ’1=2’ 法

若知足條件,則存在SQL注入漏洞,程序沒有對提交的字符型參數的合法性作過濾或判斷瀏覽器

3.輸入域中的值爲搜索型,用’and [查詢條件] and ‘%’=’% 等

若知足條件,則存在SQL注入漏洞,程序沒有對提交的查詢的合法性作過濾或判斷服務器

4.用UNION查詢語句

利用Union能夠鏈接查詢,從而從其餘表中獲得信息cookie

5.大小寫排查

程序員對大小寫的過濾不充分時,會忽視大小寫混合的狀況,容易存在漏洞函數

6.用UNICODE字符集檢查

用UNICODE字符集轉化的輸入,會把+號轉爲%2B,把%號轉化爲%25等,容易忽略過濾測試

7.用ASCII碼檢查

把輸入的字符用ASCII碼代替,如a=char(97),容易忽略過濾spa

8.用;號或—號檢查

分號;在SQLServer中表示隔開先後兩句語句,--表示後面的語句爲註釋,容易忽略過濾設計

9.利用系統表

經過查詢數據庫的系統表名,可判斷具體用的數據庫類型get

10.利用數據庫服務器的系統變量user 等

能夠獲得數據庫名,數據庫的用戶名,從而進行進一步攻擊

11.利用相關函數

若字符是中文的,好比where name=’用戶’,能夠用where name=nchar(29992)+nchar(25143)代替。

12.界面輸入框中是否對SQL敏感字符進行了屏蔽

"exec" ,"xp_","sp_","declare","Union","cmd","+","//","..",";","'","--","%" 等命令關鍵字

13.是否對SQL腳本語法出錯信息進行了屏蔽

有些SQL注入的目的就是爲了看到報錯的SQL命令,經過分析這些SQL命令,獲取關鍵的數據庫名,表名以及字段名等信息

14.在瀏覽器的地址欄中是否對一些恆等表達式進行了屏蔽

例如:http://www.321cn. Com /showdetail.asp?id=19 and 1=1

15.對於提交表單的瀏覽器地址是否進行了敏感字符或命令集的屏蔽

16.對於cookie參數提交部分,是否對於cookie文件進行了敏感字符或命令集的屏蔽

前提是設計或需求容許這樣的操做

 

 轉載請註明做者與出處,謝謝。

相關文章
相關標籤/搜索