SQL注入測試的測試點
1.輸入域的值為數字型,用1=1,1=2法
若滿足條件,則存在SQL注入漏洞,程序沒有對提交的整型參數的合法性做過濾或判斷
2.輸入域的值為字符型,用 ’1=1’, ’1=2’ 法
若滿足條件,則存在SQL注入漏洞,程序沒有對提交的字符型參數的合法性做過濾或判斷
3.輸入域中的值為搜索型,用’and [查詢條件] and ‘%’=’% 等
若滿足條件,則存在SQL注入漏洞,程序沒有對提交的查詢的合法性做過濾或判斷
4.用UNION查詢語句
利用Union可以連接查詢,從而從其他表中得到信息
5.大小寫排查
程序員對大小寫的過濾不充分時,會忽視大小寫混合的情況,容易存在漏洞
6.用UNICODE字符集檢查
用UNICODE字符集轉化的輸入,會把+號轉為%2B,把%號轉化為%25等,容易忽略過濾
7.用ASCII碼檢查
把輸入的字符用ASCII碼代替,如a=char(97),容易忽略過濾
8.用;號或—號檢查
分號;在SQLServer中表示隔開前后兩句語句,--表示后面的語句為注釋,容易忽略過濾
9.利用系統表
通過查詢數據庫的系統表名,可判斷具體用的數據庫類型
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文件進行了敏感字符或命令集的屏蔽
前提是設計或需求允許這樣的操作
轉載請注明作者與出處,謝謝。
