Web安全測(cè)試1、用戶權(quán)限測(cè)試
?。?) 用戶權(quán)限控制 1) 用戶權(quán)限控制主要是對(duì)一些有權(quán)限控制的功能進(jìn)行驗(yàn)證 2) 用戶A才能進(jìn)行的操作,,B是否能夠進(jìn)行操作(可通過竄session,將在下面介紹) 3)只能有A條件的用戶才能查看的頁面,,是否B能夠查看(可直接敲URL訪問) ?。?) 頁面權(quán)限控制 1) 必須有登陸權(quán)限的頁面,是否能夠在不登陸情況下進(jìn)行訪問 2)必須經(jīng)過A——B——C的頁面,,是否能夠直接由A——C,? 2、URL安全測(cè)試 ?。?)適用范圍: URL中含有參數(shù),,也就是通過GET方式傳遞的HTTP請(qǐng)求 (2)什么叫GET方式,? HTTP 定義了與服務(wù)器交互的不同方法,,最基本的方法是 GET 和 POST。 GET方式在客戶端通過URL提交數(shù)據(jù),,數(shù)據(jù)在URL中可以看到,,例如在日常中訂購(gòu)服務(wù): http://pay.daily.taobao.net/mysub/subdeal/order_sub_deal.htm?servId=2 POST方式,,數(shù)據(jù)放置在HTML HEADER內(nèi)提交,,數(shù)據(jù)在URL中看不到 GET只能傳輸比較少的數(shù)據(jù),,安全性較低,POST傳輸數(shù)據(jù)較多,,安全性也比GET高 ?。?)測(cè)試關(guān)注點(diǎn): 1) URL 參數(shù)檢查: A: 如:URL中的訂單號(hào)、金額允許顯示出來的話,,需要驗(yàn)證其是否正確 B: 如:用戶登陸時(shí)登錄名、密碼是否被顯示出來了 ,, 2) URL參數(shù)值篡改 修改URL中的數(shù)據(jù),,看程序是否能識(shí)別: 如:對(duì)于以下URL,修改其中planId,,看是程序是否可以識(shí)別: http://pay.daily.taobao.net/mysub/plan/subplan/confirmSubPlanInfo.htm,?planId=878 又如:對(duì)于URL中包含金額參數(shù)的,修改金額看是否能夠提交成功(可能導(dǎo)致用戶把2元金額改成1元金額能提交),,還有修改訂單號(hào)等重要信息看是否會(huì)報(bào)錯(cuò) 3) URL中參數(shù)修改進(jìn)行XSS注入: 什么是XSS,? XSS的全稱是Cross Site Script(跨站點(diǎn)腳本) XSS的原理很簡(jiǎn)單,即進(jìn)行腳本注入,,URL執(zhí)行時(shí)即把此腳本進(jìn)行了執(zhí)行,,一般都是JavaScript腳本。 如“http://demo./index_Article_Class.asp?fID_ArticleClass=2&ArticleClassName=abc” 改成“http://demo./index_Article_Class.asp?fID_ArticleClass=2&ArticleClassName=abc<script>alert("hello");</script>” 看看有沒彈出對(duì)話框顯示hello,,有的話就有跨站漏洞,。 在URL中進(jìn)行XSS注入,也就是把URL中的參數(shù)改成JS腳本,。 4) URL參數(shù)中進(jìn)行SQL 注入 什么是SQL注入,? SQL注入全稱是SQL Injection ,當(dāng)應(yīng)用程序使用輸入內(nèi)容來構(gòu)造動(dòng)態(tài)sql語句以訪問數(shù)據(jù)庫(kù)時(shí),,會(huì)發(fā)生sql注入攻擊,,如查詢、插入數(shù)據(jù)時(shí),。 測(cè)試方法: URL中寫入SQL注入語句,,看是否被執(zhí)行, 設(shè)置用戶名為 admin ' or '1'='1 3,、表單提交安全測(cè)試 適用范圍:有表單提交的地方、有HTTP請(qǐng)求的地方(包括GET,、POST請(qǐng)求) 測(cè)試關(guān)注點(diǎn): 1) 表單中注入XSS腳本 什么是XSS,?這已在上一節(jié)中說明。URL中需要檢測(cè)XSS注入,,表單中更需要驗(yàn)證 測(cè)試方法:即在表單填寫框中直接注入JS腳本 如在表單中輸入XSS腳本,,程序是不應(yīng)該讓腳本執(zhí)行的 2) 表單中注入SQL 腳本 與URL中參數(shù)進(jìn)行SQL注入類似,,就是在表單中寫入SQL注入腳本提交看是否會(huì)有問題 4,、Session測(cè)試 (1)Session是客戶端與服務(wù)器端建立的會(huì)話,,總是放在服務(wù)器上的,,服務(wù)器會(huì)為每次會(huì)話建立一個(gè)sessionId,每個(gè)客戶會(huì)跟一個(gè)sessionID對(duì)應(yīng),。 并不是關(guān)閉瀏覽器就結(jié)束了本次會(huì)話,,通常是用戶執(zhí)行“退出”操作或者會(huì)話超時(shí)時(shí)才會(huì)結(jié)束。 ?。?)測(cè)試關(guān)注點(diǎn): 1)Session互竄 Session互竄即是用戶A的操作被用戶B執(zhí)行了,。 驗(yàn)證Session互竄,其原理還是基于權(quán)限控制,,如某筆訂單只能是A進(jìn)行操作,,或者只能是A才能看到的頁面,但是B的session竄進(jìn)來卻能夠獲得A的訂單詳情等,。 Session互竄方法: 多TAB瀏覽器,,在兩個(gè)TAB頁中都保留的是用戶A的session記錄,然后在其中一個(gè)TAB頁執(zhí)行退出操作,,登陸用戶B,,此時(shí)兩個(gè)TAB頁都是B的session,然后在另一個(gè)A的頁面執(zhí)行操作,,查看是否能成功,。預(yù)期結(jié)果:有權(quán)限控制的操作,B不能執(zhí)行A頁面的操作,,應(yīng)該報(bào)錯(cuò),,沒有權(quán)限控制的操作,B執(zhí)行了A頁面操作后,,數(shù)據(jù)記錄是B的而不是A的,。 2)Session超時(shí) 基于Session原理,需要驗(yàn)證系統(tǒng)session是否有超時(shí)機(jī)制,,還需要驗(yàn)證session超時(shí)后功能是否還能繼續(xù)走下去,。 測(cè)試方法: 1,、打開一個(gè)頁面,等著10分鐘session超時(shí)時(shí)間到了,,然后對(duì)頁面進(jìn)行操作,,查看效果。 2,、多TAB瀏覽器,,在兩個(gè)TAB頁中都保留的是用戶A的session記錄,然后在其中一個(gè)TAB頁執(zhí)行退出操作,,馬上在另外一個(gè)頁面進(jìn)行要驗(yàn)證的操作,,查看是能繼續(xù)到下一步還是到登錄頁面。 |
|