一、大類檢查點:
二、測試項詳細說明
上傳功能
註冊功能
登入功能
但很多cookie需要給前端js使用。所以這裡只需要關注關鍵cookie,即唯一標識使用者及登入狀態的會話標識需要新增這個屬性。
驗證碼功能
忘記密碼功能
密碼安全性要求
橫向越權測試
不同使用者之間session共享,可以非法操作對方的資料。
縱向越權測試
很多應用簡單的通過前端判斷,或者低許可權角色看不到對應的選單,但並未在後台去做當前登入使用者是否有許可權。
跨站指令碼攻擊(cross site scripting):惡意攻擊者往web頁面裡插入惡意script**,當使用者瀏覽該頁之時,嵌入其中web裡面的script**會被執行,從而達到惡意攻擊使用者的目的。
利用請求引數param2,進行xss注入,設定js等可執行或可跳轉語句。param2=。
這個**的已登入使用者去點選,cookie會被傳送到 evil.org 上去。
處理意見:對特殊字元轉義輸出,特別是'"<>這幾個。
在論壇上發表帖子,假設論壇有漏洞,可以在帖子中注入下面的js內容:
當其他使用者瀏覽該帖子時,就會彈出登入框,如圖(使用者名稱+密碼登陸介面)。
這是頁面中注入的xss生成的,如果您輸入了賬號密碼,那就被傳送給黑客了。
處理意見:對特殊字元轉義輸出,特別是如下幾個'"<>
基於dom型xss樣例,相比較與reflected、stored xss屬於server side execution issues而言,dom based xss 是client(browser)side execution issue。
step1:如下面請求的hash部分,由客戶端js動態執行產生xss注入。
step2:動態生成:
處理意見:對特殊字元轉義輸出,特別是'"<>。
sql注入測試
sql注入攻擊的基本原理是通過構建特殊的輸入引數,迫使後台資料庫執行額外的sql語句,從而達到獲取資料庫資料的目的。
這些輸入引數往往包含惡意的sql注入語句,後台處理程式沒有對這些引數進行過濾,且所使用的資料庫查詢手段為拼接方式,進而導致敏感資料外洩。
在動態構造sql語句的過程中,除了特殊字元處理不當引起的sql注入之外,錯誤處理不當也會為web站點帶來很多安全隱患。
在sql注入的過程中,如果web伺服器關閉了錯誤回顯,那麼是不是就安全了呢?答案顯然是否定的,攻擊者仍然可以通過 "盲注"技巧測試sql命令是否注入成功。
所謂"盲注"就是在伺服器沒有錯誤回顯時完成的注入方式,攻擊者必須找到乙個方法來驗證注入的sql語句是否執行。
"盲注"主要分為兩種型別:基於時間的盲注和布林盲注。
測試方法(黑盒):sqlmap是乙個自動化的sql注入工具,其主要功能是掃瞄,發現並利用給定的url的sql注入漏洞,
測試方法(白盒):如果專案的資料庫持久層框架是mybatis,並且他的sqlmap中編寫方式都是使用#方式,而非使用$方式,就不存在sql注入問題。
注:sqlmap中盡量不要使用$;$使用的是statement(拼接字串),會出現注入問題。#使用的是preparedstatement(類似於預編譯),將轉義交給了資料庫,不會出現注入問題;前者容易出現sql注入之類的安全問題,所以mybatis推薦使用#。
寫介面限制測試
比如:找回密碼的郵件。多次呼叫,造成郵件轟炸。
新增的介面,如寫文章、上傳檔案等。這些介面如果沒有任何限制,那麼惡意使用者使用程式無限迴圈的呼叫介面,就會寫入大量的資料。通過併發、迴圈方式上傳大量檔案,填滿磁碟,消耗伺服器資源。
修復建議:對寫入量大的介面(如上傳)做必要的限制。
csrf測試
csrf(cross-site requestforgery),中文名稱:跨站請求偽造。使用者c在為退出a的情況下,瀏覽b,b使用c的session非法訪問a。
檢查:ø 是否有防禦csrf的隨機數。驗證碼、csrf_token等都是。 有則 (通過)
ø 是否驗證referer。有則(通過)
ø 請求的引數均可推測,無csrf防禦機制。(不通過)
測試中,需要對所有寫介面檢查,可以採用如下方式,記錄介面,標記是否已檢查。
修復建議:
ø 方法1:驗證碼
驗證碼制使用者必須與應用進行互動,才能完成最終請求。因此在通常情況下,驗證碼能夠很好地遏制csrf攻擊。
但是這種方式易用性方面似乎不是太好,並且對於簡單的圖形驗證碼也有很多繞過機制。防禦csrf的一種輔助手段
ø 方法2:referer 驗證
當瀏覽器傳送乙個http請求時一般都會在referer中表明發起請求的url。
通過referer我們可以通過判斷乙個請求是否為同域下發起的來防禦csrf,但是referer可能會包含一些敏感資訊甚至在某些情況下能夠被偽造。
因此我們無法依賴於referer來作為防禦csrf的主要手段,但是可以通過referer來監控csrf攻擊的發生。
ø 方法3:token驗證
在請求原引數不變的條件下,新增了乙個隨機的、不可**引數token是目前最普遍有效的方式。
後端在對資料處理前會首先對token引數進行驗證,只有使用者請求中的token與使用者session(或cookie)中的token一致時,才會認為請求是合法的。
由於token的存在,攻擊者就無法構造乙個完整的請求實施csrf攻擊,從而保證了**或系統的安全。
敏感資訊洩露
svn資訊洩露:有資料庫賬號和密碼等資訊;
頁面洩露敏感資訊:有些web應用,在返回給客戶端的響應中,包含了敏感資訊,例如密碼。
目錄遍歷
在web應用中,如下圖所示的顯示目錄檔案列表,會帶來一定的安全隱患(伺服器檔案列表)。
crlf
crlf就是http響應頭拆分漏洞。是對使用者輸入的cr 和lf字元沒有進行嚴格的過濾導致的。
修復建議:過濾cr和lf字元。或者轉義。
任意檔案讀取
url重定向
點選劫持clickjacking
xxessrf
cors問題
web功能測試要點總結
web功能測試一般關注的點主要可以分ui及易用性測試 表單測試 cookies測試 鏈結測試 相容性測試。ui及易用性測試 1 各個頁面的樣式風格是否美觀統一,如大小 顏色是否統一,頁面 文字 是否居中等。2 各個頁面的標題和描述是否正確,有無錯別字,字型大小 顏色是否正確統一,文字描述準確,無歧義...
Web測試要點
由於本人工作接觸web測試,所以我從網上找的資料,學習了解web測試哪些內容,然後自己整理彙總的隨筆,如文章中有不足的地方,請大家多多指教 或者文章內容與他人相似,望見諒。web是什麼?載 wired web 已死,網際網路永生 web測試是什麼?web測試的主要作用是在不同的客戶端下 系統是否能夠...
WEB功能測試要點
web功能測試一般關注的點主要可以分ui及易用性測試 表單測試 cookies測試 鏈結測試 相容性測試。ui及易用性測試 1 各個頁面的樣式風格是否美觀統一,如大小 顏色是否統一,頁面 文字 是否居中等。2 各個頁面的標題和描述是否正確,有無錯別字,字型大小 顏色是否正確統一,文字描述準確,無歧義...