SQL注入測試的測試點


 

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文件進行了敏感字符或命令集的屏蔽

前提是設計或需求允許這樣的操作

 

 轉載請注明作者與出處,謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM