① web安全測試主要有哪些漏洞
以下類型的安全漏洞
權控缺失
系統未能正確分配用戶的許可權,用戶能執行超出自己職能范圍的操作,這類漏洞稱為權控缺失。權控缺失分為兩類:平行越權、垂直越權。
邏輯漏洞
邏輯漏洞通常是由於程序邏輯不嚴密或邏輯太復雜,導致一些邏輯分支被繞過或處理錯誤。常見漏洞包括:任意密碼修改(沒有舊密碼驗證)、密碼找回漏洞、業務數據篡改等。邏輯漏洞的出現易造成賬號被盜、免費購物,游戲應用易造成刷錢、刷游戲幣等嚴重問題。
條件競爭
服務端在做並發編程時,需要考慮到條件競爭的情況。在多個並發線程同時訪問同一資源時,由於對請求的處理不是原子性的,無法預測調度的順序,就可能由於時間序列上的沖突而造成對共享資源的操作混亂。
XSS跨站腳本攻擊
是指惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,提交的數據被WEB應用程序直接使用,使別的用戶訪問都會執行相應的嵌入代碼。從而盜取用戶資料、利用用戶身份進行某種動作或者對訪問者進行病毒侵害的一種攻擊方式。
② Web安全測試的作品目錄
序 1
前言 3
第1章 緒論 13
1.1 什麼是安全測試 13
1.2 什麼是Web應用 17
1.3 Web應用基礎 21
1.4 Web應用安全測試 25
1.5 方法才是重點 26
第2章 安裝免費工具 29
2.1 安裝Firefox 29
2.2 安裝Firefox擴展 30
2.3 安裝Firebug 31
2.4 安裝OWASP的WebScarab 32
2.5 在Windows上安裝Perl及其軟體包 33
2.6 在Linux, Unix或OS X上安裝Perl和使用CPAN 34
2.7 安裝CAL9000 35
2.8 安裝ViewState Decoder 36
2.9 安裝cURL 36
2.10 安裝Pornzilla 37
2.11 安裝Cygwin 38
2.12 安裝Nikto 2 39
2.13 安裝Burp Suite 40
2.14 安裝Apache HTTP Server 41
第3章 基本觀察 43
3.1 查看網頁的HTML源代碼 44
3.2 查看源代碼,高級功能 45
3.3 使用Firebug觀察實時的請求頭 48
3.4 使用WebScarab觀察實時的POST數據 52
3.5 查看隱藏表單域 55
3.6 使用TamperData觀察實時的響應頭 56
3.7 高亮顯示JavaScript和注釋 59
3.8 檢測JavaScript事件 60
3.9 修改特定的元素屬性 61
3.10 動態跟蹤元素屬性 63
3.11 結論 65
第4章 面向Web的數據編碼 66
4.1 辨別二進制數據表示 67
4.2 使用Base-64 69
4.3 在網頁中轉換Base-36數字 71
4.4 在Perl中使用Base-36 71
4.5 使用以URL方式編碼的數據 72
4.6 使用HTML實體數據 74
4.7 計算散列值 76
4.8 辨別時間格式 78
4.9 以編程方式對時間值進行編碼 80
4.11 解碼多重編碼 83
第5章 篡改輸入 85
5.1 截獲和修改POST請求 86
5.2 繞過輸入限制 89
5.3 篡改URL 90
5.4 自動篡改URL 93
5.5 測試對URL長度的處理 94
5.6 編輯Cookie 96
5.7 偽造瀏覽器頭信息 99
5.8 上傳帶有惡意文件名的文件 101
5.9 上傳大文件 104
5.10 上傳惡意XML實體文件 105
5.11 上傳惡意XML結構 107
5.12 上傳惡意ZIP文件 109
5.13 上傳樣例病毒文件 110
5.14 繞過用戶界面的限制 111
第6章 自動化批量掃描 114
6.1 使用WebScarab爬行網站 115
6.2 將爬行結果轉換為清單 117
6.3 減少要測試的URL 120
6.4 使用電子表格程序來精簡列表 120
6.5 使用LWP對網站做鏡像 121
6.6 使用wget對網站做鏡像 123
6.7 使用wget對特定的清單做鏡像 124
6.8 使用Nikto掃描網站 125
6.9 理解Nikto的輸出結果 127
6.10 使用Nikto掃描HTTPS站點 128
6.11 使用帶身份驗證的Nikto 129
6.12 在特定起始點啟動Nikto 130
6.13 在Nikto中使用特定的會話Cookie 131
6.14 使用WSFuzzer測試Web服務 132
6.15 理解WSFuzzer的輸出結果 134
第7章 使用cURL實現特定任務的自動化 137
7.1 使用cURL獲取頁面 138
7.2 獲取URL的許多變體 139
7.3 自動跟蹤重定向 140
7.4 使用cURL檢查跨站式腳本 141
7.5 使用cURL檢查目錄遍歷 144
7.6 冒充特定類型的網頁瀏覽器或設備 147
7.7 以交互方式冒充另一種設備 149
7.8 使用cURL模仿搜索引擎 151
7.9 通過假造Referer頭信息來偽造工作流程 152
7.10 僅獲取HTTP頭 153
7.11 使用cURL發送POST請求 154
7.12 保持會話狀態 156
7.13 操縱Cookie 157
7.14 使用cURL上傳文件 158
7.15 建立多級測試用例 159
7.16 結論 164
第8章 使用LibWWWPerl實現自動化 166
8.1 編寫簡單的Perl腳本來獲取頁面 167
8.2 以編程方式更改參數 169
8.3 使用POST模仿表單輸入 170
8.4 捕獲和保存Cookie 172
8.5 檢查會話過期 173
8.6 測試會話固定 175
8.7 發送惡意Cookie值 177
8.8 上傳惡意文件內容 179
8.9 上傳帶有惡意名稱的文件 181
8.10 上傳病毒到應用 182
8.11 使用Perl解析接收到的值 184
8.12 以編程方式來編輯頁面 186
8.13 使用線程化提高性能 189
第9章 查找設計缺陷 191
9.1 繞過必需的導航 192
9.2 嘗試特權操作 194
9.3 濫用密碼恢復 195
9.4 濫用可預測的標識符 197
9.5 預測憑證 199
9.6 找出應用中的隨機數 200
9.7 測試隨機數 202
9.8 濫用可重復性 204
9.9 濫用高負載操作 206
9.10 濫用限制性的功能 208
9.11 濫用競爭條件 209
第10章 攻擊AJAX 211
10.1 觀察實時的AJAX請求 213
10.2 識別應用中的JavaScript 214
10.3 從AJAX活動回溯到源代碼 215
10.4 截獲和修改AJAX請求 216
10.5 截獲和修改伺服器響應 218
10.6 使用注入數據破壞AJAX 220
10.7 使用注入XML破壞AJAX 222
10.8 使用注入JSON破壞AJAX 223
10.9 破壞客戶端狀態 224
10.10 檢查跨域訪問 226
10.11 通過JSON劫持來讀取私有數據 227
第11章 操縱會話 229
11.1 在Cookie中查找會話標識符 230
11.2 在請求中查找會話標識符 232
11.3 查找Authentication頭 233
11.4 分析會話ID過期 235
11.5 使用Burp分析會話標識符 239
11.6 使用WebScarab分析會話隨機性 240
11.7 更改會話以逃避限制 245
11.8 假扮其他用戶 247
11.9 固定會話 248
11.10 測試跨站請求偽造 249
第12章 多層面的測試 251
12.1 使用XSS竊取Cookie 251
12.2 使用XSS創建覆蓋 253
12.3 使用XSS產生HTTP請求 255
12.4 以交互方式嘗試基於DOM的XSS 256
12.5 繞過欄位長度限制(XSS) 258
12.6 以交互方式嘗試跨站式跟蹤 259
12.7 修改Host頭 261
12.8 暴力猜測用戶名和密碼 263
12.9 以交互方式嘗試PHP包含文件注入 265
12.10 製作解壓縮炸彈 266
12.11 以交互方式嘗試命令注入 268
12.12 系統地嘗試命令注入 270
12.13 以交互方式嘗試XPath注入 273
12.14 以交互方式嘗試伺服器端包含(SSI)注入 275
12.15 系統地嘗試伺服器端包含(SSI)注入 276
12.16 以交互方式嘗試LDAP注入 278
12.17 以交互方式嘗試日誌注入 280
③ 如何進行WEB安全性測試
一般來說,一個WEB應用包括WEB伺服器運行的操作系統、WEB伺服器、WEB應用邏輯、資料庫幾個部分,其中任何一個部分出現安全漏洞,都會導致整個系統的安全性問題。
對操作系統來說,最關鍵的操作系統的漏洞,Windows上的RPC漏洞、緩沖區溢出漏洞、安全機制漏洞等等;
對WEB伺服器來說,WEB伺服器從早期僅提供對靜態HTML和圖片進行訪問發展到現在對動態請求的支持,早已是非常龐大的系統。
對應用邏輯來說,根據其實現的語言不同、機制不同、由於編碼、框架本身的漏洞或是業務設計時的不完善,都可能導致安全上的問題。
對WEB的安全性測試是一個很大的題目,首先取決於要達到怎樣的安全程度。不要期望網站可以達到100%的安全,須知,即使是美國國防部,也不能保證自己的網站100%安全。對於一般的用於實現業務的網站,達到這樣的期望是比較合理的:
1、能夠對密碼試探工具進行防範;
2、能夠防範對cookie攻擊等常用攻擊手段;
3、敏感數據保證不用明文傳輸;
4、能防範通過文件名猜測和查看HTML文件內容獲取重要信息;
5、能保證在網站收到工具後在給定時間內恢復,重要數據丟失不超過1個小時;
④ web安全測試主要測試哪些內容
一個完整的Web安全體系測試可以從部署與基礎結構,輸入驗證,身份驗證,授權,配置管理配置管理配置管理配置管理,敏感數據,會話管理,加密,參數操作,異常管理,審核和日誌記錄等幾個方面入手
⑤ 如何進行WEB安全性測試
安全性測試
產品滿足需求提及的安全能力
n 應用程序級別的安全性,包括對數據或業務功能的訪問,應
用程序級別的安全性可確保:在預期的安全性情況下,主角
只能訪問特定的功能或用例,或者只能訪問有限的數據。例
如,可能會允許所有人輸入數據,創建新賬戶,但只有管理
員才能刪除這些數據或賬戶。如果具有數據級別的安全性,
測試就可確保「用戶類型一」 能夠看到所有客戶消息(包括
財務數據),而「用戶二」只能看見同一客戶的統計數據。
n 系統級別的安全性,包括對系統的登錄或遠程訪問。
系統級別的安全性可確保只有具備系統訪問許可權的用戶才能
訪問應用程序,而且只能通過相應的網關來訪問。
安全性測試應用
防SQL漏洞掃描
– Appscan
n防XSS、防釣魚
– RatProxy、Taint、Netsparker
nget、post -> 防止關鍵信息顯式提交
– get:顯式提交
– post:隱式提交
ncookie、session
– Cookie欺騙
⑥ web安全測試個人閱讀心得
文章中提到的東西都是工作中實踐過的經驗,並不保證全面性.
Web測試一般包含如下內容:
功能測試
性能測試
用戶界面測試
兼容性測試
安全性測試
其實這只是大概的區分,各種不同的類別的測試之間其實是有很多交集的.比如:
當網站出現性能問題的時候,同時網站的某些功能可能會失效,比如頁面打開失敗,表單提交失敗等等
當網站在一個它不兼容的瀏覽器下運行的時候,也會導致功能失效,用戶界面出現混亂,甚至性能問題
以上的五項內容中的每一項都可以是一個大的主題做深入的分析.
另外,對於所有的web測試人員來說,學會使用Firebug以及Fiddler這樣的抓包工具絕對是必不可少的。這些工具的使用應該始終貫穿的測試工作之中
一.功能測試
對於一般被測試的軟體,我可以用"樹"來比喻一個軟體.一顆樹有主幹,分支和葉子.主幹和分支代表軟體的流程,葉子代表軟體的局部步驟(頁面). 我們測試軟體的時候既要保證軟體的流程正確,也要保證組成流程的各個分支步驟頁面的正確性.
拿淘寶來購物來說,我們可以把登錄頁面,購物車頁面之類的當成是葉子,完成一個購物流程,當成一個主幹或者分支. 軟體就是由這很多的葉子以及相對少一些的分支組成.
經典的教科書上往往會介紹如下功能測試測試用例的設計方法:
邊界值劃分
等價類
正交表
決策表
當我們測試單個頁面的時候,往往會用到這些方法.但是這些方法只是測試到了軟體的局部.
除此之外,我們還要考慮被測試軟體的工作流程,保證所有的提供給用戶的工作流程都可以跑通,這個時候,探索式測試可以派上用場.有時候,我們還需要化流程圖來輔助測試.
關於探索式測試,詳見探索式測試讀書筆記一文
另外,還有更重要的幾點:
每當打開頁面或者提交數據的時候,多打開Fiddler或者Firebug看看到底發送了哪些http請求,以及關鍵請求的http response是什麼.當發現功能異常之後,根據我們用Fiddler看到的數據,往往可以自己判斷問題到底是出在前台的JS還是後台service. 關於Fiddler,詳見Fiddler小結一文
有空多看看系統的日誌,哪裡能找到一些隱藏在頁面之外的異常
當我們在頁面上完成了一些功能之後,要徹底明白系統背後(資料庫)到底完成了什麼東西,我們提交的數據到底被存儲到哪裡去了
綜上所述,我們做功能測試的總體思路是從 點(樹葉)->面(主幹,分支)->後台(根)
二.性能測試
性能測試主要要從前端和後台兩個角度去理解,我們可以首先使用Fiddler去大概判斷網站的性能問題是出在前台還是後台.
如果Http請求的大部分時間是花在html,css,js之類的靜態資源載入上,那麼基本是前台性能有問題.如果某個後台的service特別費時,那麼後台必定存在性能問題
前台性能
除了用Fiddler看性能外,我們可以使用Yahoo的Firefox YSlow插件去檢測前端的性能.此外,關於前端性能具體的優化策略,可以參閱<High Performance Web Sites>,其中主要涉及到http協議和瀏覽器緩存機制
詳見Web前端優化14條原則一文
後台性能
對於大部分測試工程師來說是很難直接去優化後台性能的,但是依然能去發現一些有意義的線索
用Fiddler去查看http請求,如果某個請求特別耗時,則可能存在性能問題
後台代碼設計到SQL查詢的時候,往往測試員也是有基礎去測試那些SQL的查詢時間和執行時間,如果因為數據量大而導致查詢太慢的話,可以建議使用資料庫的索引
後台的cache機制: 我們的項目大量的使用了後台的cache機制
總之,做性能測試絕對不是簡單地直接拿Loadrunner或者Jmeter去錄制一下腳本,然後運行,分析結果.這一切的前提應該是充分了解了被測試系統的前台跟後台的性能
三.用戶界面測試
這點關注不多,主要如下:
字體大小顏色(主要通過修改css文件)
彈窗的風格最好保持統一
四,兼容性測試
主要考慮如下幾個因素組合:
不同的操作系統
不同的瀏覽器
瀏覽器的不同版本
顯示器的不同解析度
不同的瀏覽設備(PC,手機,平板)
五.安全性測試
安全性測試主要知道有如下幾點:
SQL注入:後台使用Preparedstatement去處理SQL
XSS攻擊:這個問題非常復雜.學習中..
做為一個測試工程師,我覺得應該記住如下3點:
前台的JS驗證是不可靠的
用戶進行任何輸入都是有可能的
Web本身似乎也是不安全的:無法解釋更多....
接下去舉一些實際的例子:
隱藏的按鈕
當我們用Firebug看頁面的HTML的時候,往往能找到一些隱藏的內容,比如某個元素的 class="gradient hide",或者類似的東西.當我們直接修改掉這些屬性之後,這些隱藏的東西就會在頁面上暴露出來,對系統的安全造成隱患.
另外如果有某些值也可能會存儲在隱藏域中
Disabled按鈕
與隱藏的按鈕類似,頁面上經常有些可見但是灰調的按鈕,也可以嘗試改變他的屬性,讓它變成可以觸發的,或許會有所發現
不該被訪問的URL
如果某個URL不該被某些人訪問,一定要在許可權上去控制.僅僅去掉某個鏈接/按鈕是不夠的
後台Service
如果網站後台的Service能被捕捉到,而且又沒有許可權控制,那將是災難性的
⑦ 什麼是web安全性測試
最小最簡單的是:windows優化大師 測試顯卡:3Dmark05,(如果你的電腦夠好,可以使3Dmark06) 還有就是:PCmark
⑧ Web安全測試的介紹
《Web安全測試》是清華大學出版社2010年3月1日出版的書籍,作者是霍普。講述在你對Web應用所執行的測試中,安全測試可能是最重要的,但它卻常常是最容易被忽略的。《Web安全測試》中的秘訣演示了開發和測試人員在進行單元測試、回歸測試或探索性測試的同時,如何去檢查最常見的Web安全問題。與即興的安全評估不同的是,這些秘訣是可重復的、簡潔的、系統的——可以完美地集成到你的常規測試套裝中。因此,本書對開發人員和測試人員具有重要的指導價值。
⑨ web應用安全應該怎麼測試呢
用MicroFocus的Fortify來測試呀,它可以檢測出你的web裡面有沒有存在的漏洞,挺實用的。