WEB安全測試要點總結

2022-07-13 07:06:11 字數 3324 閱讀 1608

一、大類檢查點:

二、測試項詳細說明

上傳功能

註冊功能

登入功能

但很多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 各個頁面的標題和描述是否正確,有無錯別字,字型大小 顏色是否正確統一,文字描述準確,無歧義...