Web安全測試知多少
1. 數據驗證流程:一個好的web係統應該在IE端,server端,DB端都應該進行驗證。但有不少程序偷工減料,script驗證完了,就不管了;app server對數據長度和類型的驗證與db server的不一樣,這些都會引發問題。有興趣的可參看一下script代碼,設計一些case,這可是你作為一個高級測試人員的優秀之處哦。我曾修改了頁麵端的script代碼,然後提交了一個form,引發了一個係統的重大漏洞後門
2. 數據驗證類型: 如果web server端提交sql語句時,不對提交的sql語句驗證,那麼一個黑客就可暗喜了。他可將提交的sql語句分割,後麵加一個delete all或drop database的之類語句,能將你的數據庫內容刪個精光!我這一招還沒實驗在internet網站上,不知這樣的網站有沒有,有多少個。反正我負責的那個web係統曾經發現這樣的問題。
3. 網絡加密,數據庫加密不用說了吧。
WEB軟件最常碰到的BUG為:
1、SQL INJETION
2、對文件操作相關的模塊的漏洞
3、COOKIES的欺騙
4、本地提交的漏洞
●SQL INJETION的測試方法
原理:
如有一新聞管理係統用文件news.asp再用參數讀取數據庫裏的新聞譬如
http://www./news.asp?id=1這一類網站程序
如果直接用
rs.open ‘select * from news where id=‘ &
cstr(request(‘id‘)),conn,1,1
數據庫進行查詢的話即上麵的URL所讀取的文章是這樣讀取的
select * from news where id=1
懂得SQL語言的就知道這條語言的意思是在news讀取id為1的文章內容。
但是在SQL SERVER裏select是支持子查詢和多句執行的。如果這樣提交URL的話
http://www./news.asp?id=1and 1=(select count(*) from admin