軟件Web安全測試知多少

發表于:2009-04-23來源:作者:點擊數: 標簽:webWebWEB軟件
1. 數據驗證流程:一個好的web系統應該在IE端,server端,DB端都應該進行驗證。但有不少程序偷工減料,script驗證完了,就不管了;app server對數據長度和類型的驗證與db server的不一樣,這些都會引發問題。有興趣的可參看一下script代碼,設計一些case,這
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.xxx.com/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.xxx.com/news.asp?id=1and 1=(select count(*) from admin

  where left(name,1)=a)

  SQL語句就變成了

  select * news where id=1 and 1=(select count(*)

  from admin where left(name,1)=a)

  意思是admin表里如果存在字段字為name里左邊第一個字符是a的就查詢news表里id為1的內容,news表里id為1是有內容的,從邏輯上的角度來說就是1&P。只要P為真,表達式就為真,頁面會返回一個正確的頁面。如果為假頁面就會報錯或者會提示該id的文章不存在。黑客利用這點就可以慢慢得試用后臺管理員的用戶和密碼。


原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97