
前言
隨着人們對於軟件產品的要求越來越嚴格,信息一體化的背後更加深藏着各類安全隱患,因此安全測試成為軟件測試中非常重要的環節。
安全測試基礎
01.
XSS攻擊
(1)簡介
XSS(Cross Site Scripting)跨站腳本攻擊,屬於Web攻擊的一種,攻擊者通過對網頁注入可執行代碼(html或JS)成功被瀏覽器執行,從而盜取用戶資料、利用用戶身份進行某種動作或者對訪問者進行病毒侵害的一種攻擊方式。
(2)XSS攻擊方式
反射型XSS:用戶訪問一個被攻擊者篡改後的鏈接時,被植入的腳本會被用戶瀏覽器執行,也稱非持久型因為是一次性,僅對當次的頁面訪問產生影響;
反射型XSS場景:帶有XSS腳本的鏈接轉成的短鏈;【在url後跟xss腳本】,網址跳轉;
存儲型XSS:包含XSS攻擊腳本的內容會被存儲到服務器端,也稱持久型,用戶讀取到內容時會自動執行腳本;
存儲型XSS場景:其他用戶查看別人發佈的留言、評論,管理員發佈的公告,黑客發佈的博客文章;反饋功能,投訴功能,聊天記錄功能。
(3)XSS攻擊原理
用戶傳入的數據被當做是程序,所以會執行程序。
01.
SQL注入
(1)簡介
SQL注入是比較常見的網絡攻擊方式之一,它不是利用操作系統的BUG來實現攻擊,而是針對現有應用程序,將SQL語句注入到後台數據庫,實現無賬號登錄,甚至篡改數據庫。
(2)SQL注入原理
找到SQL注入的位置,判斷出服務器類型和後台數據庫類型,針對不同的服務器和數據庫特點進行SQL注入攻擊。
03.
CSRF跨站請求偽造
(1)簡介
CSRF(Cross Site Request Forgy)是指攻擊者盜用受信任用戶的身份,並向第三方網站發送惡意請求,最後達到攻擊者所需要的操作行為,對於服務器來說這個請求是合法的。
(2)CSRF原理
站點B向站點A發送請求,請求帶站點A的cookies。
安全測試類型
安全測試分類
| 1 | 身份驗證機制:只對首次傳遞的Cookie加以驗證,程序沒有持續對Cookie中內含信息驗證比對,攻擊者可以修改Cookie中的重要信息以提升權限進行網站數據存取或是冒用他人賬號取得個人私密資料(測試對象:可以進行傳參的URL,提交請求頁面,登錄後的Cookie)。 |
| 2 | 會話管理劫持:檢測Web應用程序會話機制是否存在安全隱患,能否被非法利用(會話劫持,偽裝成合法用戶)而影響Web應用程序的安全 |
| 3 | SQL注入:攻擊者發送的惡意數據可以欺騙解釋器,以執行計劃外的命令或者在未被恰當授權時訪問數據。 |
| 4 | XSS跨站腳本攻擊:惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的。 |
| 5 | CSRF跨站請求偽造:攻擊者通過調用第三方網站的惡意腳本來偽造請求,在用戶不知情的情況下,攻擊者強行遞交構造的具有「操作行為」的數據包。(測試對象:網頁中可進行輸入的表單)。 |
| 6 | 安全配置錯誤:Config中的鏈接字符串以及用戶信息,郵件,數據存儲信息等都需要加以保護,如果沒有進行保護,那麼就是安全配置出現了問題。 |
| 7 | 加密存儲:未對需要保護的數據進行加密或者加密算法太弱都是不安全的加密存儲。 |
| 8 | URL訪問:攻擊者能夠很容易地就偽造請求直接訪問未被授權的頁面(測試對象:需要身份驗證的頁面)。 |
| 9 | 敏感信息泄露:攻擊者可能會竊取或篡改這些弱保護的數據。敏感數據值需額外的保護,比如在存放或在傳輸過程中的加密,以及在與瀏覽器交換時進行特殊的預防措施。 |
| 10 | 緩衝區溢出:當計算機向緩衝區內填充數據位數時超過了緩衝區本身的容量,溢出的數據覆蓋在合法數據上。 |
| 11 | LDAP注入:許多應用的安全性依賴於基於LDAP目錄的單點登錄環境。攻擊者可能直接訪問LDAP目錄樹下的數據庫,及重要信息。 |
| 12 | 篡改輸入:利用一些命令或者工具等篡改一些字段的值。 |
安全測試方法
01.
檢查數據存儲是否安全
- 檢查敏感數據是否加密存儲,檢查對應數據庫中的數據記錄
- 檢查敏感數據是界面上是否脫敏顯示,即手機號139****2107
- 檢查界面上輸入框數據是否有超額或負數限制
02.
密碼健壯性驗證
- 驗證多次輸入錯誤密碼的情
- 校驗密碼的複雜度
- 驗證密碼找回方式
03.
文件上傳驗證
- 使用抓包工具獲取上傳接口,修改文件的後綴名,再次上傳
- 在文件中編輯HTML或js語句上傳
04.
越權操作
- 當前登錄用戶不能修改其他用戶信息
- 當前登錄用戶只能使用分配給當前用戶的權限
05.
用戶認證安全性
- 重複用戶名提示校驗
- 用戶權限變更影響
- 用戶登錄密碼是否可見,是否可複製
06.
輸入框驗證
- 輸入<input type=」text」 name=」user」 οnclick=”alert(1)”/>,看是否出現文本框
- 輸入 」><script><」 看是否出現代碼溢出
安全測試貫穿軟件產品的生命周期,可以進一步提升產品的質量,同時也可以對系統進行保護,不被非法入侵,不受各種因素的干擾。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/276302.html
微信掃一掃
支付寶掃一掃